atlas.c
Go to the documentation of this file.
607 boolean FindPointInOtherBranch(Tparameters *pr,unsigned int bID,double *phi,double **p,Tatlas *a);
1096 canInitChart=FALSE; /* Just to indicate that no chart has been created so far in this iteration */
2871 unsigned int AddChart2Atlas(Tparameters *pr,double *ps,unsigned int parentID,boolean *singular,Tatlas *a)
2905 unsigned int AddTrustedChart2Atlas(Tparameters *pr,double *ps,unsigned int parentID,boolean *singular,Tatlas *a)
3399 Warning("A singularity was detected during the minimization but it could not be determined if it was a bifurcation. Try a smaller epsilon or a larger delta?");
4269 if ((!ExpandibleChart(a->charts[i]))&&(SingularChart(a->charts[i])&&(!FrontierChart(a->charts[i]))))
4288 if ((ExpandibleChart(a->charts[i]))&&(!SingularChart(a->charts[i])&&(!FrontierChart(a->charts[i]))))
4306 if ((ExpandibleChart(a->charts[i]))&&(SingularChart(a->charts[i])&&(!FrontierChart(a->charts[i]))))
4324 //if ((!ExpandibleChart(a->charts[i]))&&(!SingularChart(a->charts[i])&&(FrontierChart(a->charts[i]))))
void NewSingularImpossible(TAtlasStatistics *ast) New time we could not extend a singular chart. Definition: atlas.c:798 boolean AtlasAStar(Tparameters *pr, double *p, double *time, double *pl, unsigned int *ns, double ***path, Tatlas *a) Expands the atlas to reach a given point. Definition: atlas.c:3445 void SaveChartCenters(Tparameters *pr, char *fname, boolean saveWithDummies, Tatlas *a) Stores the centers of the charts. Definition: atlas.c:4117 boolean ExtendAtlasFromPoint(Tparameters *pr, unsigned int parentID, double *t, TAtlasStatistics *st, Tatlas *a) Tries to expand the atlas from a chart from a given point. Definition: atlas.c:1050 void PlotVect3d(unsigned int n, double *x, double *y, double *z, Tplot3d *p) Adds a polyline to the current object. Definition: plot3d.c:447 CBLAS_INLINE void ScaleVector(double f, unsigned int s, double *v) Scales a vector. Definition: basic_algebra.c:30 boolean PointOnChart(Tparameters *pr, TJacobian *sJ, double *p, unsigned int *tp, double *t, Tchart *c) Identify points on a chart. Definition: chart.c:1605 void AddChart2Btree(unsigned int id, Tchart *mp, TBTree *t) Adds a chart to the tree. Definition: btree.c:75 void LoadAtlas(Tparameters *pr, Tfilename *fname, TAtlasBase *w, Tatlas *a) Defines an atlas from the information on a file. Definition: atlas.c:3973 boolean FindPointInOtherBranch(Tparameters *pr, unsigned int bID, double *phi, double **p, Tatlas *a) Searches for a point in the other manifold branch. Definition: atlas.c:2389 double SquaredDistanceTopologyMin(double t2, unsigned int s, unsigned int *tp, double *v1, double *v2) Computes the squared distance of two points. Definition: basic_algebra.c:468 #define REP_JOINTS One of the possible values of the REPRESENTATION parameter. Definition: parameters.h:60 #define CS_WD_ERROR_IN_SIMP_EQUATIONS(pr, p, wcs) Computes the error in the simplified system for a given point. Definition: wcs.h:509 boolean CompareTangentSpaces(Tchart *c1, Tchart *c2) Checks if the tangent spaces are similar. Definition: chart.c:904 #define CS_WD_GENERATE_SIMPLIFIED_POINT(pr, p, r, wcs) Generates a simplified point from an original one. Definition: wcs.h:495 CBLAS_INLINE void SetRow(double *v, unsigned int k, unsigned int r, unsigned int c, double *m) Sets a row of a matrix. Definition: basic_algebra.c:683 unsigned int FindKernel(unsigned int nr, unsigned int nc, double *mT, unsigned int dof, boolean check, double epsilon, double **T) Computes the kernel of a matrix. Definition: algebra.c:1119 #define INIT_NUM_CHARTS_IN_ATLAS_HEAP Initial number of elements in the heap of local charts. Definition: atlas.h:102 double DistanceTopology(unsigned int s, unsigned int *tp, double *v1, double *v2) Computes the distance of two points. Definition: basic_algebra.c:498 void SearchInBtree(Tchart *mp, unsigned int *nn, unsigned int **n, TBTree *t) Search for neighbouring charts. Definition: btree.c:142 void EvaluateTransposedJacobianInVector(double *v, unsigned int nr, unsigned int nc, double *m, TJacobian *j) Evaluates the transposed Jacobian. Definition: jacobian.c:143 Data structure to hold the information about the name of a file. Definition: filename.h:271 void ArrayPi2Pi(unsigned int n, unsigned int *t, double *a) Applies PI2PI to an array. Definition: basic_algebra.c:646 boolean RandomPointInAtlas(Tparameters *pr, double scale, double *w, unsigned int *nm, double *t, double *p, Tatlas *a) Samples a random point on the atlas. Definition: atlas.c:4048 boolean BoundaryPointFromExternalCorner(boolean rand, unsigned int *nv, double *t, Tchart *c) Random point on the chart boundary from the polytope vetices. Definition: chart.c:1343 void AllocateHessianEvaluation(double ****m, THessian *h) Allocate space for the Hessian evaluation. Definition: hessian.c:33 void EvaluateHessian(double *v, double ***m, THessian *h) Evaluates the Hessian. Definition: hessian.c:46 unsigned int randomMax(unsigned int m) Returns a random integer in the range [0,m]. Definition: random.c:77 void ProcessBifurcation(Tparameters *pr, unsigned int bID, TAtlasStatistics *ast, Tatlas *a) Processes the bifurcation points not yet processed. Definition: atlas.c:2484 CBLAS_INLINE void TMatrixMatrixProduct(unsigned int ra, unsigned int ca, double *A, unsigned int cb, double *B, double *C) C = A^t * B. Definition: basic_algebra.c:822 void InitStatistics(unsigned int np, double v, Tstatistics *t) Constructor. Definition: statistics.c:21 CBLAS_INLINE double Norm(unsigned int s, double *v) Computes the norm of a vector. Definition: basic_algebra.c:356 void LinkCharts(unsigned int id1, Tchart *c1, unsigned int id2, Tchart *c2) Connect charts at singularities. Definition: chart.c:1672 unsigned int FindRightNullVector(Tparameters *pr, unsigned int bID, double **phi, Tatlas *a) Finds the right null vector that does not belong to the tangent space. Definition: atlas.c:2177 void DifferenceVectorTopology(unsigned int s, unsigned int *tp, double *v1, double *v2, double *v) Substracts two vectors. Definition: basic_algebra.c:306 #define PLOT_ATLAS_IN_COLORS Activate/deactivate the colors in the atlas plot. Definition: atlas.h:39 void NewSingularPointMissed(TAtlasStatistics *ast) New missed singular point. Definition: atlas.c:816 unsigned int randomWithDistribution(unsigned int m, double s, double *d) Random number with a given discrete distribution. Definition: random.c:86 void PenalizeAtlasHeapElement(TAtlasHeapElement *he) Penalized the cost stored in a atlas heap element. Definition: atlas.c:2683 void NewBoundaryAttempt(TAtlasStatistics *ast) New attempt to generate a point on the boundary. Definition: atlas.c:732 void InitPlot3d(char *name, boolean axes, int argc, char **arg, Tplot3d *p) Constructor. Definition: plot3d.c:41 double * GetNewtonRHBuffer(TNewton *n) Buffer to store the Newton right hand. Definition: algebra.c:1152 double MinCosinusBetweenCharts(Tchart *c1, Tchart *c2) Computes the angle between the tangent spaces in the charts. Definition: chart.c:923 double Chart2Manifold(Tparameters *pr, TJacobian *sJ, double *t, unsigned int *tp, double *pInit, double *p, Tchart *c) Returns the point in the manifold for a given set of parameteres. Definition: chart.c:1069 boolean MinimizeOnAtlas(Tparameters *pr, char *fname, double *p, TAtlasBase *w, unsigned int maxSteps, double(*costF)(Tparameters *, boolean, double *, void *), void(*costG)(Tparameters *, boolean, double *, double **, void *), void *costData, Tatlas *a) Gradient minimization on an manifold. Definition: atlas.c:3153 void GetJacobianSize(unsigned int *nr, unsigned int *nc, TJacobian *j) Returns the size of the Jacobian. Definition: jacobian.c:49 void Delete3dObject(unsigned int nobj, Tplot3d *p) Deletes a previously created geometric object. Definition: plot3d.c:152 boolean NeighbouringTriangles(unsigned int *v1, unsigned int *v2) Determines if two sets of vertices define a neighbouring triangle. Definition: geom.c:657 void SaveSamples(char *fname, char *suffix, unsigned int nvs, unsigned int ns, double **path) Saves a set of samples to a file. Definition: samples.c:2879 void AddElement2Heap(unsigned int id, void *e, Theap *heap) Adds an element to the heap. Definition: heap.c:294 void InitAtlasHeapElement(unsigned int mID, double c, double beta, TAtlasHeapElement *he) Constructor of TAtlasHeapElement. Definition: atlas.c:2640 void NewGoodExtension(TAtlasStatistics *ast) New time we actually succeeded in creating a new chart. Definition: atlas.c:786 int NewtonStep(double nullSingularValue, double *x, double *dif, TNewton *n) One step in a Newton iteration. boolean DetectBifurcation(Tparameters *pr, unsigned int mID1, unsigned int mID2, Tatlas *a) Determines if there is a bifurcation between the center of two charts. Definition: atlas.c:1771 Error and warning functions. boolean HaveChartAtPoint(double eps, double *p, Tatlas *a) Determines if there is a chart close to a given point. Definition: atlas.c:906 void ReconstructAtlasPath(Tparameters *pr, unsigned int *pred, unsigned int mID, double *goal, unsigned int nv, boolean *systemVars, double *pl, unsigned int *ns, double ***path, Tatlas *a) Reconstructs the path between the stat/goal configurations. Definition: atlas.c:1498 double Distance(unsigned int s, double *v1, double *v2) Computes the distance of two points. Definition: basic_algebra.c:438 void AddSample2Samples(unsigned int nv, double *sample, unsigned int nvs, boolean *systemVars, unsigned int *ms, unsigned int *ns, double ***path) Adds a sample to a set of samples. Definition: samples.c:672 double DotProduct(double *v1, double *v2) Computes the dot product of two 3d vectors. Definition: geom.c:652 double GeodesicDistance(Tparameters *pr, unsigned int parentID, unsigned int childID, Tatlas *a) Approximates the geodesic distance between the centers of two charts. Definition: atlas.c:1667 void NewFarFromParent(TAtlasStatistics *ast) New time the point was too far from parent. Definition: atlas.c:768 void InitBTree(unsigned int id, Tchart *mp, Tbox *ambient, unsigned int *topology, TBTree *t) Initializes a binary tree of charts. Definition: btree.c:19 unsigned int InitChart(Tparameters *pr, boolean simple, Tbox *domain, unsigned int *tp, unsigned int m, unsigned int k, double *p, double e, double eCurv, double r, TJacobian *sJ, TAtlasBase *w, Tchart *c) Constructor. Definition: chart.c:795 void EvaluateJacobianInVector(double *v, unsigned int nr, unsigned int nc, double *m, TJacobian *j) Evaluates the Jacobian. Definition: jacobian.c:103 void AddBorderConstraint(Tparameters *pr, double *t, unsigned int *tp, Tbox *ambient, Tchart *c) Crops the domain for a given chart. Definition: chart.c:229 void * GetHeapElement(unsigned int i, Theap *heap) Returns a pointer to a heap element. Definition: heap.c:331 CBLAS_INLINE double GeneralDotProduct(unsigned int s, double *v1, double *v2) Computes the dot product of two general vectors. Definition: basic_algebra.c:15 CBLAS_INLINE void MatrixVectorProduct(unsigned int r, unsigned int c, double *A, double *b, double *o) Product of a matrix and a vector. Definition: basic_algebra.c:749 #define CS_WD_SIMP_INEQUALITIES_HOLD(pr, p, wcs) Cheks if all inequalities hold. Definition: wcs.h:207 void NewImpossible(TAtlasStatistics *ast) New Error when extending from/toward a point. Definition: atlas.c:792 boolean RandomPointInChart(Tparameters *pr, double scale, unsigned int *tp, double *t, double *p, Tchart *c) Samples a random point in the area covered by the chart. Definition: chart.c:1367 void Close3dObjectNoColor(Tplot3d *p) Closes a composed object without assigning any color. Definition: plot3d.c:184 boolean LessThanAtlasHeapElement(void *he1, void *he2, void *userData) Comparison between atlas heap elements. Definition: atlas.c:2668 Definitions of constants and macros used in several parts of the cuik library. void NewChartFromPoint(Tparameters *pr, unsigned int parentID, double *t, Tchart **newChart, Tatlas *a) Generates a chart from a vertex taken from a parent chart. Definition: atlas.c:954 void NewRadiousChange(TAtlasStatistics *ast) New time we had to change the sampling radious to get a new chart. Definition: atlas.c:780 boolean RefineSingularPoint(Tparameters *pr, unsigned int bID, Tatlas *a) Improves the locatin f a singular point. Definition: atlas.c:1961 void DifferenceVector(unsigned int s, double *v1, double *v2, double *v) Substracts two vectors. Definition: basic_algebra.c:264 #define CS_WD_NEWTON_IN_SIMP(pr, p, wcs) Applies a Newton procedure to move a point towads the manifold. Definition: wcs.h:580 void NewSmallAngleAtBifurcation(TAtlasStatistics *ast) Small angle between the charts at a bifurcation. Definition: atlas.c:810 boolean CrossTopologyBorder(unsigned int s, unsigned int *tp, double *v1, double *v2) Determines if the line between two points crosses the topology boder. Definition: basic_algebra.c:587 void SaveSingularCharts(Tparameters *pr, char *fname, boolean saveWithDummies, Tatlas *a) Stores the centers of the singular charts. Definition: atlas.c:4171 void NewNoJumpBranch(TAtlasStatistics *ast) The jump to the other branch failed. Definition: atlas.c:828 #define CS_WD_MANIFOLD_DIMENSION(pr, p, wcs) Computes the dimension of the solution set. Definition: wcs.h:565 double DistanceOnChart(Tparameters *pr, double *t, unsigned int *tp, TJacobian *sJ, Tchart *c) Distance between the center of a chart and a point on this chart. Definition: chart.c:1549 double ChartVolume(Tparameters *pr, boolean collisionFree, unsigned int *tp, TJacobian *sJ, Tchart *c) Estimate the volume of a chart. Definition: chart.c:1409 void PostProcessNewCharts(Tparameters *pr, boolean bif, unsigned int parentID, TAtlasStatistics *st, Tatlas *a) Post-processes the charts added since the last call to this function. Definition: atlas.c:928 boolean Newton2ManifoldPlane(Tparameters *pr, double *point, double *vector, double *pInit, double *p, Tatlas *a) Finds a point in the intersection of the manifold and a plane. Definition: atlas.c:2290 A table of parameters. void CreateFileName(char *path, char *name, char *suffix, char *ext, Tfilename *fn) Constructor. Definition: filename.c:22 void GetChartNeighboursFromVertices(Tparameters *pr, unsigned int *nn, unsigned int **cID1, unsigned int **cID2, Tchart *c) Returns the identifier of neighbouring charts coincident at a vertex. Definition: chart.c:1707 boolean DetermineChartNeighbours(Tparameters *pr, boolean bif, unsigned int cmID, unsigned int parentID, Tatlas *a) Determines the neighbours of a chart. Definition: atlas.c:1582 #define CS_WD_GET_SIMP_JACOBIAN(pr, J, wcs) Computes the Jacobian of the simplified system. Definition: wcs.h:553 void NewNoSingularEnough(TAtlasStatistics *ast) New not singular engoug point. Definition: atlas.c:822 #define SAMPLING_RADIUS_REDUCTION_FACTOR Ratio at which the sampling radius is reduced. Definition: atlas.h:85 boolean FindSingularPoint(Tparameters *pr, unsigned int bID, Tatlas *a) Searches for a singular point. Definition: atlas.c:1816 Definition of an atlas on a manifold. void NewNonRegularPoint(TAtlasStatistics *ast) New time we could not initialize a new chart. Definition: atlas.c:750 char * GetFileFullName(Tfilename *fn) Gets the file full name (paht+name+extension). Definition: filename.c:151 boolean IntersectCharts(Tparameters *pr, unsigned int *tp, Tbox *ambient, unsigned int id1, Tchart *c1, unsigned int id2, Tchart *c2) Intersects two local charts. Definition: chart.c:1273 boolean AtlasGBF(Tparameters *pr, double *p, double *time, double *pl, unsigned int *ns, double ***path, Tatlas *a) Expands the atlas to reach a given point. Definition: atlas.c:3781 void NewLargeError(TAtlasStatistics *ast) New time the point in the tangent space was too far form the manifold. Definition: atlas.c:744 void SetAtlasTopology(Tparameters *pr, Tatlas *a) Initializes the topology array in the atlas. Definition: atlas.c:2692 CBLAS_INLINE void TMatrixVectorProduct(unsigned int r, unsigned int c, double *A, double *b, double *o) Product of a transposed matrix and a vector. Definition: basic_algebra.c:765 unsigned int InitTrustedChart(Tparameters *pr, boolean simple, Tbox *domain, unsigned int *tp, unsigned int m, unsigned int k, double *p, double e, double eCurv, double r, TJacobian *sJ, TAtlasBase *w, Tchart *c) Constructor. Definition: chart.c:819 #define CS_WD_REGENERATE_ORIGINAL_POINT(pr, p, o, wcs) Completes an original point from a simplified one. Definition: wcs.h:293 void NewDecompositionError(TAtlasStatistics *ast) New time we could not initialize a new chart. Definition: atlas.c:762 void InitHeap(unsigned int ele_size, void(*Copy)(void *, void *), void(*Delete)(void *), boolean(*LessThan)(void *, void *, void *), void *userData, boolean hasIDs, unsigned int max_ele, Theap *heap) Constructor. Definition: heap.c:237 void NewNotInBoundary(TAtlasStatistics *ast) New time we failed to generate a point on the boundary. Definition: atlas.c:738 void PrintAtlasStatistics(Tparameters *pr, TAtlasStatistics *ast) Print the information stored in the statistics.. Definition: atlas.c:834 CBLAS_INLINE double ColumnSquaredNorm(unsigned int k, unsigned int r, unsigned int c, double *m) Computes the squared norm of a column of a matrix. Definition: basic_algebra.c:728 #define MEM_DUP(_var, _n, _type) Duplicates a previously allocated memory space. Definition: defines.h:414 #define NO_UINT Used to denote an identifier that has not been initialized. Definition: defines.h:435 CBLAS_INLINE void SumVectorScale(unsigned int s, double *v1, double w, double *v2, double *v) Adds two vectors with a scale. Definition: basic_algebra.c:86 double AtlasVolume(Tparameters *pr, boolean collisionFree, Tatlas *a) Approximates the volume of the manifold. Definition: atlas.c:4070 void InitSamples(unsigned int *ms, unsigned int *ns, double ***path) Initializes a set of samples. Definition: samples.c:665 void SaveBifurcations(FILE *f, Tatlas *a) Saves the bifurcation information to a file. Definition: atlas.c:2563 boolean RandomPointOnBoundary(double *t, Tchart *c) Random point on the boundary of the chart. Definition: chart.c:1359 void SaveAtlasGraph(char *fname, Tatlas *a) Saves the graph structure of the atlas. Definition: atlas.c:4091 Tchart * GetAtlasChart(unsigned int id, Tatlas *a) Gets one of the charts of the chart. Definition: atlas.c:4040 TAtlasBase * GetAtlasWorld(Tatlas *a) Gets the world structure on which the atlas is defined. Definition: atlas.c:3430 void NewNotInManifold(TAtlasStatistics *ast) New time we could not initialize a new chart. Definition: atlas.c:756 #define CS_WD_EVALUATE_SIMP_EQUATIONS(pr, p, r, wcs) Evaluates the simplified set of equations. Definition: wcs.h:176 CBLAS_INLINE void SubMatrixFromMatrix(unsigned int nr1, unsigned int nc1, double *m1, unsigned int nri, unsigned int nci, unsigned int nr, unsigned int nc, double *m) Defines a submatrix in a matrix. Definition: basic_algebra.c:891 unsigned int GetAtlasHeapElementID(TAtlasHeapElement *he) Gets the chart identifier. Definition: atlas.c:2658 void SaveAtlas(Tparameters *pr, Tfilename *fname, Tatlas *a) Stores the atlas information on a file. Definition: atlas.c:3946 void InitAtlas(Tparameters *pr, boolean parallel, boolean simpleChart, unsigned int k, double e, double ce, double r, TAtlasBase *w, Tatlas *a) Constructor. Definition: atlas.c:2716 void InitAtlasStatistics(TAtlasStatistics *ast) Init the atlas built statistics. Definition: atlas.c:701 #define SOL_WITH_DUMMIES_EXT File extension for solution files with dummies. Definition: filename.h:144 boolean SameTriangle(unsigned int *v1, unsigned int *v2) Identifies triangles formed by the same set of vertices. Definition: geom.c:671 unsigned int AddTrustedChart2Atlas(Tparameters *pr, double *ps, unsigned int parentID, boolean *singular, Tatlas *a) Defines a new chart and adds it to the atlas. Definition: atlas.c:2905 boolean OpenChart(Tchart *c) Identifies charts not fully sorrounded by other charts. Definition: chart.c:1303 #define CT_MAX_NEWTON_ITERATIONS Maximum number of iterations in the Newton-Raphson function. Definition: parameters.h:311 unsigned int ExtractMinElement(void *e, Theap *heap) Extracts and removes the minimal element of a heap. Definition: heap.c:356 boolean ExtendAtlasTowardPoint(Tparameters *pr, unsigned int parentID, double *t, boolean collisionStops, TAtlasStatistics *st, Tatlas *a) Tries to expand the atlas from a chart toward a given point. Definition: atlas.c:1281 double Manifold2Chart(double *p, unsigned int *tp, double *t, Tchart *c) Returns the parametrization of a point. Definition: chart.c:1039 #define MEM_EXPAND(_var, _n, _type) Expands a previously allocated memory space. Definition: defines.h:404 boolean CloseCharts(Tparameters *pr, unsigned int *tp, Tchart *c1, Tchart *c2) Identifies close local charts. Definition: chart.c:1267 double GetParameter(unsigned int n, Tparameters *p) Gets the value for a particular parameter. Definition: parameters.c:93 void DefineChartsAtBifurcation(Tparameters *pr, unsigned int bID, double *v, TAtlasStatistics *ast, Tatlas *a) Defines two related charts on a bifurcation point. Definition: atlas.c:2432 #define CS_WD_REGENERATE_SOLUTION_POINT(pr, p, r, wcs) Compleates a solution point with the dummy variables. Definition: wcs.h:480 void NewAtlasExtension(TAtlasStatistics *ast) New attempt to extend the atlas. Definition: atlas.c:726 void NewInCollision(TAtlasStatistics *ast) New time the point was in collision. Definition: atlas.c:774 unsigned int ChartNumNeighbours(Tchart *c) Number of neighbours of the chart. Definition: chart.c:1678 unsigned int InitPossiblySingularChart(Tparameters *pr, boolean simple, Tbox *domain, unsigned int *tp, unsigned int m, unsigned int k, double *p, double e, double eCurv, double r, TJacobian *sJ, TAtlasBase *w, Tchart *c) Constructor. Definition: chart.c:803 void Plot3dObjectWithColors(unsigned int nv, unsigned int nf, unsigned int ne, double **v, Tcolor *c, unsigned int *nvf, unsigned int **fv, Tplot3d *p) Adds a colored polytope to the current object. Definition: plot3d.c:334 #define CS_WD_IN_COLLISION(f, pr, s, sPrev, wcs) Checks if a configuration is in collision. Definition: wcs.h:355 unsigned int InitChartWithTangent(Tparameters *pr, boolean simple, Tbox *domain, unsigned int *tp, unsigned int m, unsigned int k, double *p, double *T, double e, double eCurv, double r, TJacobian *sJ, TAtlasBase *w, Tchart *c) Constructor. Definition: chart.c:827 void PrintMatrix(FILE *f, char *label, unsigned int r, unsigned int c, double *m) Prints a matrix. Definition: basic_algebra.c:1000 CBLAS_INLINE void SubMatrixFromTMatrix(unsigned int nr1, unsigned int nc1, double *m1, unsigned int nri, unsigned int nci, unsigned int nr, unsigned int nc, double *m) Defines a submatrix in a matrix. Definition: basic_algebra.c:935 void LoadBifurcations(FILE *f, Tatlas *a) Loads the bifurcation information from a file. Definition: atlas.c:2533 #define CT_DELTA Size of the steps in the path connecting two configurations. Definition: parameters.h:282 #define CT_N_DOF Dimensionality of the solution space for the mechanism at hand. Definition: parameters.h:318 Auxiliary functions to deal with sets of samples. #define CT_DETECT_BIFURCATIONS TRUE (or 1) if bifurcation must be detected. Definition: parameters.h:468 unsigned int ChartNeighbourID(unsigned int n, Tchart *c) Returns the identifier of one of the neighbours of a chart. Definition: chart.c:1690 boolean InitAtlasFromPoint(Tparameters *pr, boolean parallel, boolean simpleChart, double *p, TAtlasBase *w, Tatlas *a) Initializes an atlas from a given point. Definition: atlas.c:2782 Definition of basic randomization functions. void PlotChart(Tparameters *pr, FILE *fcost, TJacobian *sJ, unsigned int xID, unsigned int yID, unsigned int zID, Tplot3d *p3d, Tchart *c) Plots a 3d projection of a local chart. Definition: chart.c:1729 void SaveSamplesN(char *fname, boolean smooth, unsigned int n, unsigned int nvs, unsigned int ns, double **path) Saves a set of samples to a file. Definition: samples.c:2894 void Plot3dObject(unsigned int nv, unsigned int nf, unsigned int ne, double **v, unsigned int *nvf, unsigned int **fv, Tplot3d *p) Adds a polytope to the current object. Definition: plot3d.c:276 void TriangulateAtlas(char *fname, int argc, char **arg, Tparameters *pr, FILE *fcost, unsigned int xID, unsigned int yID, unsigned int zID, Tatlas *a) Pots the triangular mesh defined by the an atlas. Definition: atlas.c:4387 void LoadChart(FILE *f, TAtlasBase *w, Tchart *c) Defines a chart from the information on a file. Definition: chart.c:1935 #define CS_WD_GENERATE_SIMP_INITIAL_BOX(pr, b, wcs) Computes the global box for the simplified system. Definition: wcs.h:539 unsigned int GetChartDegree(Tparameters *pr, double *T, TJacobian *sJ, boolean *singular, Tchart *c) Returns the chart degree. Definition: chart.c:988 unsigned int AddChart2Atlas(Tparameters *pr, double *ps, unsigned int parentID, boolean *singular, Tatlas *a) Defines a new chart and adds it to the atlas. Definition: atlas.c:2871 void ChangeParameter(unsigned int n, double v, Tparameters *p) Sets the value for a particular parameter. Definition: parameters.c:164 void CrossProduct(double *v1, double *v2, double *v3) Computes the cross product of two 3d vectors. Definition: geom.c:639 unsigned int StartNew3dObject(Tcolor *c, Tplot3d *p) Start a composed object. Definition: plot3d.c:157 void PrintTMatrix(FILE *f, char *label, unsigned int r, unsigned int c, double *m) Prints a transposed matrix. Definition: basic_algebra.c:1016 boolean PathInChart(Tparameters *pr, double *t, unsigned int *tp, TJacobian *sJ, unsigned int nvs, boolean *systemVars, unsigned int *ms, double *pl, unsigned int *ns, double ***path, Tchart *c) Defines the path to a point in the chart. Definition: chart.c:1480 void CostColor(double cost, double minCost, Tcolor *c) Definees a color in function of a cost. Definition: color.c:90 void FreeHessianEvaluation(double ***m, THessian *h) Release space for the Hessian evaluation. Definition: hessian.c:64 double * GetNewtonMatrixBuffer(TNewton *n) Buffer to store the Newton matrix. Definition: algebra.c:1147 #define CS_WD_GET_SIMP_TOPOLOGY(pr, tp, wcs) Gets the simplified variable topology. Definition: wcs.h:450 void PlotAtlas(char *fname, int argc, char **arg, Tparameters *pr, FILE *fcost, unsigned int xID, unsigned int yID, unsigned int zID, Tatlas *a) Pots a projection of an atlas. Definition: atlas.c:4227 void BuildAtlasFromPoint(Tparameters *pr, double *p, boolean simpleChart, TAtlasBase *w, Tatlas *a) Defines an atlas from a given point. Definition: atlas.c:2954 unsigned int InitSingularChart(Tparameters *pr, boolean simple, Tbox *domain, unsigned int *tp, unsigned int m, unsigned int k, double *p, double e, double eCurv, double r, TJacobian *sJ, TAtlasBase *w, Tchart *c) Constructor. Definition: chart.c:811 void ClosePlot3d(boolean quit, double average_x, double average_y, double average_z, Tplot3d *p) Destructor. Definition: plot3d.c:473 double GetAtlasErrorCurv(Tatlas *a) Maximum curvature error for all the charts. Definition: atlas.c:3425 boolean PointInBoxTopology(boolean *used, boolean update, unsigned int n, double *v, double tol, unsigned int *tp, Tbox *b) Checks if a point is included in a(sub-) box. Definition: box.c:374 void PlotBifurcations(Tparameters *pr, Tplot3d *p3d, unsigned int xID, unsigned int yID, unsigned int zID, Tatlas *a) Plots the bifurcation information. Definition: atlas.c:2586 CBLAS_INLINE void GetColumn(unsigned int k, unsigned int r, unsigned int c, double *m, double *v) Gets a column from a matrix. Definition: basic_algebra.c:671 #define CS_WD_ORIGINAL_IN_COLLISION(pr, o, oPrev, wcs) Checks if a configuration is in collision. Definition: wcs.h:397 |
Follow us!