ActiViz .NET  5.8.0
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Static Private Member Functions | List of all members
Kitware.VTK.vtkPolynomialSolversUnivariate Class Reference

vtkPolynomialSolversUnivariate - polynomial solvers More...

Inheritance diagram for Kitware.VTK.vtkPolynomialSolversUnivariate:
[legend]
Collaboration diagram for Kitware.VTK.vtkPolynomialSolversUnivariate:
[legend]

Public Member Functions

 vtkPolynomialSolversUnivariate (IntPtr rawCppThis, bool callDisposalMethod, bool strong)
 Automatically generated constructor - called from generated code. DO NOT call directly.
 vtkPolynomialSolversUnivariate ()
 Undocumented Block
override int IsA (string type)
 Undocumented Block
new vtkPolynomialSolversUnivariate NewInstance ()
 Undocumented Block
- Public Member Functions inherited from Kitware.VTK.vtkObject
 vtkObject (IntPtr rawCppThis, bool callDisposalMethod, bool strong)
 Automatically generated constructor - called from generated code. DO NOT call directly.
 vtkObject ()
 Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
uint AddObserver (uint arg0, vtkCommand arg1, float priority)
 This is a global flag that controls whether any debug, warning or error messages are displayed.
uint AddObserver (string arg0, vtkCommand arg1, float priority)
 This is a global flag that controls whether any debug, warning or error messages are displayed.
virtual void DebugOff ()
 Turn debugging output off.
virtual void DebugOn ()
 Turn debugging output on.
vtkCommand GetCommand (uint tag)
 This is a global flag that controls whether any debug, warning or error messages are displayed.
byte GetDebug ()
 Get the value of the debug flag.
virtual uint GetMTime ()
 Return this object's modified time.
int HasObserver (uint arg0, vtkCommand arg1)
 This is a global flag that controls whether any debug, warning or error messages are displayed.
int HasObserver (string arg0, vtkCommand arg1)
 This is a global flag that controls whether any debug, warning or error messages are displayed.
int HasObserver (uint arg0)
 This is a global flag that controls whether any debug, warning or error messages are displayed.
int HasObserver (string arg0)
 This is a global flag that controls whether any debug, warning or error messages are displayed.
int InvokeEvent (uint arg0, IntPtr callData)
 This is a global flag that controls whether any debug, warning or error messages are displayed.
int InvokeEvent (string arg0, IntPtr callData)
 This is a global flag that controls whether any debug, warning or error messages are displayed.
int InvokeEvent (uint arg0)
 This is a global flag that controls whether any debug, warning or error messages are displayed.
int InvokeEvent (string arg0)
 This is a global flag that controls whether any debug, warning or error messages are displayed.
virtual void Modified ()
 Update the modification time for this object. Many filters rely on the modification time to determine if they need to recompute their data. The modification time is a unique monotonically increasing unsigned long integer.
void RemoveAllObservers ()
 This is a global flag that controls whether any debug, warning or error messages are displayed.
void RemoveObserver (vtkCommand arg0)
 This is a global flag that controls whether any debug, warning or error messages are displayed.
void RemoveObserver (uint tag)
 This is a global flag that controls whether any debug, warning or error messages are displayed.
void RemoveObservers (uint arg0, vtkCommand arg1)
 This is a global flag that controls whether any debug, warning or error messages are displayed.
void RemoveObservers (string arg0, vtkCommand arg1)
 This is a global flag that controls whether any debug, warning or error messages are displayed.
void RemoveObservers (uint arg0)
 This is a global flag that controls whether any debug, warning or error messages are displayed.
void RemoveObservers (string arg0)
 This is a global flag that controls whether any debug, warning or error messages are displayed.
void SetDebug (byte debugFlag)
 Set the value of the debug flag. A non-zero value turns debugging on.
override string ToString ()
 Returns the result of calling vtkObject::Print as a C# string.
delegate void vtkObjectEventHandler (vtkObject sender, vtkObjectEventArgs e)
 Generic signature for all vtkObject events.
void RemoveAllHandlersForAllEvents ()
 Call RemoveAllHandlers on each non-null vtkObjectEventRelay. TODO: This method needs to get called by the generated Dispose. Make that happen...
- Public Member Functions inherited from Kitware.VTK.vtkObjectBase
 vtkObjectBase (IntPtr rawCppThis, bool callDisposalMethod, bool strong)
 Automatically generated constructor - called from generated code. DO NOT call directly.
 vtkObjectBase ()
 Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
virtual void Register (vtkObjectBase o)
 Increase the reference count (mark as used by another object).
virtual void FastDelete ()
 Delete a reference to this object. This version will not invoke garbage collection and can potentially leak the object if it is part of a reference loop. Use this method only when it is known that the object has another reference and would not be collected if a full garbage collection check were done.
string GetClassName ()
 Return the class name as a string. This method is defined in all subclasses of vtkObjectBase with the vtkTypeMacro found in vtkSetGet.h.
int GetReferenceCount ()
 Return the current reference count of this object.
void SetReferenceCount (int arg0)
 Sets the reference count. (This is very dangerous, use with care.)

Static Public Member Functions

static new
vtkPolynomialSolversUnivariate 
New ()
 Undocumented Block
static int FerrariSolve (IntPtr c, IntPtr r, IntPtr m, double tol)
 Algebraically extracts REAL roots of the quartic polynomial with REAL coefficients X^4 + c[0] X^3 + c[1] X^2 + c[2] X + c[3] and stores them (when they exist) and their respective multiplicities in the r and m arrays, based on Ferrari's method. Some numerical noise can be filtered by the use of a tolerance tol instead of equality with 0 (one can use, e.g., VTK_DBL_EPSILON). Returns the number of roots. Warning: it is the user's responsibility to pass a non-negative tol.
