1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
/**
This file is part of Kig, a KDE program for Interactive Geometry...
Copyright (C) 2002 Maurizio Paolini <paolini@dmf.unicatt.it>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
USA
**/
#ifndef KIG_MISC_KIGNUMERICS_H
#define KIG_MISC_KIGNUMERICS_H
#include <cmath>
double calcCubicRoot ( double xmin, double xmax, double a,
double b, double c, double d, int root, bool& valid, int& numroots );
int calcCubicVariations (double x, double a, double b, double c,
double d, double p1a, double p1b, double p0a);
double calcCubicRootwithNewton ( double ymin, double ymax, double a,
double b, double c, double d, double tol );
/**
* Gaussian Elimination. We return false if the matrix is singular,
* and can't be usefully eliminated..
*/
bool GaussianElimination( double *matrix[], int numrows, int numcols,
int scambio[] );
void BackwardSubstitution( double *matrix[], int numrows, int numcols,
int scambio[], double solution[] );
bool Invert3by3matrix ( const double m[3][3], double inv[3][3] );
#endif // KIG_MISC_KIGNUMERICS_H
|