VTK
dox
Common
Math
vtkPolynomialSolversUnivariate.h
Go to the documentation of this file.
1
/*=========================================================================
2
3
Program: Visualization Toolkit
4
Module: vtkPolynomialSolversUnivariate.h
5
6
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7
All rights reserved.
8
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10
This software is distributed WITHOUT ANY WARRANTY; without even
11
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12
PURPOSE. See the above copyright notice for more information.
13
14
=========================================================================
15
Copyright 2011 Sandia Corporation.
16
Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive
17
license for use of this work by or on behalf of the
18
U.S. Government. Redistribution and use in source and binary forms, with
19
or without modification, are permitted provided that this Notice and any
20
statement of authorship are reproduced on all copies.
21
22
Contact: pppebay@sandia.gov,dcthomp@sandia.gov
23
24
=========================================================================*/
49
#ifndef vtkPolynomialSolversUnivariate_h
50
#define vtkPolynomialSolversUnivariate_h
51
52
#include "vtkCommonMathModule.h"
// For export macro
53
#include "
vtkObject.h
"
54
55
class
VTKCOMMONMATH_EXPORT
vtkPolynomialSolversUnivariate
:
public
vtkObject
56
{
57
public
:
58
static
vtkPolynomialSolversUnivariate
*
New
();
59
vtkTypeMacro(
vtkPolynomialSolversUnivariate
,
vtkObject
);
60
void
PrintSelf
(ostream& os,
vtkIndent
indent)
override
;
61
static
ostream& PrintPolynomial( ostream& os,
double
* P,
int
degP );
62
64
103
static
int
HabichtBisectionSolve(
104
double
* P,
int
d,
double
* a,
double
* upperBnds,
double
tol );
105
static
int
HabichtBisectionSolve(
106
double
* P,
int
d,
double
* a,
double
* upperBnds,
double
tol,
107
int
intervalType );
108
static
int
HabichtBisectionSolve(
109
double
* P,
int
d,
double
* a,
double
* upperBnds,
double
tol,
110
int
intervalType,
bool
divideGCD );
112
114
144
static
int
SturmBisectionSolve(
145
double
* P,
int
d,
double
* a,
double
* upperBnds,
double
tol );
146
static
int
SturmBisectionSolve(
147
double
* P,
int
d,
double
* a,
double
* upperBnds,
double
tol,
148
int
intervalType );
149
static
int
SturmBisectionSolve(
150
double
* P,
int
d,
double
* a,
double
* upperBnds,
double
tol,
151
int
intervalType,
bool
divideGCD );
153
161
static
int
FilterRoots(
162
double
* P,
int
d,
double
*upperBnds,
int
rootcount,
double
diameter );
163
175
static
int
LinBairstowSolve(
double
* c,
int
d,
double
* r,
double
& tolerance );
176
187
static
int
FerrariSolve(
double
* c,
double
* r,
int
* m,
double
tol );
188
204
static
int
TartagliaCardanSolve(
double
* c,
double
* r,
int
* m,
double
tol );
205
214
static
double
* SolveCubic(
double
c0,
double
c1,
double
c2,
double
c3);
215
224
static
double
* SolveQuadratic(
double
c0,
double
c1,
double
c2);
225
231
static
double
* SolveLinear(
double
c0,
double
c1);
232
246
static
int
SolveCubic(
double
c0,
double
c1,
double
c2,
double
c3,
247
double
*r1,
double
*r2,
double
*r3,
int
*num_roots);
248
256
static
int
SolveQuadratic(
double
c0,
double
c1,
double
c2,
257
double
*r1,
double
*r2,
int
*num_roots);
258
266
static
int
SolveQuadratic(
double
* c,
double
* r,
int
* m );
267
274
static
int
SolveLinear(
double
c0,
double
c1,
double
*r1,
int
*num_roots);
275
277
283
static
void
SetDivisionTolerance(
double
tol );
284
static
double
GetDivisionTolerance();
286
287
protected
:
288
vtkPolynomialSolversUnivariate
() {}
289
~vtkPolynomialSolversUnivariate
()
override
{}
290
291
static
double
DivisionTolerance
;
292
293
private
:
294
vtkPolynomialSolversUnivariate
(
const
vtkPolynomialSolversUnivariate
&) =
delete
;
295
void
operator=(
const
vtkPolynomialSolversUnivariate
&) =
delete
;
296
};
297
298
#endif
vtkPolynomialSolversUnivariate
polynomial solvers
Definition:
vtkPolynomialSolversUnivariate.h:55
vtkObject::New
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
vtkObject
abstract base class for most VTK objects
Definition:
vtkObject.h:53
vtkPolynomialSolversUnivariate::~vtkPolynomialSolversUnivariate
~vtkPolynomialSolversUnivariate() override
Definition:
vtkPolynomialSolversUnivariate.h:289
vtkPolynomialSolversUnivariate::vtkPolynomialSolversUnivariate
vtkPolynomialSolversUnivariate()
Definition:
vtkPolynomialSolversUnivariate.h:288
vtkPolynomialSolversUnivariate::DivisionTolerance
static double DivisionTolerance
Definition:
vtkPolynomialSolversUnivariate.h:291
vtkIndent
a simple class to control print indentation
Definition:
vtkIndent.h:33
vtkObject::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkObject.h
Generated by
1.8.16