static int FilterRoots (IntPtr P, int d, IntPtr upperBnds, int rootcount, double diameter)
 This uses the derivative sequence to filter possible roots of a polynomial. First it sorts the roots and removes any duplicates. If the number of sign changes of the derivative sequence at a root at upperBnds[i] == that at upperBnds[i] - diameter then the i^th value is removed from upperBnds. It returns the new number of roots.
static double GetDivisionTolerance ()
 Set/get the tolerance used when performing polynomial Euclidean division to find polynomial roots. This tolerance is used to decide whether the coefficient(s) of a polynomial remainder are close enough to zero to be neglected.
static int HabichtBisectionSolve (IntPtr P, int d, IntPtr a, IntPtr upperBnds, double tol)
 Finds all REAL roots (within tolerance tol) of the d -th degree polynomial

\[ P[0] X^d + ... + P[d-1] X + P[d] \]

in ]a[0] ; a[1]] using the Habicht sequence (polynomial coefficients are REAL) and returns the count nr. All roots are bracketed in the first ]upperBnds[i] - tol ; upperBnds[i]] intervals. Returns -1 if anything went wrong (such as: polynomial does not have degree d, the interval provided by the other is absurd, etc.).

static int HabichtBisectionSolve (IntPtr P, int d, IntPtr a, IntPtr upperBnds, double tol, int intervalType)
 Finds all REAL roots (within tolerance tol) of the d -th degree polynomial

\[ P[0] X^d + ... + P[d-1] X + P[d] \]

in ]a[0] ; a[1]] using the Habicht sequence (polynomial coefficients are REAL) and returns the count nr. All roots are bracketed in the first ]upperBnds[i] - tol ; upperBnds[i]] intervals. Returns -1 if anything went wrong (such as: polynomial does not have degree d, the interval provided by the other is absurd, etc.).

static int HabichtBisectionSolve (IntPtr P, int d, IntPtr a, IntPtr upperBnds, double tol, int intervalType, bool divideGCD)
 Finds all REAL roots (within tolerance tol) of the d -th degree polynomial

\[ P[0] X^d + ... + P[d-1] X + P[d] \]

in ]a[0] ; a[1]] using the Habicht sequence (polynomial coefficients are REAL) and returns the count nr. All roots are bracketed in the first ]upperBnds[i] - tol ; upperBnds[i]] intervals. Returns -1 if anything went wrong (such as: polynomial does not have degree d, the interval provided by the other is absurd, etc.).

static new int IsTypeOf (string type)
 Undocumented Block
static int LinBairstowSolve (IntPtr c, int d, IntPtr r, ref double tolerance)
 Seeks all REAL roots of the d -th degree polynomial c[0] X^d + ... + c[d-1] X + c[d] = 0 equation Lin-Bairstow's method ( polynomial coefficients are REAL ) and stores the nr roots found ( multiple roots are multiply stored ) in r. tolerance is the user-defined solver tolerance; this variable may be relaxed by the iterative solver if needed. Returns nr. Warning: it is the user's responsibility to make sure the r array is large enough to contain the maximal number of expected roots.
static new
vtkPolynomialSolversUnivariate 
SafeDownCast (vtkObjectBase o)
 Undocumented Block
static void SetDivisionTolerance (double tol)
 Set/get the tolerance used when performing polynomial Euclidean division to find polynomial roots. This tolerance is used to decide whether the coefficient(s) of a polynomial remainder are close enough to zero to be neglected.
static IntPtr SolveCubic (double c0, double c1, double c2, double c3)
 Solves a cubic equation c0*t^3 + c1*t^2 + c2*t + c3 = 0 when c0, c1, c2, and c3 are REAL. Solution is motivated by Numerical Recipes In C 2nd Ed. Return array contains number of (real) roots (counting multiple roots as one) followed by roots themselves. The value in roots[4] is a integer giving further information about the roots (see return codes for int SolveCubic() ).
static int SolveCubic (double c0, double c1, double c2, double c3, IntPtr r1, IntPtr r2, IntPtr r3, IntPtr num_roots)
 Solves a cubic equation when c0, c1, c2, And c3 Are REAL. Solution is motivated by Numerical Recipes In C 2nd Ed. Roots and number of real roots are stored in user provided variables r1, r2, r3, and num_roots. Note that the function can return the following integer values describing the roots: (0)-no solution; (-1)-infinite number of solutions; (1)-one distinct real root of multiplicity 3 (stored in r1); (2)-two distinct real roots, one of multiplicity 2 (stored in r1 & r2); (3)-three distinct real roots; (-2)-quadratic equation with complex conjugate solution (real part of root returned in r1, imaginary in r2); (-3)-one real root and a complex conjugate pair (real root in r1 and real part of pair in r2 and imaginary in r3).
static IntPtr SolveLinear (double c0, double c1)
 Solves a linear equation c2*t + c3 = 0 when c2 and c3 are REAL. Solution is motivated by Numerical Recipes In C 2nd Ed. Return array contains number of roots followed by roots themselves.
static int SolveLinear (double c0, double c1, IntPtr r1, IntPtr num_roots)
 Solves a linear equation c2*t + c3 = 0 when c2 and c3 are REAL. Solution is motivated by Numerical Recipes In C 2nd Ed. Root and number of (real) roots are stored in user provided variables r2 and num_roots.
static IntPtr SolveQuadratic (double c0, double c1, double c2)
 Solves a quadratic equation c1*t^2 + c2*t + c3 = 0 when c1, c2, and c3 are REAL. Solution is motivated by Numerical Recipes In C 2nd Ed. Return array contains number of (real) roots (counting multiple roots as one) followed by roots themselves. Note that roots[3] contains a return code further describing solution - see documentation for SolveCubic() for meaning of return codes.
