1 #ifndef RSVSMATH_AUTOMATIC_H_INCLUDED
2 #define RSVSMATH_AUTOMATIC_H_INCLUDED
9 #pragma GCC diagnostic push
10 #pragma GCC diagnostic ignored "-Wunused-variable"
11 static double rsvsmath_automatic_eps_edge = 0.0;
12 static double rsvsmath_automatic_eps_surf = 1e-10;
13 static double rsvsmath_automatic_eps_volu = 0.0;
14 static double rsvsmath_automatic_eps_centre = 1e-10;
15 static double rsvsmath_automatic_eps_centre2 = 1e-10;
16 #pragma GCC diagnostic pop
18 void Volume_f(
const std::vector<double> &p0,
const std::vector<double> &p1,
const std::vector<double> &p2,
double &t0);
19 void Volume_df(
const std::vector<double> &p0,
const std::vector<double> &p1,
const std::vector<double> &p2,
21 void Volume_ddf(
const std::vector<double> &p0,
const std::vector<double> &p1,
const std::vector<double> &p2,
24 void Volume2_f(
double d0,
double d1,
double d2,
const std::vector<double> &g0s,
const std::vector<double> &g1s,
25 const std::vector<double> &g2s,
const std::vector<double> &g0e,
const std::vector<double> &g1e,
26 const std::vector<double> &g2e,
double &t0);
27 void Volume2_df(
double d0,
double d1,
double d2,
const std::vector<double> &g0s,
const std::vector<double> &g1s,
28 const std::vector<double> &g2s,
const std::vector<double> &g0e,
const std::vector<double> &g1e,
30 void Volume2_ddf(
double d0,
double d1,
double d2,
const std::vector<double> &g0s,
const std::vector<double> &g1s,
31 const std::vector<double> &g2s,
const std::vector<double> &g0e,
const std::vector<double> &g1e,
34 void Area_f(
const std::vector<double> &p0,
const std::vector<double> &p1,
const std::vector<double> &p2,
double &t0,
36 void Area_df(
const std::vector<double> &p0,
const std::vector<double> &p1,
const std::vector<double> &p2,
38 void Area_ddf(
const std::vector<double> &p0,
const std::vector<double> &p1,
const std::vector<double> &p2,
40 void LengthEdge_f(
const std::vector<double> &p0,
const std::vector<double> &p1,
double &t0);
41 void LengthEdge_df(
const std::vector<double> &p0,
const std::vector<double> &p1,
ArrayVec<double> &A0);
42 void LengthEdge_ddf(
const std::vector<double> &p0,
const std::vector<double> &p1,
ArrayVec<double> &A0);
43 void SurfIntersect_f(
const std::vector<double> &p1,
const std::vector<double> &p2,
const std::vector<double> &v0,
44 const std::vector<double> &v01,
const std::vector<double> &v02,
const std::vector<double> &v11,
45 const std::vector<double> &v12,
const std::vector<double> &c,
double &t0);
46 void SurfIntersect_df(
const std::vector<double> &p1,
const std::vector<double> &p2,
const std::vector<double> &v0,
47 const std::vector<double> &v01,
const std::vector<double> &v02,
const std::vector<double> &v11,
48 const std::vector<double> &v12,
const std::vector<double> &c,
ArrayVec<double> &A0);
49 void SurfIntersect_ddf(
const std::vector<double> &p1,
const std::vector<double> &p2,
const std::vector<double> &v0,
50 const std::vector<double> &v01,
const std::vector<double> &v02,
const std::vector<double> &v11,
51 const std::vector<double> &v12,
const std::vector<double> &c,
ArrayVec<double> &A0);
52 void SurfCentroid4_f(
const std::vector<double> &x,
const std::vector<double> &y,
const std::vector<double> &z,
53 const double totD,
const double X_dot_d,
const double Y_dot_d,
const double Z_dot_d,
55 void SurfCentroid4_df(
const std::vector<double> &x,
const std::vector<double> &y,
const std::vector<double> &z,
56 const double totD,
const double X_dot_d,
const double Y_dot_d,
const double Z_dot_d,
58 void SurfCentroid5_f(
const std::vector<double> &x,
const std::vector<double> &y,
const std::vector<double> &z,
59 const double totD,
const double X_dot_d,
const double Y_dot_d,
const double Z_dot_d,
61 void SurfCentroid5_df(
const std::vector<double> &x,
const std::vector<double> &y,
const std::vector<double> &z,
62 const double totD,
const double X_dot_d,
const double Y_dot_d,
const double Z_dot_d,
64 void SurfCentroid6_f(
const std::vector<double> &x,
const std::vector<double> &y,
const std::vector<double> &z,
65 const double totD,
const double X_dot_d,
const double Y_dot_d,
const double Z_dot_d,
67 void SurfCentroid6_df(
const std::vector<double> &x,
const std::vector<double> &y,
const std::vector<double> &z,
68 const double totD,
const double X_dot_d,
const double Y_dot_d,
const double Z_dot_d,
70 void SurfCentroidConnec_f(
const std::vector<double> &x,
const std::vector<double> &y,
const std::vector<double> &z,
71 const double totD,
const double X_dot_d,
const double Y_dot_d,
const double Z_dot_d,
73 void SurfCentroidConnec_df(
const std::vector<double> &x,
const std::vector<double> &y,
const std::vector<double> &z,
74 const double totD,
const double X_dot_d,
const double Y_dot_d,
const double Z_dot_d,
76 void SurfCentroidConnec_ddf(
const std::vector<double> &x,
const std::vector<double> &y,
const std::vector<double> &z,
77 const double totD,
const double X_dot_d,
const double Y_dot_d,
const double Z_dot_d,
79 void SurfCentroidNoConnec_f(
const std::vector<double> &x,
const std::vector<double> &y,
const std::vector<double> &z,
80 const double totD,
const double X_dot_d,
const double Y_dot_d,
const double Z_dot_d,
82 void SurfCentroidNoConnec_df(
const std::vector<double> &x,
const std::vector<double> &y,
const std::vector<double> &z,
83 const double totD,
const double X_dot_d,
const double Y_dot_d,
const double Z_dot_d,
85 void SurfCentroidNoConnec_ddf(
const std::vector<double> &x,
const std::vector<double> &y,
const std::vector<double> &z,
86 const double totD,
const double X_dot_d,
const double Y_dot_d,
const double Z_dot_d,
88 void SurfCentroidSelf_f(
const std::vector<double> &x,
const std::vector<double> &y,
const std::vector<double> &z,
89 const double totD,
const double X_dot_d,
const double Y_dot_d,
const double Z_dot_d,
91 void SurfCentroidSelf_df(
const std::vector<double> &x,
const std::vector<double> &y,
const std::vector<double> &z,
92 const double totD,
const double X_dot_d,
const double Y_dot_d,
const double Z_dot_d,
94 void SurfCentroidSelf_ddf(
const std::vector<double> &x,
const std::vector<double> &y,
const std::vector<double> &z,
95 const double totD,
const double X_dot_d,
const double Y_dot_d,
const double Z_dot_d,
Provides a 2D std::vector based container.