env:set-tolerance
List of: Scheme Extensions
Subjects: Precision and Tolerance
Contents: Kernel

Action: Sets the following system tolerances: SPAresabs, SPAresnor, SPAresfit, and SPAresmch.

Filename: kern/kern_scm/tol_scm.cxx

Syntax: (env:set-tolerance resabs=1e-6 resnor=1e-10


resfit=1e-3 resmch=1e-11)

Arg Types: resabs real | boolean

resnor real | boolean

resfit real | boolean

resmch real | boolean

Returns: (integer ...) . (real ...)

Description: The system tolerances are set in the following order: SPAresabs, SPAresnor, SPAresfit, and SPAresmch. SPAresabs to SPAresnor gives the largest numbers that can be represented. The previous values of each variable are returned in a list.


SPAresabs determines if two positions in space are equal. This tolerance defines the smallest distance between two distinct points.


SPAresnor checks a number for equality with 0. This checks components of numbers that are 0 for determining if vectors are parallel or perpendicular, or for checking for zero lengths.


SPAresfit fits interpolation curves when intersecting surfaces.


SPAresmch is used by the spline package for purposes similar to the use of SPAresnor in the system.


For each element argument, a real sets the value, a boolean#f leaves it unchanged, and boolean#t sets it to the default value.


Note Changing these values can have a significant effect on modeling functionality and should only be undertaken when absolutely necessary!

Example: ; env:set-tolerance

; Change the resabs and resfit tolerances, leave

; resnor unchanged, and set resmch to the default.

; Get the list of system tolerances.

(env:tolerance)

;; (1e-06 1e-10 0.001 1e-11)

(env:set-tolerance 1e-3 #f 0.1 #t)

;; (0.001 1e-10 0.1 1e-11)

; Get the list of system tolerances.

(env:tolerance)

;; (0.001 1e-10 0.1 1e-11)

; Reset the tolerances.

(env:set-tolerance 1e-06 1e-10 0.001 1e-11)

;; (1e-06 1e-10 0.001 1e-11)
PDF/KERN/12SCA.PDF
HTM/DATA/KERN/KERN/12SCA/0120.HTM