MPSolve 3.2.1
Loading...
Searching...
No Matches
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