static int SolveQuadratic (double c0, double c1, double c2, IntPtr r1, IntPtr r2, IntPtr num_roots)
 Solves a quadratic equation c1*t^2 + c2*t + c3 = 0 when c1, c2, and c3 are REAL. Solution is motivated by Numerical Recipes In C 2nd Ed. Roots and number of roots are stored in user provided variables r1, r2, num_roots
static int SolveQuadratic (IntPtr c, IntPtr r, IntPtr m)
 Algebraically extracts REAL roots of the quadratic polynomial with REAL coefficients c[0] X^2 + c[1] X + c[2] and stores them (when they exist) and their respective multiplicities in the r and m arrays. Returns either the number of roots, or -1 if ininite number of roots.
static int SturmBisectionSolve (IntPtr P, int d, IntPtr a, IntPtr upperBnds, double tol)
 Finds all REAL roots (within tolerance tol) of the d -th degree polynomial P[0] X^d + ... + P[d-1] X + P[d] in ]a[0] ; a[1]] using Sturm's theorem ( polynomial coefficients are REAL ) and returns the count nr. All roots are bracketed in the first ]upperBnds[i] - tol ; upperBnds[i]] intervals. Returns -1 if anything went wrong (such as: polynomial does not have degree d, the interval provided by the other is absurd, etc.).
static int SturmBisectionSolve (IntPtr P, int d, IntPtr a, IntPtr upperBnds, double tol, int intervalType)
 Finds all REAL roots (within tolerance tol) of the d -th degree polynomial P[0] X^d + ... + P[d-1] X + P[d] in ]a[0] ; a[1]] using Sturm's theorem ( polynomial coefficients are REAL ) and returns the count nr. All roots are bracketed in the first ]upperBnds[i] - tol ; upperBnds[i]] intervals. Returns -1 if anything went wrong (such as: polynomial does not have degree d, the interval provided by the other is absurd, etc.).
static int SturmBisectionSolve (IntPtr P, int d, IntPtr a, IntPtr upperBnds, double tol, int intervalType, bool divideGCD)
 Finds all REAL roots (within tolerance tol) of the d -th degree polynomial P[0] X^d + ... + P[d-1] X + P[d] in ]a[0] ; a[1]] using Sturm's theorem ( polynomial coefficients are REAL ) and returns the count nr. All roots are bracketed in the first ]upperBnds[i] - tol ; upperBnds[i]] intervals. Returns -1 if anything went wrong (such as: polynomial does not have degree d, the interval provided by the other is absurd, etc.).
static int TartagliaCardanSolve (IntPtr c, IntPtr r, IntPtr m, double tol)
 Algebraically extracts REAL roots of the cubic polynomial with REAL coefficients X^3 + c[0] X^2 + c[1] X + c[2] and stores them (when they exist) and their respective multiplicities in the r and m arrays. Some numerical noise can be filtered by the use of a tolerance tol instead of equality with 0 (one can use, e.g., VTK_DBL_EPSILON). The main differences with SolveCubic are that (1) the polynomial must have unit leading coefficient, (2) complex roots are discarded upfront, (3) non-simple roots are stored only once, along with their respective multiplicities, and (4) some numerical noise is filtered by the use of relative tolerance instead of equality with 0. Returns the number of roots. <i> In memoriam </i> Niccolo Tartaglia (1500 - 1559), unfairly forgotten.
- Static Public Member Functions inherited from Kitware.VTK.vtkObject
static void BreakOnError ()
 This method is called when vtkErrorMacro executes. It allows the debugger to break on error.
static int GetGlobalWarningDisplay ()
 This is a global flag that controls whether any debug, warning or error messages are displayed.
static void GlobalWarningDisplayOff ()
 This is a global flag that controls whether any debug, warning or error messages are displayed.
static void GlobalWarningDisplayOn ()
 This is a global flag that controls whether any debug, warning or error messages are displayed.
static void SetGlobalWarningDisplay (int val)
 This is a global flag that controls whether any debug, warning or error messages are displayed.

Public Attributes

new const string MRFullTypeName = "Kitware.VTK.vtkPolynomialSolversUnivariate"
 Automatically generated type registration mechanics.
- Public Attributes inherited from Kitware.VTK.vtkObject
new const string MRFullTypeName = "Kitware.VTK.vtkObject"
 Automatically generated type registration mechanics.
- Public Attributes inherited from Kitware.VTK.vtkObjectBase
new const string MRFullTypeName = "Kitware.VTK.vtkObjectBase"
 Automatically generated type registration mechanics.
- Public Attributes inherited from Kitware.VTK.WrappedObject
const string vtkChartsEL_dll = "libKitware.VTK.vtkCharts.Unmanaged.so"
 Export layer functions for 'vtkCharts' are exported from the DLL named by the value of this variable.
const string vtkCommonEL_dll = "libKitware.VTK.vtkCommon.Unmanaged.so"
 Export layer functions for 'vtkCommon' are exported from the DLL named by the value of this variable.
const string vtkFilteringEL_dll = "libKitware.VTK.vtkFiltering.Unmanaged.so"
 Export layer functions for 'vtkFiltering' are exported from the DLL named by the value of this variable.
const string vtkGenericFilteringEL_dll = "libKitware.VTK.vtkGenericFiltering.Unmanaged.so"
 Export layer functions for 'vtkGenericFiltering' are exported from the DLL named by the value of this variable.
const string vtkGeovisEL_dll = "libKitware.VTK.vtkGeovis.Unmanaged.so"
 Export layer functions for 'vtkGeovis' are exported from the DLL named by the value of this variable.
const string vtkGraphicsEL_dll = "libKitware.VTK.vtkGraphics.Unmanaged.so"
 Export layer functions for 'vtkGraphics' are exported from the DLL named by the value of this variable.
const string vtkHybridEL_dll = "libKitware.VTK.vtkHybrid.Unmanaged.so"
 Export layer functions for 'vtkHybrid' are exported from the DLL named by the value of this variable.
