CylindricalDecompositionFunction
✖
CylindricalDecompositionFunction
represents a cylindrical algebraic formula in x1,x2,….
Details and Options

- CylindricalDecompositionFunction[…][x1,x2,…] is generated by CylindricalDecomposition[expr, {x1,x2,…},"Function"].
- CylindricalDecompositionFunction objects provide an explicit compact representation of semialgebraic sets that can be efficiently used in further computation.
- CylindricalDecompositionFunction is typically used for repeated computations with semialgebraic sets, including computing Boolean combinations of sets, restricting sets with additional conditions, eliminating some variables or optimizing over sets.
- A cylindrical algebraic formula in x1,…,xn has the form
, where
. Each
has the form either
or
, where
and
are algebraic functions that are defined and continuous on the solution set of
. The solution set
of
in
is called a cell. Projections of cells
and
on
, for any
, are either disjoint or identical.
- CylindricalDecompositionFunction provides an encapsulated representation of cylindrical algebraic formulas, which is often more efficient when used in the input to CylindricalDecompositionFunction or CylindricalDecomposition, or to solvers such as Reduce, Resolve, FindInstance, Solve or Minimize.
- Normal converts CylindricalDecompositionFunction objects to explicit Boolean combinations of equations and inequalities.
Examples
open allclose allBasic Examples (2)Summary of the most common use cases
Find a cylindrical algebraic formula representation of the open unit ball:

https://wolfram.com/xid/0tp61ztgwipg8y-txqtp0

Represent the single-cell solution as explicit inequalities:

https://wolfram.com/xid/0tp61ztgwipg8y-szc91n

Find a cylindrical algebraic formula representation of the solution set of a quantified formula:

https://wolfram.com/xid/0tp61ztgwipg8y-bs8q93

Compute the boundary of the solution set:

https://wolfram.com/xid/0tp61ztgwipg8y-jv2fs6

Solve an equation over the solution set:

https://wolfram.com/xid/0tp61ztgwipg8y-jfgi86

Scope (23)Survey of the scope of standard use cases
Basic Uses (7)
Solution of polynomial equations and inequalities:

https://wolfram.com/xid/0tp61ztgwipg8y-4ka8we

Coefficients can include real algebraic numbers:

https://wolfram.com/xid/0tp61ztgwipg8y-610w84

Coefficients can include real exact transcendental numbers:

https://wolfram.com/xid/0tp61ztgwipg8y-lytng

Solution of a quantified system of polynomial equations and inequalities:

https://wolfram.com/xid/0tp61ztgwipg8y-u74z9h

CylindricalDecompositionFunction with a constant truth value simplifies to True or False:

https://wolfram.com/xid/0tp61ztgwipg8y-p4m37k

CylindricalDecompositionFunction with real numeric initial arguments simplifies automatically:

https://wolfram.com/xid/0tp61ztgwipg8y-vahvqq


https://wolfram.com/xid/0tp61ztgwipg8y-wzr26b


https://wolfram.com/xid/0tp61ztgwipg8y-l6tcwq


https://wolfram.com/xid/0tp61ztgwipg8y-6qorrm

Use CylindricalDecompositionFunction objects in further computation:

https://wolfram.com/xid/0tp61ztgwipg8y-h4zr8k

Compose a CylindricalDecompositionFunction with an algebraic mapping:

https://wolfram.com/xid/0tp61ztgwipg8y-noc5yx

Use a Boolean combination of CylindricalDecompositionFunction objects and polynomial inequalities:

https://wolfram.com/xid/0tp61ztgwipg8y-h6htvg

Boolean Operations (2)
Compute a CylindricalDecompositionFunction solution of a quantified system:

https://wolfram.com/xid/0tp61ztgwipg8y-7buclv


https://wolfram.com/xid/0tp61ztgwipg8y-m551qu


https://wolfram.com/xid/0tp61ztgwipg8y-b2fp2x

Compute CylindricalDecompositionFunction solutions of two different quantified systems:

https://wolfram.com/xid/0tp61ztgwipg8y-otuq92


https://wolfram.com/xid/0tp61ztgwipg8y-my8umm


https://wolfram.com/xid/0tp61ztgwipg8y-1oe6zp

Solving Equations and Inequalities (2)
Compute a CylindricalDecompositionFunction solution of a quantified system:

https://wolfram.com/xid/0tp61ztgwipg8y-jeynzi

Solve an equation over the solution set of :

https://wolfram.com/xid/0tp61ztgwipg8y-0ktnf

Solve a Boolean combination of CylindricalDecompositionFunction objects, equations and inequalities:

https://wolfram.com/xid/0tp61ztgwipg8y-587kk0


