utility routines for text operations, I/O conversions, etc
More...
#include <algorithm>
#include <math.h>
#include "const.h"
Functions |
long | gcd (long m, long n) |
| Get the Greatest Common Divisor.
|
int | factorial (int n) |
| Get a factorial.
|
void | double2rational (double f, long &num, long &denom, double eps=0.00001, int max_steps=100) |
| Convert a floating point number to a close rational number.
|
double | deg2rad (double ang=1.0) |
| Convert degrees to radians.
|
double | rad2deg (double ang=1.0) |
| Convert radians to degrees.
|
bool | is_even (int n) |
| Check whether an integer is even.
|
int | quartic (double coeffs[5], double sol[4], double sol_i[4]=0) |
| Solve a quartic equation.
|
int | cubic (double coeffs[4], double sol[3]) |
| Solve a cubic equation.
|
double | safe_for_trig (double val) |
| Make a value safe to use as an argument with acos and asin.
|
Detailed Description
utility routines for text operations, I/O conversions, etc
Function Documentation
int cubic |
( |
double |
coeffs[4], |
|
|
double |
sol[3] |
|
) |
| |
Solve a cubic equation.
- Parameters:
-
coeffs | the coefficients of the cubic, indexed by power of x. |
sol | the real solutions (in ascending order). |
- Returns:
- The number of real solutions.
double deg2rad |
( |
double |
ang = 1.0 | ) |
[inline] |
Convert degrees to radians.
- Parameters:
-
ang | angle in degres, to convert. |
- Returns:
- The angle in radians.
void double2rational |
( |
double |
f, |
|
|
long & |
num, |
|
|
long & |
denom, |
|
|
double |
eps = 0.00001 , |
|
|
int |
max_steps = 100 |
|
) |
| |
Convert a floating point number to a close rational number.
Can easily fail if MAX_LONG*eps^2 > 1
.
- Parameters:
-
f | the floating point number. |
num | to return the numerator of the rational number. |
denom | to return the denominator of the rational number. |
eps | the maximum difference between the floating point number and the rational approximation. |
max_steps | the maximum number of iterations, in case the process does not converge (default 100 should exceed any reasonable number of steps). |
Get a factorial.
- Parameters:
-
- Returns:
- the factorial of the integer.
long gcd |
( |
long |
m, |
|
|
long |
n |
|
) |
| |
Get the Greatest Common Divisor.
- Parameters:
-
m | the first number. |
n | the second number. |
- Returns:
- the greatest common divisor.
bool is_even |
( |
int |
n | ) |
[inline] |
Check whether an integer is even.
- Parameters:
-
- Returns:
- true if the number is even, otherwise false.
int quartic |
( |
double |
coeffs[5], |
|
|
double |
sol[4], |
|
|
double |
sol_i[4] = 0 |
|
) |
| |
Solve a quartic equation.
- Parameters:
-
coeffs | the coefficients of the quartic, indexed by power of x. |
sol | the real parts of the solutions (in increasing order). |
sol_i | the imaginary parts of the solutions (if sol_i is not zero). |
- Returns:
- The number of real solutions.
double rad2deg |
( |
double |
ang = 1.0 | ) |
[inline] |
Convert radians to degrees.
- Parameters:
-
ang | angle in radians, to convert. |
- Returns:
- The angle in degrees.
double safe_for_trig |
( |
double |
val | ) |
[inline] |
Make a value safe to use as an argument with acos and asin.
Map the value to the nearest value in the range -1.0<=val<=1.0 to ensure that it is safe to use with acos()
and asin()
.
- Parameters:
-
- Returns:
- A safe value.