const string vtkIOEL_dll = "libKitware.VTK.vtkIO.Unmanaged.so"
 Export layer functions for 'vtkIO' are exported from the DLL named by the value of this variable.
const string vtkImagingEL_dll = "libKitware.VTK.vtkImaging.Unmanaged.so"
 Export layer functions for 'vtkImaging' are exported from the DLL named by the value of this variable.
const string vtkInfovisEL_dll = "libKitware.VTK.vtkInfovis.Unmanaged.so"
 Export layer functions for 'vtkInfovis' are exported from the DLL named by the value of this variable.
const string vtkParallelEL_dll = "libKitware.VTK.vtkParallel.Unmanaged.so"
 Export layer functions for 'vtkParallel' are exported from the DLL named by the value of this variable.
const string vtkRenderingEL_dll = "libKitware.VTK.vtkRendering.Unmanaged.so"
 Export layer functions for 'vtkRendering' are exported from the DLL named by the value of this variable.
const string vtkViewsEL_dll = "libKitware.VTK.vtkViews.Unmanaged.so"
 Export layer functions for 'vtkViews' are exported from the DLL named by the value of this variable.
const string vtkVolumeRenderingEL_dll = "libKitware.VTK.vtkVolumeRendering.Unmanaged.so"
 Export layer functions for 'vtkVolumeRendering' are exported from the DLL named by the value of this variable.
const string vtkWidgetsEL_dll = "libKitware.VTK.vtkWidgets.Unmanaged.so"
 Export layer functions for 'vtkWidgets' are exported from the DLL named by the value of this variable.

Static Public Attributes

static new readonly string MRClassNameKey = "30vtkPolynomialSolversUnivariate"
 Automatically generated type registration mechanics.
- Static Public Attributes inherited from Kitware.VTK.vtkObject
static new readonly string MRClassNameKey = "9vtkObject"
 Automatically generated type registration mechanics.
- Static Public Attributes inherited from Kitware.VTK.vtkObjectBase
static new readonly string MRClassNameKey = "13vtkObjectBase"
 Automatically generated type registration mechanics.

Protected Member Functions

override void Dispose (bool disposing)
 Automatically generated protected Dispose method - called from public Dispose or the C# destructor. DO NOT call directly.

Static Private Member Functions

static vtkPolynomialSolversUnivariate ()
 Automatically generated type registration mechanics.

Additional Inherited Members

- Properties inherited from Kitware.VTK.vtkObject
Kitware.VTK.vtkObject.vtkObjectEventHandler AbortCheckEvt
 The AbortCheckEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.AbortCheckEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler AnimationCueTickEvt
 The AnimationCueTickEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.AnimationCueTickEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler AnyEvt
 The AnyEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.AnyEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler CharEvt
 The CharEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.CharEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler ConfigureEvt
 The ConfigureEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.ConfigureEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler ConnectionClosedEvt
 The ConnectionClosedEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.ConnectionClosedEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler ConnectionCreatedEvt
 The ConnectionCreatedEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.ConnectionCreatedEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler CreateTimerEvt
 The CreateTimerEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.CreateTimerEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler CursorChangedEvt
 The CursorChangedEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.CursorChangedEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler DeleteEvt
 The DeleteEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.DeleteEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler DestroyTimerEvt
 The DestroyTimerEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.DestroyTimerEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler DisableEvt
 The DisableEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.DisableEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler DomainModifiedEvt
 The DomainModifiedEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.DomainModifiedEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler EnableEvt
 The EnableEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.EnableEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler EndAnimationCueEvt
 The EndAnimationCueEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.EndAnimationCueEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler EndEvt
 The EndEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.EndEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler EndInteractionEvt
 The EndInteractionEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.EndInteractionEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler EndPickEvt
 The EndPickEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.EndPickEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler EndWindowLevelEvt
 The EndWindowLevelEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.EndWindowLevelEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler EnterEvt
 The EnterEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.EnterEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler ErrorEvt
 The ErrorEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.ErrorEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler ExecuteInformationEvt
 The ExecuteInformationEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.ExecuteInformationEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler ExitEvt
 The ExitEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.ExitEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler ExposeEvt
 The ExposeEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.ExposeEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler InteractionEvt
 The InteractionEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.InteractionEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler KeyPressEvt
 The KeyPressEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.KeyPressEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler KeyReleaseEvt
 The KeyReleaseEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.KeyReleaseEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler LeaveEvt
 The LeaveEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.LeaveEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler LeftButtonPressEvt
 The LeftButtonPressEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.LeftButtonPressEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler LeftButtonReleaseEvt
 The LeftButtonReleaseEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.LeftButtonReleaseEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler MiddleButtonPressEvt
 The MiddleButtonPressEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.MiddleButtonPressEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler MiddleButtonReleaseEvt
 The MiddleButtonReleaseEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.MiddleButtonReleaseEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler ModifiedEvt
 The ModifiedEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.ModifiedEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler MouseMoveEvt
 The MouseMoveEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.MouseMoveEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler MouseWheelBackwardEvt
 The MouseWheelBackwardEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.MouseWheelBackwardEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler MouseWheelForwardEvt
 The MouseWheelForwardEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.MouseWheelForwardEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler PickEvt
 The PickEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.PickEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler PlacePointEvt
 The PlacePointEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.PlacePointEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler PlaceWidgetEvt
 The PlaceWidgetEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.PlaceWidgetEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler ProgressEvt
 The ProgressEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.ProgressEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler PropertyModifiedEvt
 The PropertyModifiedEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.PropertyModifiedEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler RegisterEvt
 The RegisterEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.RegisterEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler RenderEvt
 The RenderEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.RenderEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler RenderWindowMessageEvt
 The RenderWindowMessageEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.RenderWindowMessageEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler ResetCameraClippingRangeEvt
 The ResetCameraClippingRangeEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.ResetCameraClippingRangeEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler ResetCameraEvt
 The ResetCameraEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.ResetCameraEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler ResetWindowLevelEvt
 The ResetWindowLevelEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.ResetWindowLevelEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler RightButtonPressEvt
 The RightButtonPressEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.RightButtonPressEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler RightButtonReleaseEvt
 The RightButtonReleaseEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.RightButtonReleaseEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler SelectionChangedEvt
 The SelectionChangedEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.SelectionChangedEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler SetOutputEvt
 The SetOutputEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.SetOutputEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler StartAnimationCueEvt
 The StartAnimationCueEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.StartAnimationCueEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler StartEvt
 The StartEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.StartEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler StartInteractionEvt
 The StartInteractionEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.StartInteractionEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler StartPickEvt
 The StartPickEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.StartPickEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler StartWindowLevelEvt
 The StartWindowLevelEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.StartWindowLevelEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler TimerEvt
 The TimerEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.TimerEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler UnRegisterEvt
 The UnRegisterEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.UnRegisterEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler UpdateEvt
 The UpdateEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.UpdateEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler UpdateInformationEvt
 The UpdateInformationEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.UpdateInformationEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler UpdatePropertyEvt
 The UpdatePropertyEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.UpdatePropertyEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler VolumeMapperComputeGradientsEndEvt
 The VolumeMapperComputeGradientsEndEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.VolumeMapperComputeGradientsEndEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler VolumeMapperComputeGradientsProgressEvt
 The VolumeMapperComputeGradientsProgressEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.VolumeMapperComputeGradientsProgressEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler VolumeMapperComputeGradientsStartEvt
 The VolumeMapperComputeGradientsStartEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.VolumeMapperComputeGradientsStartEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler VolumeMapperRenderEndEvt
 The VolumeMapperRenderEndEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.VolumeMapperRenderEndEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler VolumeMapperRenderProgressEvt
 The VolumeMapperRenderProgressEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.VolumeMapperRenderProgressEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler VolumeMapperRenderStartEvt
 The VolumeMapperRenderStartEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.VolumeMapperRenderStartEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler WarningEvt
 The WarningEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.WarningEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler WidgetActivateEvt
 The WidgetActivateEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.WidgetActivateEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler WidgetModifiedEvt
 The WidgetModifiedEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.WidgetModifiedEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler WidgetValueChangedEvt
 The WidgetValueChangedEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.WidgetValueChangedEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler WindowLevelEvt
 The WindowLevelEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.WindowLevelEvent as the eventId parameter.
