VTK
9.0.1
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(
double
* P,
int
d,
double
* a,
double
* upperBnds,
double
tol);
104
static
int
HabichtBisectionSolve(
105
double
* P,
int
d,
double
* a,
double
* upperBnds,
double
tol,
int
intervalType);
106
static
int
HabichtBisectionSolve(
107
double
* P,
int
d,
double
* a,
double
* upperBnds,
double
tol,
int
intervalType,
bool
divideGCD);
109
111
141
static
int
SturmBisectionSolve(
double
* P,
int
d,
double
* a,
double
* upperBnds,
double
tol);
142
static
int
SturmBisectionSolve(
143
double
* P,
int
d,
double
* a,
double
* upperBnds,
double
tol,
int
intervalType);
144
static
int
SturmBisectionSolve(
145
double
* P,
int
d,
double
* a,
double
* upperBnds,
double
tol,
int
intervalType,
bool
divideGCD);
147
155
static
int
FilterRoots(
double
* P,
int
d,
double
* upperBnds,
int
rootcount,
double
diameter);
156
168
static
int
LinBairstowSolve(
double
* c,
int
d,
double
* r,
double
& tolerance);
169
180
static
int
FerrariSolve(
double
* c,
double
* r,
int
* m,
double
tol);
181
197
static
int
TartagliaCardanSolve(
double
* c,
double
* r,
int
* m,
double
tol);
198
207
static
double
* SolveCubic(
double
c0,
double
c1,
double
c2,
double
c3);
208
217
static
double
* SolveQuadratic(
double
c0,
double
c1,
double
c2);
218
224
static
double
* SolveLinear(
double
c0,
double
c1);
225
239
static
int
SolveCubic(
240
double
c0,
double
c1,
double
c2,
double
c3,
double
* r1,
double
* r2,
double
* r3,
int
* num_roots);
241
249
static
int
SolveQuadratic(
250
double
c0,
double
c1,
double
c2,
double
* r1,
double
* r2,
int
* num_roots);
251
259
static
int
SolveQuadratic(
double
* c,
double
* r,
int
* m);
260
267
static
int
SolveLinear(
double
c0,
double
c1,
double
* r1,
int
* num_roots);
268
270
276
static
void
SetDivisionTolerance(
double
tol);
277
static
double
GetDivisionTolerance();
279
280
protected
:
281
vtkPolynomialSolversUnivariate
() {}
282
~vtkPolynomialSolversUnivariate
()
override
{}
283
284
static
double
DivisionTolerance
;
285
286
private
:
287
vtkPolynomialSolversUnivariate
(
const
vtkPolynomialSolversUnivariate
&) =
delete
;
288
void
operator=(
const
vtkPolynomialSolversUnivariate
&) =
delete
;
289
};
290
291
#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:62
vtkPolynomialSolversUnivariate::~vtkPolynomialSolversUnivariate
~vtkPolynomialSolversUnivariate() override
Definition:
vtkPolynomialSolversUnivariate.h:282
vtkPolynomialSolversUnivariate::vtkPolynomialSolversUnivariate
vtkPolynomialSolversUnivariate()
Definition:
vtkPolynomialSolversUnivariate.h:281
vtkPolynomialSolversUnivariate::DivisionTolerance
static double DivisionTolerance
Definition:
vtkPolynomialSolversUnivariate.h:284
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 on Thu Jun 24 2021 15:17:26 for VTK by
1.8.17