Blender  V3.3
poly34.h
Go to the documentation of this file.
1 // poly34.h : solution of cubic and quartic equation
2 // (c) Khashin S.I. http://math.ivanovo.ac.ru/dalgebra/Khashin/index.html
3 // khash2 (at) gmail.com
4 
5 #ifndef POLY_34
6 #define POLY_34
7 #include "LinearMath/btScalar.h"
8 // x - array of size 2
9 // return 2: 2 real roots x[0], x[1]
10 // return 0: pair of complex roots: x[0]i*x[1]
11 int SolveP2(btScalar* x, btScalar a, btScalar b); // solve equation x^2 + a*x + b = 0
12 
13 // x - array of size 3
14 // return 3: 3 real roots x[0], x[1], x[2]
15 // return 1: 1 real root x[0] and pair of complex roots: x[1]i*x[2]
16 int SolveP3(btScalar* x, btScalar a, btScalar b, btScalar c); // solve cubic equation x^3 + a*x^2 + b*x + c = 0
17 
18 // x - array of size 4
19 // return 4: 4 real roots x[0], x[1], x[2], x[3], possible multiple roots
20 // return 2: 2 real roots x[0], x[1] and complex x[2]i*x[3],
21 // return 0: two pair of complex roots: x[0]i*x[1], x[2]i*x[3],
22 int SolveP4(btScalar* x, btScalar a, btScalar b, btScalar c, btScalar d); // solve equation x^4 + a*x^3 + b*x^2 + c*x + d = 0 by Dekart-Euler method
23 
24 // x - array of size 5
25 // return 5: 5 real roots x[0], x[1], x[2], x[3], x[4], possible multiple roots
26 // return 3: 3 real roots x[0], x[1], x[2] and complex x[3]i*x[4],
27 // return 1: 1 real root x[0] and two pair of complex roots: x[1]i*x[2], x[3]i*x[4],
28 int SolveP5(btScalar* x, btScalar a, btScalar b, btScalar c, btScalar d, btScalar e); // solve equation x^5 + a*x^4 + b*x^3 + c*x^2 + d*x + e = 0
29 
30 //-----------------------------------------------------------------------------
31 // And some additional functions for internal use.
32 // Your may remove this definitions from here
33 int SolveP4Bi(btScalar* x, btScalar b, btScalar d); // solve equation x^4 + b*x^2 + d = 0
34 int SolveP4De(btScalar* x, btScalar b, btScalar c, btScalar d); // solve equation x^4 + b*x^2 + c*x + d = 0
35 void CSqrt(btScalar x, btScalar y, btScalar& a, btScalar& b); // returns as a+i*s, sqrt(x+i*y)
36 btScalar N4Step(btScalar x, btScalar a, btScalar b, btScalar c, btScalar d); // one Newton step for x^4 + a*x^3 + b*x^2 + c*x + d
37 btScalar SolveP5_1(btScalar a, btScalar b, btScalar c, btScalar d, btScalar e); // return real root of x^5 + a*x^4 + b*x^3 + c*x^2 + d*x + e = 0
38 #endif
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
ATTR_WARN_UNUSED_RESULT const BMVert const BMEdge * e
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
Definition: btScalar.h:314
static unsigned c
Definition: RandGen.cpp:83
static unsigned a[3]
Definition: RandGen.cpp:78
static const pxr::TfToken b("b", pxr::TfToken::Immortal)
int SolveP5(btScalar *x, btScalar a, btScalar b, btScalar c, btScalar d, btScalar e)
Definition: poly34.cpp:441
void CSqrt(btScalar x, btScalar y, btScalar &a, btScalar &b)
Definition: poly34.cpp:119
btScalar SolveP5_1(btScalar a, btScalar b, btScalar c, btScalar d, btScalar e)
Definition: poly34.cpp:341
int SolveP4(btScalar *x, btScalar a, btScalar b, btScalar c, btScalar d)
Definition: poly34.cpp:300
int SolveP3(btScalar *x, btScalar a, btScalar b, btScalar c)
Definition: poly34.cpp:71
int SolveP4Bi(btScalar *x, btScalar b, btScalar d)
Definition: poly34.cpp:143
btScalar N4Step(btScalar x, btScalar a, btScalar b, btScalar c, btScalar d)
Definition: poly34.cpp:287
int SolveP2(btScalar *x, btScalar a, btScalar b)
Definition: poly34.cpp:52
int SolveP4De(btScalar *x, btScalar b, btScalar c, btScalar d)
Definition: poly34.cpp:208