Kitware.VTK.vtkObject.vtkObjectEventHandler WrongTagEvt
 The WrongTagEvt event is invoked when the sender's InvokeEvent method is called with vtkCommand.EventIds.WrongTagEvent as the eventId parameter.

Detailed Description

vtkPolynomialSolversUnivariate - polynomial solvers

Description vtkPolynomialSolversUnivariate provides solvers for univariate polynomial equations with real coefficients. The Tartaglia-Cardan and Ferrari solvers work on polynomials of fixed degree 3 and 4, respectively. The Lin-Bairstow and Sturm solvers work on polynomials of arbitrary degree. The Sturm solver is the most robust solver but only reports roots within an interval and does not report multiplicities. The Lin-Bairstow solver reports multiplicities.

For difficult polynomials, you may wish to use FilterRoots to eliminate some of the roots reported by the Sturm solver. FilterRoots evaluates the derivatives near each root to eliminate cases where a local minimum or maximum is close to zero.

Thanks Thanks to Philippe Pebay, Korben Rusek, David Thompson, and Maurice Rojas for implementing these solvers.

Constructor & Destructor Documentation

static Kitware.VTK.vtkPolynomialSolversUnivariate.vtkPolynomialSolversUnivariate ( )
staticprivate

Automatically generated type registration mechanics.

Kitware.VTK.vtkPolynomialSolversUnivariate.vtkPolynomialSolversUnivariate ( IntPtr  rawCppThis,
bool  callDisposalMethod,
bool  strong 
)

Automatically generated constructor - called from generated code. DO NOT call directly.

Kitware.VTK.vtkPolynomialSolversUnivariate.vtkPolynomialSolversUnivariate ( )

Undocumented Block

Member Function Documentation

override void Kitware.VTK.vtkPolynomialSolversUnivariate.Dispose ( bool  disposing)
protected

Automatically generated protected Dispose method - called from public Dispose or the C# destructor. DO NOT call directly.

Reimplemented from Kitware.VTK.vtkObject.

static int Kitware.VTK.vtkPolynomialSolversUnivariate.FerrariSolve ( IntPtr  c,
IntPtr  r,
IntPtr  m,
double  tol 
)
static

Algebraically extracts REAL roots of the quartic polynomial with REAL coefficients X^4 + c[0] X^3 + c[1] X^2 + c[2] X + c[3] and stores them (when they exist) and their respective multiplicities in the r and m arrays, based on Ferrari's method. Some numerical noise can be filtered by the use of a tolerance tol instead of equality with 0 (one can use, e.g., VTK_DBL_EPSILON). Returns the number of roots. Warning: it is the user's responsibility to pass a non-negative tol.

static int Kitware.VTK.vtkPolynomialSolversUnivariate.FilterRoots ( IntPtr  P,
int  d,
IntPtr  upperBnds,
int  rootcount,
double  diameter 
)
static

This uses the derivative sequence to filter possible roots of a polynomial. First it sorts the roots and removes any duplicates. If the number of sign changes of the derivative sequence at a root at upperBnds[i] == that at upperBnds[i] - diameter then the i^th value is removed from upperBnds. It returns the new number of roots.

static double Kitware.VTK.vtkPolynomialSolversUnivariate.GetDivisionTolerance ( )
static

