cp.c File Reference Detailed DescriptionImplementation of the functions dealing with critial points, i.e., recursion points for the silhouette algorithm. Definition in file cp.c.
Function Documentation
Generates a cuiksystem whose solution is a silhouette or a set of critical points. The cuiksystem is generated form an extended Jacobian of the original cuiksystem. The extended comes from the fact that we add the projection planes to the system Jacobian. The silhouette/critical points are the points where this extended Jacobian is not full rank. To identify these points, we generate a system with the linear combinations of the equations in the Jacobian and we search from points where this linear combination is zero (excluding the trivial solution by imposing the norm of the scale factor of the linear combinations to be 1).
Definition at line 84 of file cp.c. References AccumulateEquations(), AddCt2Monomial(), AddEquation2CS(), AddMonomial(), AddVariable2CS(), AddVariable2Monomial(), CopyCuikSystem(), CopyEquation(), CT_N_DOF, DeleteEquation(), DeleteJacobian(), DeleteMonomial(), DeleteVariable(), EQU, Error(), FALSE, Tcp::fixedRanges, GenerateGeneralNormEquation(), GetBoxInterval(), GetCSJacobian(), GetCSNumEquations(), GetCSNumVariables(), GetCSSystemVars(), GetJacobianEquation(), GetParameter(), INF, InitEquation(), InitMonomial(), Tcp::level, NEW, NewInterval(), NewVariable(), NFUN, SetCSVariableRange(), SetEquationCmp(), SetEquationType(), SetVariableInterval(), SYSTEM_EQ, SYSTEM_VAR, and VarScaleEquation(). Referenced by DealWithCP().
Generates n orthonormals planes in a space of dimension dim that we use for projection. m is level at which these planes are fixed: values up to m are zero in the output vectors.
Definition at line 215 of file cp.c. References randomDouble(). Referenced by DealWithCP(). Defines a new critical point.
Definition at line 278 of file cp.c. References CopyBox(), Tcp::fixedRanges, GetBoxInterval(), IntervalCenter(), Tcp::level, and NewInterval(). Referenced by DealWithCP(), and main().
Gets the creation level of a critical point.
Definition at line 299 of file cp.c. References Tcp::level. Gets the collection of fixed ranges for a critical point.
Definition at line 304 of file cp.c. References Tcp::fixedRanges.
A critical point is a recursion point for the silhouette algorithm, i.e., a point where the range for one variable is fixed and the silhouette algorithms is launched in a sub-space with one degree of freedom less than the original space The process of the critical point is the following
This is just a brute-force approach to the silhouette algorithm and the result is not very efficient. Many refinements are possible to speed up the execution. We will introduce them as time is available, but this is not a priority right now.
Definition at line 309 of file cp.c. References AddLastElement(), Advance(), ChangeParameter(), CT_N_DOF, CT_N_SOLUTIONS, DeleteCuikSystem(), DeleteListOfBoxes(), EndOfList(), FALSE, First(), GenerateProjectionPlanes(), GetCSNumVariables(), GetCurrent(), GetParameter(), GetSCpSystem(), InitIterator(), InitListOfBoxes(), Tcp::level, ListOfBoxesCluster(), NEW, NewCP(), PrintCuikSystemWithSimplification(), PrintListOfBoxes(), SolveCuikSystem(), and TRUE. Referenced by main().
Deletes the information stored in the critical point and frees the allocated memory space. Definition at line 388 of file cp.c. References DeleteBox(), and Tcp::fixedRanges. Referenced by main(). |
Follow us!