https://wolfram.com/xid/0tp61ztgwipg8y-8s3r7o


https://wolfram.com/xid/0tp61ztgwipg8y-e5i5cc

Quantifier Elimination (3)
Eliminate quantifiers from quantified CylindricalDecompositionFunction objects:

https://wolfram.com/xid/0tp61ztgwipg8y-pxai50

Eliminate quantifiers when the variables are quantified in the same order they appear in the formula:

https://wolfram.com/xid/0tp61ztgwipg8y-4eub1v


https://wolfram.com/xid/0tp61ztgwipg8y-oripu5


https://wolfram.com/xid/0tp61ztgwipg8y-ujqmbg

Eliminate quantifiers from systems involving CylindricalDecompositionFunction objects:

https://wolfram.com/xid/0tp61ztgwipg8y-b7ueq6


https://wolfram.com/xid/0tp61ztgwipg8y-jh3dy1


https://wolfram.com/xid/0tp61ztgwipg8y-1hq9cu

The cost of quantifier elimination depends on the order of variables:

https://wolfram.com/xid/0tp61ztgwipg8y-6ywg4s

https://wolfram.com/xid/0tp61ztgwipg8y-6oq0ze


https://wolfram.com/xid/0tp61ztgwipg8y-oivpf3

When the quantified variables appear in the formula after the free variables, elimination is fast:

https://wolfram.com/xid/0tp61ztgwipg8y-w24x3r


https://wolfram.com/xid/0tp61ztgwipg8y-men2kl

Elimination of quantifiers from formulas constructed in a different variable order is much slower:

https://wolfram.com/xid/0tp61ztgwipg8y-oy34tt


https://wolfram.com/xid/0tp61ztgwipg8y-h85073

Check that the obtained results are equivalent:

https://wolfram.com/xid/0tp61ztgwipg8y-g7xyyz


https://wolfram.com/xid/0tp61ztgwipg8y-ip67h4

Topological Operations (5)
Find CylindricalDecompositionFunction representations of the solution region and its boundary:

https://wolfram.com/xid/0tp61ztgwipg8y-dm2euj


https://wolfram.com/xid/0tp61ztgwipg8y-fstovq

Find CylindricalDecompositionFunction representations of the solution region and its closure:

https://wolfram.com/xid/0tp61ztgwipg8y-kq94g


https://wolfram.com/xid/0tp61ztgwipg8y-h68469

Find CylindricalDecompositionFunction representations of the solution region and its interior:

https://wolfram.com/xid/0tp61ztgwipg8y-zbz1z


https://wolfram.com/xid/0tp61ztgwipg8y-fzy3az

Find CylindricalDecompositionFunction representations of the solution region and its exterior:

https://wolfram.com/xid/0tp61ztgwipg8y-iufpj0


https://wolfram.com/xid/0tp61ztgwipg8y-nww150

Find CylindricalDecompositionFunction representations of the solution region and its connected components:

https://wolfram.com/xid/0tp61ztgwipg8y-h81845


https://wolfram.com/xid/0tp61ztgwipg8y-dldfgw

CylindricalDecompositionFunction as Input to Solvers (4)
Use CylindricalDecompositionFunction to specify optimization constraints:

https://wolfram.com/xid/0tp61ztgwipg8y-69wsye


https://wolfram.com/xid/0tp61ztgwipg8y-6w4bl9

Solve systems involving equations, inequalities and CylindricalDecompositionFunction constraints:

https://wolfram.com/xid/0tp61ztgwipg8y-5822m2


https://wolfram.com/xid/0tp61ztgwipg8y-yx0p7p

Use FindInstance to find solution instances for systems involving CylindricalDecompositionFunction:

https://wolfram.com/xid/0tp61ztgwipg8y-pruiwr


https://wolfram.com/xid/0tp61ztgwipg8y-0axenw

Find at least one point in each connected component of the solution set of a CylindricalDecompositionFunction:

https://wolfram.com/xid/0tp61ztgwipg8y-4z9e7c


https://wolfram.com/xid/0tp61ztgwipg8y-591jt8

Applications (4)Sample problems that can be solved with this function
Compute an intersection of projections of two surfaces:

https://wolfram.com/xid/0tp61ztgwipg8y-pn5up9


https://wolfram.com/xid/0tp61ztgwipg8y-3es10r


https://wolfram.com/xid/0tp61ztgwipg8y-t3oz2b

Optimize over the projection of a solid:

https://wolfram.com/xid/0tp61ztgwipg8y-2qmc4w


https://wolfram.com/xid/0tp61ztgwipg8y-y32dg9


https://wolfram.com/xid/0tp61ztgwipg8y-fx4e8u