Set/get the tolerance used when performing polynomial Euclidean division to find polynomial roots. This tolerance is used to decide whether the coefficient(s) of a polynomial remainder are close enough to zero to be neglected.

static int Kitware.VTK.vtkPolynomialSolversUnivariate.HabichtBisectionSolve ( IntPtr  P,
int  d,
IntPtr  a,
IntPtr  upperBnds,
double  tol 
)
static

Finds all REAL roots (within tolerance tol) of the d -th degree polynomial

\[ P[0] X^d + ... + P[d-1] X + P[d] \]

in ]a[0] ; a[1]] using the Habicht sequence (polynomial coefficients are REAL) and returns the count nr. All roots are bracketed in the first ]upperBnds[i] - tol ; upperBnds[i]] intervals. Returns -1 if anything went wrong (such as: polynomial does not have degree d, the interval provided by the other is absurd, etc.).

intervalType specifies the search interval as follows: 0 = 00 = ]a,b[ 1 = 10 = [a,b[ 2 = 01 = ]a,b] 3 = 11 = [a,b] This defaults to 0.

The last non-zero item in the Habicht sequence is the gcd of P and P'. The parameter divideGCD specifies whether the program should attempt to divide by the gcd and run again. It works better with polynomials known to have high multiplicities. When divideGCD != 0 then it attempts to divide by the GCD, if applicable. This defaults to 0.

Compared to the Sturm solver the Habicht solver is slower, although both are O(d^2). The Habicht solver has the added benefit that it has a built in mechanism to keep the leading coefficients of the result from polynomial division bounded above and below in absolute value. This will tend to keep the coefficients of the polynomials in the sequence from zeroing out prematurely or becoming infinite.

Constructing the Habicht sequence is O(d^2) in both time and space.

Warning: it is the user's responsibility to make sure the upperBnds array is large enough to contain the maximal number of expected roots. Note that nr is smaller or equal to the actual number of roots in ]a[0] ; a[1]] since roots within are lumped in the same bracket. array is large enough to contain the maximal number of expected upper bounds.

static int Kitware.VTK.vtkPolynomialSolversUnivariate.HabichtBisectionSolve ( IntPtr  P,
int  d,
IntPtr  a,
IntPtr  upperBnds,
double  tol,
int  intervalType 
)
static

Finds all REAL roots (within tolerance tol) of the d -th degree polynomial

\[ P[0] X^d + ... + P[d-1] X + P[d] \]

in ]a[0] ; a[1]] using the Habicht sequence (polynomial coefficients are REAL) and returns the count nr. All roots are bracketed in the first ]upperBnds[i] - tol ; upperBnds[i]] intervals. Returns -1 if anything went wrong (such as: polynomial does not have degree d, the interval provided by the other is absurd, etc.).

intervalType specifies the search interval as follows: 0 = 00 = ]a,b[ 1 = 10 = [a,b[ 2 = 01 = ]a,b] 3 = 11 = [a,b] This defaults to 0.

The last non-zero item in the Habicht sequence is the gcd of P and P'. The parameter divideGCD specifies whether the program should attempt to divide by the gcd and run again. It works better with polynomials known to have high multiplicities. When divideGCD != 0 then it attempts to divide by the GCD, if applicable. This defaults to 0.

Compared to the Sturm solver the Habicht solver is slower, although both are O(d^2). The Habicht solver has the added benefit that it has a built in mechanism to keep the leading coefficients of the result from polynomial division bounded above and below in absolute value. This will tend to keep the coefficients of the polynomials in the sequence from zeroing out prematurely or becoming infinite.

Constructing the Habicht sequence is O(d^2) in both time and space.

Warning: it is the user's responsibility to make sure the upperBnds array is large enough to contain the maximal number of expected roots. Note that nr is smaller or equal to the actual number of roots in ]a[0] ; a[1]] since roots within are lumped in the same bracket. array is large enough to contain the maximal number of expected upper bounds.

static int Kitware.VTK.vtkPolynomialSolversUnivariate.HabichtBisectionSolve ( IntPtr  P,
int  d,
IntPtr  a,
IntPtr  upperBnds,
double  tol,
int  intervalType,
bool  divideGCD 
)
static

Finds all REAL roots (within tolerance tol) of the d -th degree polynomial

\[ P[0] X^d + ... + P[d-1] X + P[d] \]

in ]a[0] ; a[1]] using the Habicht sequence (polynomial coefficients are REAL) and returns the count nr. All roots are bracketed in the first ]upperBnds[i] - tol ; upperBnds[i]] intervals. Returns -1 if anything went wrong (such as: polynomial does not have degree d, the interval provided by the other is absurd, etc.).

