atlas.c
Go to the documentation of this file.
594 boolean FindPointInOtherBranch(Tparameters *pr,unsigned int bID,double *phi,double **p,Tatlas *a);
1061 canInitChart=FALSE; /* Just to indicate that no chart has been created so far in this iteration */
2836 unsigned int AddChart2Atlas(Tparameters *pr,double *ps,unsigned int parentID,boolean *singular,Tatlas *a)
2870 unsigned int AddTrustedChart2Atlas(Tparameters *pr,double *ps,unsigned int parentID,boolean *singular,Tatlas *a)
3205 fprintf(stderr," Branch %u step %u: point: [%g %g ...]\n",l,t[l]->st,currentPoint[0],currentPoint[1]);
3295 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?");
4197 if ((!ExpandibleChart(a->charts[i]))&&(SingularChart(a->charts[i])&&(!FrontierChart(a->charts[i]))))
4215 if ((ExpandibleChart(a->charts[i]))&&(!SingularChart(a->charts[i])&&(!FrontierChart(a->charts[i]))))
4233 if ((ExpandibleChart(a->charts[i]))&&(SingularChart(a->charts[i])&&(!FrontierChart(a->charts[i]))))
4251 //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:785 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:3341 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:1015 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:1602 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:3869 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:2349 #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:446 boolean CompareTangentSpaces(Tchart *c1, Tchart *c2) Checks if the tangent spaces are similar. Definition: chart.c:901 #define CS_WD_GENERATE_SIMPLIFIED_POINT(pr, p, r, wcs) Generates a simplified point from an original one. Definition: wcs.h:432 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:533 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:1098 #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:382 void SearchInBtree(Tchart *mp, unsigned int *nn, unsigned int **n, TBTree *t) Search for neighbouring charts. Definition: btree.c:113 void EvaluateTransposedJacobianInVector(double *v, unsigned int nr, unsigned int nc, double *m, TJacobian *j) Evaluates the transposed Jacobian. Definition: jacobian.c:137 Data structure to hold the information about the name of a file. Definition: filename.h:248 void ArrayPi2Pi(unsigned int n, unsigned int *t, double *a) Applies PI2PI to an array. Definition: basic_algebra.c:496 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:3944 boolean BoundaryPointFromExternalCorner(boolean rand, unsigned int *nv, double *t, Tchart *c) Random point on the chart boundary from the polytope vetices. Definition: chart.c:1340 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:2444 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:672 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:265 void LinkCharts(unsigned int id1, Tchart *c1, unsigned int id2, Tchart *c2) Connect charts at singularities. Definition: chart.c:1669 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:2137 void DifferenceVectorTopology(unsigned int s, unsigned int *tp, double *v1, double *v2, double *v) Substracts two vectors. Definition: basic_algebra.c:245 #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:803 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:2643 void NewBoundaryAttempt(TAtlasStatistics *ast) New attempt to generate a point on the boundary. Definition: atlas.c:719 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:1131 double MinCosinusBetweenCharts(Tchart *c1, Tchart *c2) Computes the angle between the tangent spaces in the charts. Definition: chart.c:920 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:1066 boolean MinimizeOnAtlas(Tparameters *pr, char *fname, double *p, TAtlasBase *w, double(*costF)(Tparameters *, boolean, double *, void *), void *costData, Tatlas *a) Gradient minimization on an manifold. Definition: atlas.c:3106 void GetJacobianSize(unsigned int *nr, unsigned int *nc, TJacobian *j) Returns the size of the Jacobian. Definition: jacobian.c:43 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:648 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:2600 void NewGoodExtension(TAtlasStatistics *ast) New time we actually succeeded in creating a new chart. Definition: atlas.c:773 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:1731 Error and warning functions. unsigned int FindRank(double epsilon, unsigned int nr, unsigned int nc, double *mT) Determines the row-rank of a matrix. Definition: algebra.c:1084 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:1463 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:150 double DotProduct(double *v1, double *v2) Computes the dot product of two 3d vectors. Definition: geom.c:643 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:1627 void NewFarFromParent(TAtlasStatistics *ast) New time the point was too far from parent. Definition: atlas.c:755 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:792 void EvaluateJacobianInVector(double *v, unsigned int nr, unsigned int nc, double *m, TJacobian *j) Evaluates the Jacobian. Definition: jacobian.c:97 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:599 #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:779 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:1364 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:2628 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:919 void NewRadiousChange(TAtlasStatistics *ast) New time we had to change the sampling radious to get a new chart. Definition: atlas.c:767 boolean RefineSingularPoint(Tparameters *pr, unsigned int bID, Tatlas *a) Improves the locatin f a singular point. Definition: atlas.c:1921 void DifferenceVector(unsigned int s, double *v1, double *v2, double *v) Substracts two vectors. Definition: basic_algebra.c:223 #define CS_WD_NEWTON_IN_SIMP(pr, p, wcs) Applies a Newton procedure to move a point towads the manifold. Definition: wcs.h:488 void NewSmallAngleAtBifurcation(TAtlasStatistics *ast) Small angle between the charts at a bifurcation. Definition: atlas.c:797 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:437 void SaveSingularCharts(Tparameters *pr, char *fname, boolean saveWithDummies, Tatlas *a) Stores the centers of the singular charts. Definition: atlas.c:4095 void NewNoJumpBranch(TAtlasStatistics *ast) The jump to the other branch failed. Definition: atlas.c:815 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:1546 double ChartVolume(Tparameters *pr, boolean collisionFree, unsigned int *tp, TJacobian *sJ, Tchart *c) Estimate the volume of a chart. Definition: chart.c:1406 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:893 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:2250 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:1704 boolean DetermineChartNeighbours(Tparameters *pr, boolean bif, unsigned int cmID, unsigned int parentID, Tatlas *a) Determines the neighbours of a chart. Definition: atlas.c:1547 #define CS_WD_GET_SIMP_JACOBIAN(pr, J, wcs) Computes the Jacobian of the simplified system. Definition: wcs.h:474 void NewNoSingularEnough(TAtlasStatistics *ast) New not singular engoug point. Definition: atlas.c:809 #define SAMPLING_RADIUS_REDUCTION_FACTOR Ratio at which the sampling radius is reduced. Definition: atlas.h:85 void SaveChartCenters(Tparameters *pr, char *fname, boolean inside, boolean saveWithDummies, boolean middlePoint, Tatlas *a) Stores the centers of the charts. Definition: atlas.c:3987 boolean FindSingularPoint(Tparameters *pr, unsigned int bID, Tatlas *a) Searches for a singular point. Definition: atlas.c:1776 Definition of an atlas on a manifold. void NewNonRegularPoint(TAtlasStatistics *ast) New time we could not initialize a new chart. Definition: atlas.c:737 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:1270 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:3677 void NewLargeError(TAtlasStatistics *ast) New time the point in the tangent space was too far form the manifold. Definition: atlas.c:731 void SetAtlasTopology(Tparameters *pr, Tatlas *a) Initializes the topology array in the atlas. Definition: atlas.c:2652 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:615 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:816 #define CS_WD_REGENERATE_ORIGINAL_POINT(pr, p, o, wcs) Completes an original point from a simplified one. Definition: wcs.h:279 void NewDecompositionError(TAtlasStatistics *ast) New time we could not initialize a new chart. Definition: atlas.c:749 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:725 void PrintAtlasStatistics(Tparameters *pr, TAtlasStatistics *ast) Print the information stored in the statistics.. Definition: atlas.c:821 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:578 #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:3966 void InitSamples(unsigned int *ms, unsigned int *ns, double ***path) Initializes a set of samples. Definition: samples.c:143 void SaveBifurcations(FILE *f, Tatlas *a) Saves the bifurcation information to a file. Definition: atlas.c:2523 boolean RandomPointOnBoundary(double *t, Tchart *c) Random point on the boundary of the chart. Definition: chart.c:1356 Tchart * GetAtlasChart(unsigned int id, Tatlas *a) Gets one of the charts of the chart. Definition: atlas.c:3936 TAtlasBase * GetAtlasWorld(Tatlas *a) Gets the world structure on which the atlas is defined. Definition: atlas.c:3326 void NewNotInManifold(TAtlasStatistics *ast) New time we could not initialize a new chart. Definition: atlas.c:743 void SaveSamples(char *fname, boolean smooth, unsigned int nvs, unsigned int ns, double **path) Saves a set of samples to a file. Definition: samples.c:1318 #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:741 unsigned int GetAtlasHeapElementID(TAtlasHeapElement *he) Gets the chart identifier. Definition: atlas.c:2618 void SaveAtlas(Tparameters *pr, Tfilename *fname, Tatlas *a) Stores the atlas information on a file. Definition: atlas.c:3842 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:2676 void InitAtlasStatistics(TAtlasStatistics *ast) Init the atlas built statistics. Definition: atlas.c:688 #define SOL_WITH_DUMMIES_EXT File extension for solution files with dummies. Definition: filename.h:143 boolean SameTriangle(unsigned int *v1, unsigned int *v2) Identifies triangles formed by the same set of vertices. Definition: geom.c:662 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:2870 boolean OpenChart(Tchart *c) Identifies charts not fully sorrounded by other charts. Definition: chart.c:1300 #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:1246 double Manifold2Chart(double *p, unsigned int *tp, double *t, Tchart *c) Returns the parametrization of a point. Definition: chart.c:1036 #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:1264 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:2392 #define CS_WD_REGENERATE_SOLUTION_POINT(pr, p, r, wcs) Compleates a solution point with the dummy variables. Definition: wcs.h:417 void NewAtlasExtension(TAtlasStatistics *ast) New attempt to extend the atlas. Definition: atlas.c:713 void NewInCollision(TAtlasStatistics *ast) New time the point was in collision. Definition: atlas.c:761 unsigned int ChartNumNeighbours(Tchart *c) Number of neighbours of the chart. Definition: chart.c:1675 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:800 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:319 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:824 void PrintMatrix(FILE *f, char *label, unsigned int r, unsigned int c, double *m) Prints a matrix. Definition: basic_algebra.c:841 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:785 void LoadBifurcations(FILE *f, Tatlas *a) Loads the bifurcation information from a file. Definition: atlas.c:2493 #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:1687 boolean InitAtlasFromPoint(Tparameters *pr, boolean parallel, boolean simpleChart, double *p, TAtlasBase *w, Tatlas *a) Initializes an atlas from a given point. Definition: atlas.c:2742 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:1726 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:1333 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:4314 void LoadChart(FILE *f, TAtlasBase *w, Tchart *c) Defines a chart from the information on a file. Definition: chart.c:1932 #define CS_WD_GENERATE_SIMP_INITIAL_BOX(pr, b, wcs) Computes the global box for the simplified system. Definition: wcs.h:460 unsigned int GetChartDegree(Tparameters *pr, double *T, TJacobian *sJ, boolean *singular, Tchart *c) Returns the chart degree. Definition: chart.c:985 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:2836 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:630 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:857 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:1477 void CostColor(double cost, double minCost, Tcolor *c) Definees a color in function of a cost. Definition: color.c:40 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:1126 #define CS_WD_GET_SIMP_TOPOLOGY(pr, tp, wcs) Gets the simplified variable topology. Definition: wcs.h:401 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:4151 void BuildAtlasFromPoint(Tparameters *pr, double *p, boolean simpleChart, TAtlasBase *w, Tatlas *a) Defines an atlas from a given point. Definition: atlas.c:2919 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:808 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:3321 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:350 void PlotBifurcations(Tparameters *pr, Tplot3d *p3d, unsigned int xID, unsigned int yID, unsigned int zID, Tatlas *a) Plots the bifurcation information. Definition: atlas.c:2546 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:521 #define CS_WD_ORIGINAL_IN_COLLISION(pr, o, oPrev, wcs) Checks if a configuration is in collision. Definition: wcs.h:348 |
Follow us!