Find the connected components of an algebraic curve:

https://wolfram.com/xid/0tp61ztgwipg8y-h9j2el


https://wolfram.com/xid/0tp61ztgwipg8y-nf7ezg

Find the connected components of a region:

https://wolfram.com/xid/0tp61ztgwipg8y-cle32


https://wolfram.com/xid/0tp61ztgwipg8y-gxpixa

Properties & Relations (5)Properties of the function, and connections to other functions
This gives a cylindrical algebraic formula in an encapsulated form:

https://wolfram.com/xid/0tp61ztgwipg8y-k6s8ju

By default, CylindricalDecomposition gives the formula written as explicit equations and inequalities:

https://wolfram.com/xid/0tp61ztgwipg8y-kp87e9

Normal of the CylindricalDecompositionFunction object is equivalent, and often identical, to the formula computed directly:

https://wolfram.com/xid/0tp61ztgwipg8y-pj8stk

Cylindrical algebraic formulas in encapsulated form are often more efficient for further computation:

https://wolfram.com/xid/0tp61ztgwipg8y-l0vshb

https://wolfram.com/xid/0tp61ztgwipg8y-iu0wkb

https://wolfram.com/xid/0tp61ztgwipg8y-bj6p5r
Operations on CylindricalDecompositionFunction objects are fast:

https://wolfram.com/xid/0tp61ztgwipg8y-3aqxv2

Operations on cylindrical algebraic formulas written as explicit equations and inequalities often are much slower:

https://wolfram.com/xid/0tp61ztgwipg8y-qnhkrn

Use FindInstance to find points that satisfy a CylindricalDecompositionFunction object:

https://wolfram.com/xid/0tp61ztgwipg8y-kcmahm


https://wolfram.com/xid/0tp61ztgwipg8y-m248tf

SemialgebraicComponentInstances gives at least one point in each connected component of a semialgebraic set:

https://wolfram.com/xid/0tp61ztgwipg8y-b4wd8

CylindricalDecompositionFunction merges several cells to get a more compact representation:

https://wolfram.com/xid/0tp61ztgwipg8y-f7q2be

SemialgebraicComponentInstances now knows that fewer points suffice:

https://wolfram.com/xid/0tp61ztgwipg8y-zqwj2s

GenericCylindricalDecomposition computes representations of semialgebraic sets set up to lower-dimensional parts:

https://wolfram.com/xid/0tp61ztgwipg8y-fg39i


https://wolfram.com/xid/0tp61ztgwipg8y-cf0dgm

Use Method{"CylindricalDecompositionFunctionOutput"True} to get CylindricalDecompositionFunction results:

https://wolfram.com/xid/0tp61ztgwipg8y-7ufw6a

Possible Issues (1)Common pitfalls and unexpected behavior
When given inexact arguments, CylindricalDecompositionFunction uses the inexact values of arguments for comparisons, but produces an exact result:

https://wolfram.com/xid/0tp61ztgwipg8y-ccflnb


https://wolfram.com/xid/0tp61ztgwipg8y-3f8nuc


https://wolfram.com/xid/0tp61ztgwipg8y-7csxqf

Wolfram Research (2020), CylindricalDecompositionFunction, Wolfram Language function, https://reference.wolfram.com/language/ref/CylindricalDecompositionFunction.html.
Text
Wolfram Research (2020), CylindricalDecompositionFunction, Wolfram Language function, https://reference.wolfram.com/language/ref/CylindricalDecompositionFunction.html.
Wolfram Research (2020), CylindricalDecompositionFunction, Wolfram Language function, https://reference.wolfram.com/language/ref/CylindricalDecompositionFunction.html.
CMS
Wolfram Language. 2020. "CylindricalDecompositionFunction." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/CylindricalDecompositionFunction.html.
Wolfram Language. 2020. "CylindricalDecompositionFunction." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/CylindricalDecompositionFunction.html.
APA
Wolfram Language. (2020). CylindricalDecompositionFunction. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/CylindricalDecompositionFunction.html
Wolfram Language. (2020). CylindricalDecompositionFunction. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/CylindricalDecompositionFunction.html
BibTeX
@misc{reference.wolfram_2025_cylindricaldecompositionfunction, author="Wolfram Research", title="{CylindricalDecompositionFunction}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/CylindricalDecompositionFunction.html}", note=[Accessed: 18-May-2025
]}
BibLaTeX
@online{reference.wolfram_2025_cylindricaldecompositionfunction, organization={Wolfram Research}, title={CylindricalDecompositionFunction}, year={2020}, url={https://reference.wolfram.com/language/ref/CylindricalDecompositionFunction.html}, note=[Accessed: 18-May-2025
]}