intervalType specifies the search interval as follows: 0 = 00 = ]a,b[ 1 = 10 = [a,b[ 2 = 01 = ]a,b] 3 = 11 = [a,b] This defaults to 0.

The last non-zero item in the Habicht sequence is the gcd of P and P'. The parameter divideGCD specifies whether the program should attempt to divide by the gcd and run again. It works better with polynomials known to have high multiplicities. When divideGCD != 0 then it attempts to divide by the GCD, if applicable. This defaults to 0.

Compared to the Sturm solver the Habicht solver is slower, although both are O(d^2). The Habicht solver has the added benefit that it has a built in mechanism to keep the leading coefficients of the result from polynomial division bounded above and below in absolute value. This will tend to keep the coefficients of the polynomials in the sequence from zeroing out prematurely or becoming infinite.

Constructing the Habicht sequence is O(d^2) in both time and space.

Warning: it is the user's responsibility to make sure the upperBnds array is large enough to contain the maximal number of expected roots. Note that nr is smaller or equal to the actual number of roots in ]a[0] ; a[1]] since roots within are lumped in the same bracket. array is large enough to contain the maximal number of expected upper bounds.

override int Kitware.VTK.vtkPolynomialSolversUnivariate.IsA ( string  type)
virtual

Undocumented Block

Reimplemented from Kitware.VTK.vtkObject.

static new int Kitware.VTK.vtkPolynomialSolversUnivariate.IsTypeOf ( string  type)
static

Undocumented Block

Reimplemented from Kitware.VTK.vtkObject.

static int Kitware.VTK.vtkPolynomialSolversUnivariate.LinBairstowSolve ( IntPtr  c,
int  d,
IntPtr  r,
ref double  tolerance 
)
static

Seeks all REAL roots of the d -th degree polynomial c[0] X^d + ... + c[d-1] X + c[d] = 0 equation Lin-Bairstow's method ( polynomial coefficients are REAL ) and stores the nr roots found ( multiple roots are multiply stored ) in r. tolerance is the user-defined solver tolerance; this variable may be relaxed by the iterative solver if needed. Returns nr. Warning: it is the user's responsibility to make sure the r array is large enough to contain the maximal number of expected roots.

static new vtkPolynomialSolversUnivariate Kitware.VTK.vtkPolynomialSolversUnivariate.New ( )
static

Undocumented Block

Reimplemented from Kitware.VTK.vtkObject.

new vtkPolynomialSolversUnivariate Kitware.VTK.vtkPolynomialSolversUnivariate.NewInstance ( )

Undocumented Block

Reimplemented from Kitware.VTK.vtkObject.

static new vtkPolynomialSolversUnivariate Kitware.VTK.vtkPolynomialSolversUnivariate.SafeDownCast ( vtkObjectBase  o)
static

Undocumented Block

Reimplemented from Kitware.VTK.vtkObject.

Here is the call graph for this function:

static void Kitware.VTK.vtkPolynomialSolversUnivariate.SetDivisionTolerance ( double  tol)
static

Set/get the tolerance used when performing polynomial Euclidean division to find polynomial roots. This tolerance is used to decide whether the coefficient(s) of a polynomial remainder are close enough to zero to be neglected.

static IntPtr Kitware.VTK.vtkPolynomialSolversUnivariate.SolveCubic ( double  c0,
double  c1,
double  c2,
double  c3 
)
static

Solves a cubic equation c0*t^3 + c1*t^2 + c2*t + c3 = 0 when c0, c1, c2, and c3 are REAL. Solution is motivated by Numerical Recipes In C 2nd Ed. Return array contains number of (real) roots (counting multiple roots as one) followed by roots themselves. The value in roots[4] is a integer giving further information about the roots (see return codes for int SolveCubic() ).

static int Kitware.VTK.vtkPolynomialSolversUnivariate.SolveCubic ( double  c0,
double  c1,
double  c2,
double  c3,
IntPtr  r1,
IntPtr  r2,
IntPtr  r3,
IntPtr  num_roots 
)
static

Solves a cubic equation when c0, c1, c2, And c3 Are REAL. Solution is motivated by Numerical Recipes In C 2nd Ed. Roots and number of real roots are stored in user provided variables r1, r2, r3, and num_roots. Note that the function can return the following integer values describing the roots: (0)-no solution; (-1)-infinite number of solutions; (1)-one distinct real root of multiplicity 3 (stored in r1); (2)-two distinct real roots, one of multiplicity 2 (stored in r1 & r2); (3)-three distinct real roots; (-2)-quadratic equation with complex conjugate solution (real part of root returned in r1, imaginary in r2); (-3)-one real root and a complex conjugate pair (real root in r1 and real part of pair in r2 and imaginary in r3).

static IntPtr Kitware.VTK.vtkPolynomialSolversUnivariate.SolveLinear ( double  c0,
double  c1 
)
static

Solves a linear equation c2*t + c3 = 0 when c2 and c3 are REAL. Solution is motivated by Numerical Recipes In C 2nd Ed. Return array contains number of roots followed by roots themselves.

static int Kitware.VTK.vtkPolynomialSolversUnivariate.SolveLinear ( double  c0,
double  c1,
IntPtr  r1,
IntPtr  num_roots 
)
static

Solves a linear equation c2*t + c3 = 0 when c2 and c3 are REAL. Solution is motivated by Numerical Recipes In C 2nd Ed. Root and number of (real) roots are stored in user provided variables r2 and num_roots.

static IntPtr Kitware.VTK.vtkPolynomialSolversUnivariate.SolveQuadratic ( double  c0,
double  c1,
double  c2 
)
static

Solves a quadratic equation c1*t^2 + c2*t + c3 = 0 when c1, c2, and c3 are REAL. Solution is motivated by Numerical Recipes In C 2nd Ed. Return array contains number of (real) roots (counting multiple roots as one) followed by roots themselves. Note that roots[3] contains a return code further describing solution - see documentation for SolveCubic() for meaning of return codes.

static int Kitware.VTK.vtkPolynomialSolversUnivariate.SolveQuadratic ( double  c0,
double  c1,
double  c2,
IntPtr  r1,
IntPtr  r2,
IntPtr  num_roots 
)
static

Solves a quadratic equation c1*t^2 + c2*t + c3 = 0 when c1, c2, and c3 are REAL. Solution is motivated by Numerical Recipes In C 2nd Ed. Roots and number of roots are stored in user provided variables r1, r2, num_roots

static int Kitware.VTK.vtkPolynomialSolversUnivariate.SolveQuadratic ( IntPtr  c,
IntPtr  r,
IntPtr  m 
)
static

Algebraically extracts REAL roots of the quadratic polynomial with REAL coefficients c[0] X^2 + c[1] X + c[2] and stores them (when they exist) and their respective multiplicities in the r and m arrays. Returns either the number of roots, or -1 if ininite number of roots.

static int Kitware.VTK.vtkPolynomialSolversUnivariate.SturmBisectionSolve ( IntPtr  P,
int  d,
IntPtr  a,
IntPtr  upperBnds,
double  tol 
)
static

Finds all REAL roots (within tolerance tol) of the d -th degree polynomial P[0] X^d + ... + P[d-1] X + P[d] in ]a[0] ; a[1]] using Sturm's theorem ( polynomial coefficients are REAL ) and returns the count nr. All roots are bracketed in the first ]upperBnds[i] - tol ; upperBnds[i]] intervals. Returns -1 if anything went wrong (such as: polynomial does not have degree d, the interval provided by the other is absurd, etc.).

