VTK
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
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
=========================================================================*/
51
#ifndef __vtkPolynomialSolversUnivariate_h
52
#define __vtkPolynomialSolversUnivariate_h
53
54
#include "vtkCommonMathModule.h"
// For export macro
55
#include "
vtkObject.h
"
56
57
class
VTKCOMMONMATH_EXPORT
vtkPolynomialSolversUnivariate
:
public
vtkObject
58
{
59
public
:
60
static
vtkPolynomialSolversUnivariate
*
New
();
61
vtkTypeMacro(
vtkPolynomialSolversUnivariate
,
vtkObject
);
62
void
PrintSelf
(ostream& os,
vtkIndent
indent);
63
static
ostream& PrintPolynomial( ostream& os,
double
* P,
int
degP );
64
66
93
static
int
HabichtBisectionSolve(
94
double
* P,
int
d,
double
* a,
double
* upperBnds,
double
tol );
95
static
int
HabichtBisectionSolve(
96
double
* P,
int
d,
double
* a,
double
* upperBnds,
double
tol,
97
int
intervalType );
98
static
int
HabichtBisectionSolve(
99
double
* P,
int
d,
double
* a,
double
* upperBnds,
double
tol,
100
int
intervalType,
bool
divideGCD );
102
104
125
static
int
SturmBisectionSolve(
126
double
* P,
int
d,
double
* a,
double
* upperBnds,
double
tol );
127
static
int
SturmBisectionSolve(
128
double
* P,
int
d,
double
* a,
double
* upperBnds,
double
tol,
129
int
intervalType );
130
static
int
SturmBisectionSolve(
131
double
* P,
int
d,
double
* a,
double
* upperBnds,
double
tol,
132
int
intervalType,
bool
divideGCD );
134
136
141
static
int
FilterRoots(
142
double
* P,
int
d,
double
*upperBnds,
int
rootcount,
double
diameter );
144
153
static
int
LinBairstowSolve(
double
* c,
int
d,
double
* r,
double
& tolerance );
154
163
static
int
FerrariSolve(
double
* c,
double
* r,
int
* m,
double
tol );
164
177
static
int
TartagliaCardanSolve(
double
* c,
double
* r,
int
* m,
double
tol );
178
185
static
double
* SolveCubic(
double
c0,
double
c1,
double
c2,
double
c3);
186
193
static
double
* SolveQuadratic(
double
c0,
double
c1,
double
c2);
194
198
static
double
* SolveLinear(
double
c0,
double
c1);
199
201
212
static
int
SolveCubic(
double
c0,
double
c1,
double
c2,
double
c3,
213
double
*r1,
double
*r2,
double
*r3,
int
*num_roots);
215
217
221
static
int
SolveQuadratic(
double
c0,
double
c1,
double
c2,
222
double
*r1,
double
*r2,
int
*num_roots);
224
230
static
int
SolveQuadratic(
double
* c,
double
* r,
int
* m );
231
236
static
int
SolveLinear(
double
c0,
double
c1,
double
*r1,
int
*num_roots);
237
239
243
static
void
SetDivisionTolerance(
double
tol );
244
static
double
GetDivisionTolerance();
246
247
protected
:
248
vtkPolynomialSolversUnivariate
() {};
249
~vtkPolynomialSolversUnivariate
() {};
250
251
static
double
DivisionTolerance;
252
253
private
:
254
vtkPolynomialSolversUnivariate
(
const
vtkPolynomialSolversUnivariate
&);
// Not implemented.
255
void
operator=(
const
vtkPolynomialSolversUnivariate
&);
// Not implemented.
256
};
257
258
#endif
Generated on Thu May 24 2012 22:22:13 for VTK by
1.8.1