~ubuntu-branches/ubuntu/vivid/regina-normal/vivid

« back to all changes in this revision

Viewing changes to engine/snappea/kernel/kernel_prototypes.h

  • Committer: Package Import Robot
  • Author(s): Ben Burton
  • Date: 2014-08-29 17:37:46 UTC
  • mfrom: (19.1.1 sid)
  • Revision ID: package-import@ubuntu.com-20140829173746-igmqc9b67y366a7u
Tags: 4.96-1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
11
11
#include "SnapPea.h"
12
12
#include "positioned_tet.h"
13
13
 
 
14
#include "kernel_namespace.h"
14
15
 
15
16
/************************************************************************/
16
17
/*                                                                      */
20
21
 
21
22
extern void compute_CS_value_from_fudge(Triangulation *manifold);
22
23
extern void compute_CS_fudge_from_value(Triangulation *manifold);
 
24
 
23
25
/*
24
26
 *  Compute the Chern-Simons value in terms of the fudge factor, and
25
27
 *  vice-versa.  Please see chern_simons.c for details.
189
191
extern void compute_three_edge_lengths( Tetrahedron *tet,
190
192
                                        VertexIndex v,
191
193
                                        FaceIndex   f,
192
 
                                        double known_length);
 
194
                                        Real known_length);
193
195
/*
194
196
 *  Sets tet->cross_section->edge_length[v][f] to known_length, computes
195
197
 *  the remaining two edge_lengths at vertex v in terms of it, and sets
508
510
 
509
511
extern void copy_curves_to_scratch( Triangulation   *manifold,
510
512
                                    int             which_set,
511
 
                                    Boolean         double_copy_on_tori);
 
513
                                    Boolean         Real_copy_on_tori);
512
514
/*
513
515
 *  Copies the current peripheral curves to the scratch_curves[which_set]
514
516
 *  fields of the manifold's Tetrahedra.  If double_copy_on_tori is TRUE,
655
657
extern void         o31_invert(O31Matrix m, O31Matrix m_inverse);
656
658
extern FuncResult   gl4R_invert(GL4RMatrix m, GL4RMatrix m_inverse);
657
659
extern void         o31_product(O31Matrix a, O31Matrix b, O31Matrix product);
658
 
extern Boolean      o31_equal(O31Matrix a, O31Matrix b, double epsilon);
659
 
extern double       o31_deviation(O31Matrix m);
 
660
extern Boolean      o31_equal(O31Matrix a, O31Matrix b, Real epsilon);
 
661
extern Real       o31_deviation(O31Matrix m);
660
662
extern void         o31_GramSchmidt(O31Matrix m);
661
663
extern void         o31_conjugate(O31Matrix m, O31Matrix t, O31Matrix Tmt);
662
 
extern double       o31_inner_product(O31Vector u, O31Vector v);
 
664
extern Real       o31_inner_product(O31Vector u, O31Vector v);
663
665
extern void         o31_matrix_times_vector(O31Matrix m, O31Vector v, O31Vector product);
664
 
extern void         o31_constant_times_vector(double r, O31Vector v, O31Vector product);
 
666
extern void         o31_constant_times_vector(Real r, O31Vector v, O31Vector product);
665
667
extern void         o31_copy_vector(O31Vector dest, O31Vector source);
666
668
extern void         o31_vector_sum(O31Vector a, O31Vector b, O31Vector sum);
667
669
extern void         o31_vector_diff(O31Vector a, O31Vector b, O31Vector diff);
779
781
/*                                                                      */
780
782
/************************************************************************/
781
783
 
782
 
extern int decimal_places_of_accuracy(double x, double y);
 
784
extern int decimal_places_of_accuracy(Real x, Real y);
783
785
extern int complex_decimal_places_of_accuracy(Complex x, Complex y);
784
786
/*
785
787
 *  Returns the number of decimal places which x and y have in
857
859
 
858
860
extern FuncResult solve_complex_equations(Complex **complex_equations,
859
861
                    int num_rows, int num_columns, Complex *solution);
860
 
extern FuncResult solve_real_equations(double **real_equations,
861
 
                    int num_rows, int num_columns, double *solution);
 
862
extern FuncResult solve_real_equations(Real **real_equations,
 
863
                    int num_rows, int num_columns, Real *solution);
862
864
/*
863
865
 *  These functions solve num_rows linear equations in num_columns
864
866
 *  variables.  For more information, see solve_equations.c.
871
873
/*                                                                      */
872
874
/************************************************************************/
873
875
 
874
 
extern Triangulation *subdivide(Triangulation *manifold, char *new_name);
 
876
extern Triangulation *subdivide(Triangulation *manifold,
 
877
                                const char *new_name);
875
878
/*
876
879
 *  Returns a pointer to a subdivision of *manifold.  See subdivide.c for
877
880
 *  more details.  subdivide() does not change *manifold in any way.
1017
1020
/*                                                                      */
1018
1021
/************************************************************************/
1019
1022
 
1020
 
extern double safe_acos(double x);
1021
 
extern double safe_asin(double x);
1022
 
extern double safe_sqrt(double x);
 
1023
extern Real safe_acos(Real x);
 
1024
extern Real safe_asin(Real x);
 
1025
extern Real safe_sqrt(Real x);
1023
1026
/*
1024
1027
 *  These are like the usual acos(), asin() and sqrt(),
1025
1028
 *  except that they round almost-legal values to legal ones.
1026
1029
 *  E.g. safe_acos(1.00000001) = acos(1.0) = 0.0, not NaN.
1027
1030
 */
1028
1031
 
1029
 
extern double arcsinh(double x);
1030
 
extern double arccosh(double x);
 
1032
extern Real arcsinh(Real x);
 
1033
extern Real arccosh(Real x);
1031
1034
/*
1032
1035
 *  The inverse hyperbolic sine and cosine, which the standard ANSI
1033
1036
 *  libraries lack.  [Some but not all platforms now include asinh()
1120
1123
/*                                                                      */
1121
1124
/************************************************************************/
1122
1125
 
1123
 
extern double birectangular_tetrahedron_volume(
 
1126
extern Real birectangular_tetrahedron_volume(
1124
1127
    O31Vector   a,
1125
1128
    O31Vector   b,
1126
1129
    O31Vector   c,
1130
1133
 *  article.  Please see volume.c for a citation to Vinberg's article.
1131
1134
 */
1132
1135
 
 
1136
#include "end_namespace.h"
 
1137
 
1133
1138
#endif