intervalType specifies the search interval as follows: 0 = 00 = ]a,b[ 1 = 10 = [a,b[ 2 = 01 = ]a,b] 3 = 11 = [a,b] This defaults to 0.

The last non-zero item in the Sturm sequence is the gcd of P and P'. The parameter divideGCD specifies whether the program should attempt to divide by the gcd and run again. It works better with polynomials known to have high multiplicities. When divideGCD != 0 then it attempts to divide by the GCD, if applicable. This defaults to 0.

Constructing the Sturm sequence is O(d^2) in both time and space.

Warning: it is the user's responsibility to make sure the upperBnds array is large enough to contain the maximal number of expected roots. Note that nr is smaller or equal to the actual number of roots in ]a[0] ; a[1]] since roots within are lumped in the same bracket. array is large enough to contain the maximal number of expected upper bounds.

static int Kitware.VTK.vtkPolynomialSolversUnivariate.SturmBisectionSolve ( IntPtr  P,
int  d,
IntPtr  a,
IntPtr  upperBnds,
double  tol,
int  intervalType 
)
static

Finds all REAL roots (within tolerance tol) of the d -th degree polynomial P[0] X^d + ... + P[d-1] X + P[d] in ]a[0] ; a[1]] using Sturm's theorem ( polynomial coefficients are REAL ) and returns the count nr. All roots are bracketed in the first ]upperBnds[i] - tol ; upperBnds[i]] intervals. Returns -1 if anything went wrong (such as: polynomial does not have degree d, the interval provided by the other is absurd, etc.).

intervalType specifies the search interval as follows: 0 = 00 = ]a,b[ 1 = 10 = [a,b[ 2 = 01 = ]a,b] 3 = 11 = [a,b] This defaults to 0.

The last non-zero item in the Sturm sequence is the gcd of P and P'. The parameter divideGCD specifies whether the program should attempt to divide by the gcd and run again. It works better with polynomials known to have high multiplicities. When divideGCD != 0 then it attempts to divide by the GCD, if applicable. This defaults to 0.

Constructing the Sturm sequence is O(d^2) in both time and space.

Warning: it is the user's responsibility to make sure the upperBnds array is large enough to contain the maximal number of expected roots. Note that nr is smaller or equal to the actual number of roots in ]a[0] ; a[1]] since roots within are lumped in the same bracket. array is large enough to contain the maximal number of expected upper bounds.

static int Kitware.VTK.vtkPolynomialSolversUnivariate.SturmBisectionSolve ( IntPtr  P,
int  d,
IntPtr  a,
IntPtr  upperBnds,
double  tol,
int  intervalType,
bool  divideGCD 
)
static

Finds all REAL roots (within tolerance tol) of the d -th degree polynomial P[0] X^d + ... + P[d-1] X + P[d] in ]a[0] ; a[1]] using Sturm's theorem ( polynomial coefficients are REAL ) and returns the count nr. All roots are bracketed in the first ]upperBnds[i] - tol ; upperBnds[i]] intervals. Returns -1 if anything went wrong (such as: polynomial does not have degree d, the interval provided by the other is absurd, etc.).

intervalType specifies the search interval as follows: 0 = 00 = ]a,b[ 1 = 10 = [a,b[ 2 = 01 = ]a,b] 3 = 11 = [a,b] This defaults to 0.

The last non-zero item in the Sturm sequence is the gcd of P and P'. The parameter divideGCD specifies whether the program should attempt to divide by the gcd and run again. It works better with polynomials known to have high multiplicities. When divideGCD != 0 then it attempts to divide by the GCD, if applicable. This defaults to 0.

Constructing the Sturm sequence is O(d^2) in both time and space.

Warning: it is the user's responsibility to make sure the upperBnds array is large enough to contain the maximal number of expected roots. Note that nr is smaller or equal to the actual number of roots in ]a[0] ; a[1]] since roots within are lumped in the same bracket. array is large enough to contain the maximal number of expected upper bounds.

static int Kitware.VTK.vtkPolynomialSolversUnivariate.TartagliaCardanSolve ( IntPtr  c,
IntPtr  r,
IntPtr  m,
double  tol 
)
static

Algebraically extracts REAL roots of the cubic polynomial with REAL coefficients X^3 + c[0] X^2 + c[1] X + c[2] and stores them (when they exist) and their respective multiplicities in the r and m arrays. Some numerical noise can be filtered by the use of a tolerance tol instead of equality with 0 (one can use, e.g., VTK_DBL_EPSILON). The main differences with SolveCubic are that (1) the polynomial must have unit leading coefficient, (2) complex roots are discarded upfront, (3) non-simple roots are stored only once, along with their respective multiplicities, and (4) some numerical noise is filtered by the use of relative tolerance instead of equality with 0. Returns the number of roots. <i> In memoriam </i> Niccolo Tartaglia (1500 - 1559), unfairly forgotten.

Member Data Documentation

new readonly string Kitware.VTK.vtkPolynomialSolversUnivariate.MRClassNameKey = "30vtkPolynomialSolversUnivariate"
static

Automatically generated type registration mechanics.

new const string Kitware.VTK.vtkPolynomialSolversUnivariate.MRFullTypeName = "Kitware.VTK.vtkPolynomialSolversUnivariate"

Automatically generated type registration mechanics.


The documentation for this class was generated from the following file: