MPSolve 3.2.1
touch.h File Reference

Routines that check the emptyness of the intersection of several sets. More...

Go to the source code of this file.

Functions

MPS_BEGIN_DECLS mps_boolean mps_ftouchnwt (mps_context *s, double *frad, int n, int i, int j)
 Check if the i-th and the j-th discs are newton-isolated. More...
 
mps_boolean mps_dtouchnwt (mps_context *s, rdpe_t *drad, int n, int i, int j)
 Check if the i-th and the j-th discs are newton-isolated. More...
 
mps_boolean mps_mtouchnwt (mps_context *s, rdpe_t *drad, int n, int i, int j)
 Check if the i-th and the j-th discs are newton-isolated. More...
 
mps_boolean mps_ftouchreal (mps_context *s, int n, int i)
 Return true if the disk intersects the real axis, false otherwise (floating point version). More...
 
mps_boolean mps_dtouchreal (mps_context *s, int n, int i)
 Return true if the disk intersects the real axis, false otherwise (DPE version). More...
 
mps_boolean mps_mtouchreal (mps_context *s, int n, int i)
 Return true if the disk intersects the real axis, false otherwise (MP version). More...
 
mps_boolean mps_ftouchimag (mps_context *s, int n, int i)
 Return true if the disk intersects the imaginary axis, false otherwise (floating point version). More...
 
mps_boolean mps_dtouchimag (mps_context *s, int n, int i)
 Return true if the disk intersects the imaginary axis, false otherwise (DPE version). More...
 
mps_boolean mps_mtouchimag (mps_context *s, int n, int i)
 Return true if the disk intersects the imaginary axis, false otherwise (MP version). More...
 
mps_boolean mps_ftouchunit (mps_context *s, int n, int i)
 Return true if the disk intersects the unitary circle, false otherwise (floating point version). More...
 
mps_boolean mps_dtouchunit (mps_context *s, int n, int i)
 Return true if the disk intersects the unitary circle, false otherwise (DPE version). More...
 
mps_boolean mps_mtouchunit (mps_context *s, int n, int i)
 Return true if the disk intersects the unitary circle, false otherwise (MP version). More...
 
void mps_validate_inclusions (mps_context *ctx)
 This function can be called to validate the inclusion radii and cluster analysis for a limited precision polynomial. More...
 

Detailed Description

Routines that check the emptyness of the intersection of several sets.

Function Documentation

◆ mps_dtouchimag()

mps_boolean mps_dtouchimag ( mps_context s,
int  n,
int  i 
)

Return true if the disk intersects the imaginary axis, false otherwise (DPE version).

Parameters
sA pointer to the current mps_context.
nThe degree of the polynomial.
iThe index of the root to check

◆ mps_dtouchnwt()

mps_boolean mps_dtouchnwt ( mps_context s,
rdpe_t *  drad,
int  n,
int  i,
int  j 
)

Check if the i-th and the j-th discs are newton-isolated.

More precisely, given a parameter n, check if the roots i and j are separated with circles whose radius is less than their distance divided for n.

If $n = 1$ this condition correspond to isolation, if $n = 2*m$ where $m$ is the degree of the polynomial then it correspond to newton isolation.

Parameters
smps_context struct.
dradThe inclusion radii that should be used to perform cluster analysis.
nSee above.
ithe first root.
jthe second root.
Returns
false if the disc i and j are newton-isolated.

◆ mps_dtouchreal()

mps_boolean mps_dtouchreal ( mps_context s,
int  n,
int  i 
)

Return true if the disk intersects the real axis, false otherwise (DPE version).

Parameters
sA pointer to the current mps_context.
nThe degree of the polynomial.
iThe index of the root to check

◆ mps_dtouchunit()

mps_boolean mps_dtouchunit ( mps_context s,
int  n,
int  i 
)

Return true if the disk intersects the unitary circle, false otherwise (DPE version).

Parameters
sA pointer to the current mps_context.
nThe degree of the polynomial.
iThe index of the root to check

◆ mps_ftouchimag()

mps_boolean mps_ftouchimag ( mps_context s,
int  n,
int  i 
)

Return true if the disk intersects the imaginary axis, false otherwise (floating point version).

Parameters
sA pointer to the current mps_context.
nThe degree of the polynomial.
iThe index of the root to check

◆ mps_ftouchnwt()

MPS_BEGIN_DECLS mps_boolean mps_ftouchnwt ( mps_context s,
double *  frad,
int  n,
int  i,
int  j 
)

Check if the i-th and the j-th discs are newton-isolated.

More precisely, given a parameter n, check if the roots i and j are separated with circles whose radius is less than their distance divided for n.

If $n = 1$ this condition correspond to isolation, if $n = 2*m$ where $m$ is the degree of the polynomial then it correspond to newton isolation.

Parameters
smps_context struct.
nSee above.
ithe first root.
jthe second root.
fradThe inclusion radii precomputed by some other routines.
Returns
false if the disc i and j are newton-isolated.

◆ mps_ftouchreal()

mps_boolean mps_ftouchreal ( mps_context s,
int  n,
int  i 
)

Return true if the disk intersects the real axis, false otherwise (floating point version).

Parameters
sA pointer to the current mps_context.
nThe degree of the polynomial.
iThe index of the root to check

◆ mps_ftouchunit()

mps_boolean mps_ftouchunit ( mps_context s,
int  n,
int  i 
)

Return true if the disk intersects the unitary circle, false otherwise (floating point version).

Parameters
sA pointer to the current mps_context.
nThe degree of the polynomial.
iThe index of the root to check

◆ mps_mtouchimag()

mps_boolean mps_mtouchimag ( mps_context s,
int  n,
int  i 
)

Return true if the disk intersects the imaginary axis, false otherwise (MP version).

Parameters
sA pointer to the current mps_context.
nThe degree of the polynomial.
iThe index of the root to check

◆ mps_mtouchnwt()

mps_boolean mps_mtouchnwt ( mps_context s,
rdpe_t *  drad,
int  n,
int  i,
int  j 
)

Check if the i-th and the j-th discs are newton-isolated.

More precisely, given a parameter n, check if the roots i and j are separated with circles whose radius is less than their distance divided for n.

If $n = 1$ this condition correspond to isolation, if $n = 2*m$ where $m$ is the degree of the polynomial then it correspond to newton isolation.

Parameters
smps_context struct.
dradThe inclusion radii that should be used to perform cluster analysis.
nSee above.
ithe first root.
jthe second root.
Returns
false if the disc i and j are newton-isolated.

◆ mps_mtouchreal()

mps_boolean mps_mtouchreal ( mps_context s,
int  n,
int  i 
)

Return true if the disk intersects the real axis, false otherwise (MP version).

Parameters
sA pointer to the current mps_context.
nThe degree of the polynomial.
iThe index of the root to check

◆ mps_mtouchunit()

mps_boolean mps_mtouchunit ( mps_context s,
int  n,
int  i 
)

Return true if the disk intersects the unitary circle, false otherwise (MP version).

Parameters
sA pointer to the current mps_context.
nThe degree of the polynomial.
iThe index of the root to check

◆ mps_validate_inclusions()

void mps_validate_inclusions ( mps_context ctx)

This function can be called to validate the inclusion radii and cluster analysis for a limited precision polynomial.

In the current implementation MPSolve treat a limited precision polynomial as an infinite one, and then gives a poteriori bounds to the approximations using this function.

Parameters
ctxThe current mps_context