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
=========================================================================*/
52
#ifndef vtkPolynomialSolversUnivariate_h
53
#define vtkPolynomialSolversUnivariate_h
54
55
#include "vtkCommonMathModule.h"
// For export macro
56
#include "
vtkObject.h
"
57
58
class
VTKCOMMONMATH_EXPORT
vtkPolynomialSolversUnivariate
:
public
vtkObject
59
{
60
public
:
61
static
vtkPolynomialSolversUnivariate
*
New
();
62
vtkTypeMacro(
vtkPolynomialSolversUnivariate
,
vtkObject
);
63
void
PrintSelf
(ostream& os,
vtkIndent
indent)
override
;
64
static
ostream& PrintPolynomial( ostream& os,
double
* P,
int
degP );
65
67
106
static
int
HabichtBisectionSolve(
107
double
* P,
int
d,
double
* a,
double
* upperBnds,
double
tol );
108
static
int
HabichtBisectionSolve(
109
double
* P,
int
d,
double
* a,
double
* upperBnds,
double
tol,
110
int
intervalType );
111
static
int
HabichtBisectionSolve(
112
double
* P,
int
d,
double
* a,
double
* upperBnds,
double
tol,
113
int
intervalType,
bool
divideGCD );
115
117
147
static
int
SturmBisectionSolve(
148
double
* P,
int
d,
double
* a,
double
* upperBnds,
double
tol );
149
static
int
SturmBisectionSolve(
150
double
* P,
int
d,
double
* a,
double
* upperBnds,
double
tol,
151
int
intervalType );
152
static
int
SturmBisectionSolve(
153
double
* P,
int
d,
double
* a,
double
* upperBnds,
double
tol,
154
int
intervalType,
bool
divideGCD );
156
164
static
int
FilterRoots(
165
double
* P,
int
d,
double
*upperBnds,
int
rootcount,
double
diameter );
166
178
static
int
LinBairstowSolve(
double
* c,
int
d,
double
* r,
double
& tolerance );
179
190
static
int
FerrariSolve(
double
* c,
double
* r,
int
* m,
double
tol );
191
207
static
int
TartagliaCardanSolve(
double
* c,
double
* r,
int
* m,
double
tol );
208
217
static
double
* SolveCubic(
double
c0,
double
c1,
double
c2,
double
c3);
218
227
static
double
* SolveQuadratic(
double
c0,
double
c1,
double
c2);
228
234
static
double
* SolveLinear(
double
c0,
double
c1);
235
249
static
int
SolveCubic(
double
c0,
double
c1,
double
c2,
double
c3,
250
double
*r1,
double
*r2,
double
*r3,
int
*num_roots);
251
259
static
int
SolveQuadratic(
double
c0,
double
c1,
double
c2,
260
double
*r1,
double
*r2,
int
*num_roots);
261
269
static
int
SolveQuadratic(
double
* c,
double
* r,
int
* m );
270
277
static
int
SolveLinear(
double
c0,
double
c1,
double
*r1,
int
*num_roots);
278
280
286
static
void
SetDivisionTolerance(
double
tol );
287
static
double
GetDivisionTolerance();
289
290
protected
:
291
vtkPolynomialSolversUnivariate
() {}
292
~vtkPolynomialSolversUnivariate
()
override
{}
293
294
static
double
DivisionTolerance
;
295
296
private
:
297
vtkPolynomialSolversUnivariate
(
const
vtkPolynomialSolversUnivariate
&) =
delete
;
298
void
operator=(
const
vtkPolynomialSolversUnivariate
&) =
delete
;
299
};
300
301
#endif
vtkPolynomialSolversUnivariate
polynomial solvers
Definition:
vtkPolynomialSolversUnivariate.h:58
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:59
vtkPolynomialSolversUnivariate::~vtkPolynomialSolversUnivariate
~vtkPolynomialSolversUnivariate() override
Definition:
vtkPolynomialSolversUnivariate.h:292
vtkPolynomialSolversUnivariate::vtkPolynomialSolversUnivariate
vtkPolynomialSolversUnivariate()
Definition:
vtkPolynomialSolversUnivariate.h:291
vtkPolynomialSolversUnivariate::DivisionTolerance
static double DivisionTolerance
Definition:
vtkPolynomialSolversUnivariate.h:294
vtkIndent
a simple class to control print indentation
Definition:
vtkIndent.h:39
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