SolutionSet
A finite set of solution descriptors with solver-specific metadata.
`SolutionSet`inherits the finite-set storage semantics of ValuesSet: accepted descriptors are unique by symbolic equality, insertion order has no mathematical meaning, and values exposed through elements are copies rather than mutable references into the set. A descriptor normally represents one solution, but a descriptor containing the reserved
`_n`index represents a parameterized family where
`_n`ranges over the integers. The special
`all`descriptor represents every value of the solved variable. Consequently, count reports the number of stored descriptors, not the cardinality of the mathematical solution set. solutionsType records solver provenance: whether accepted descriptors came from numerical strategies, symbolic/exact strategies, or both. It is not inferred from the printed shape of a descriptor, so a symbolic strategy may produce a value such as
`1`. The orthogonal solutionForm property is derived from representation and distinguishes finite results,
`_n`-indexed parametric families, and the
`all`result. The class narrows membership to Expression values and keeps rejected singular candidates and numerical root metadata alongside the accepted solutions. Excluded values are an invariant, not merely advisory metadata. Once a value is excluded, adding the same value does not reintroduce it; excluding an already accepted value removes it from the solution set. copy preserves accepted values, exclusions, raw roots, partial-result state, solution type, and the unresolved expression when one is present.
Members
__get__(indices: number[]): ParserEntityMethodReads an element for parser indexing.
A
`RangeError`if the index is outside the current set size.
Parameters
| Name | Type | Description |
|---|---|---|
indices | number[] | — |
Returns
__set__(indices: number[], value: ParserEntity): voidMethodReplaces a parser-indexed solution while preserving the Expression-only and uniqueness invariants.
Parameters
| Name | Type | Description |
|---|---|---|
indices | number[] | — |
value | ParserEntity | — |
Returns
void
abs(): ValuesSetMethodNo description is available yet.
Returns
add(x: Expression): SolutionSetMethodAdds an accepted solution unless it is already present or explicitly excluded.
Parameters
| Name | Type | Description |
|---|---|---|
x | Expression | — |
Returns
addMany(x: Iterable<Expression>): SolutionSetMethodAdds accepted solutions while preserving uniqueness and exclusions. The iterable is validated before the set is changed, so invalid input cannot leave a partially updated result.
Parameters
| Name | Type | Description |
|---|---|---|
x | Iterable<Expression> | — |
Returns
addRawRoot(root: Root): SolutionSetMethodStores numerical root-refinement metadata independently of the caller's object.
Parameters
| Name | Type | Description |
|---|---|---|
root | Root | — |
Returns
addSolution(solution: Expression, forFunction: Expression, variable: string): SolutionSetMethodVerifies a candidate against the source expression before admitting it to the set. Parameterized candidates that cannot yet be closed numerically are preserved. Closed residuals must evaluate nearly to zero. Candidates that encounter exact division by zero are recorded as exclusions instead.
Parameters
| Name | Type | Description |
|---|---|---|
solution | Expression | — |
forFunction | Expression | — |
variable | string | — |
Returns
addSolutions(arr: Expression[] | SolutionSet, forFunction: Expression, variable: string): SolutionSetMethodVerifies and adds every candidate in an array or another
`SolutionSet`. When the source is a
`SolutionSet`, its numerical/symbolic provenance is retained if at least one source descriptor survives verification. Context-specific metadata such as exclusions, raw roots, partial state, and unresolved expressions is not transferred; use append when the complete solver result should be merged without revalidation.
Parameters
| Name | Type | Description |
|---|---|---|
arr | Expression[] | SolutionSet | — |
forFunction | Expression | — |
variable | string | — |
Returns
append(s: SolutionSet): SolutionSetMethodAppends another solution result while preserving set and solver metadata.
Exclusions are merged before accepted values so an excluded candidate cannot be reintroduced. Raw numerical-root records are copied.
`partial`is combined with logical OR and differing defined solution types become
`mixed`. If this set has no
`unsolved`expression, the appended set's unresolved expression is copied; when both sets already carry different unresolved expressions, the receiver's value is retained because the current data model can represent only one such expression.
Parameters
| Name | Type | Description |
|---|---|---|
s | SolutionSet | — |
Returns
at(i: number): ParserEntity | undefinedMethodReturns a copy of the element at the requested insertion-order index.
Parameters
| Name | Type | Description |
|---|---|---|
i | number | — |
Returns
ParserEntity | undefined — A copy of the stored value, or `undefined` when the index is out of range.
clear(): thisMethodRemoves accepted solutions and all solver state so the instance can be reused.
Returns
this
SolutionSet(values?: Iterable<Expression, any, any>): SolutionSetConstructorNo description is available yet.
Parameters
| Name | Type | Description |
|---|---|---|
values | Iterable<Expression, any, any> | — |
Returns
copy(): SolutionSetMethodReturns an independent copy including exclusions and raw-root metadata.
Returns
count(): numberMethodReturns the current number of set members.
Returns
number
dataType: "SOL"PropertyNo description is available yet.
delete(x: ParserEntity): booleanMethodRemoves the member semantically equal to
`x`, if one is present.
Parameters
| Name | Type | Description |
|---|---|---|
x | ParserEntity | — |
Returns
boolean
diff(variable?: ExpressionInput, n?: number | Expression): thisMethodNo description is available yet.
Parameters
| Name | Type | Description |
|---|---|---|
variable | ExpressionInput | — |
n | number | Expression | — |
Returns
this
Returns a new set containing members of this set that are absent from
`other`.
Parameters
| Name | Type | Description |
|---|---|---|
other | ValuesSet | — |
Returns
dimensions(): number[]MethodReturns the one-dimensional storage size used by parser indexing.
Returns
number[]
dimensionsMatch(x: ParserEntity): xMethodNo description is available yet.
Parameters
| Name | Type | Description |
|---|---|---|
x | ParserEntity | — |
Returns
x
div(_x: NerdamerInput): ValuesSetMethodRejects binary division because finite sets do not define elementwise quotients.
UnsupportedOperationError Always.
Parameters
| Name | Type | Description |
|---|---|---|
_x | NerdamerInput | — |
Returns
each(callback: (e: Expression, i?: string | number, j?: string | number): Expression): thisMethodMaps accepted solutions in place while requiring every mapped value to remain an Expression and respecting the exclusion set.
Parameters
| Name | Type | Description |
|---|---|---|
callback | (e: Expression, i?: string | number, j?: string | number): Expression | — |
Returns
this
elements(): Expression[]APIReturns deep-copied accepted solution descriptors in deterministic insertion order.
Returns
eq(other: ParserEntity): booleanMethodTests set equality by membership, independent of insertion order.
Parameters
| Name | Type | Description |
|---|---|---|
other | ParserEntity | — |
Returns
boolean
evaluate(): SolutionSetMethodEvaluates every member and returns a new set, collapsing equal results.
Returns
exclude(set: ValuesSet | SolutionSet): SolutionSetMethodAdds exclusions and removes any matching values that were already accepted.
Parameters
| Name | Type | Description |
|---|---|---|
set | ValuesSet | SolutionSet | — |
Returns
expand(): SolutionSetMethodExpands every member and returns a new set, collapsing equal results.
Returns
factor(): thisMethodNo description is available yet.
Returns
this
getExcluded(): ValuesSetMethodReturns an independent copy of the currently excluded values.
Returns
getRawRoots(): Root[]MethodReturns independent copies of the stored numerical root-refinement records.
Returns
Root[]
gt(other: ParserEntity): booleanMethodReturns the proper-superset relation for compatibility with parser comparison syntax. Prefer isProperSupersetOf in direct set-oriented code.
Parameters
| Name | Type | Description |
|---|---|---|
other | ParserEntity | — |
Returns
boolean
gte(other: ParserEntity): booleanMethodReturns the superset relation for compatibility with parser comparison syntax. Prefer isSupersetOf in direct set-oriented code.
Parameters
| Name | Type | Description |
|---|---|---|
other | ParserEntity | — |
Returns
boolean
has(x: ParserEntity): booleanMethodTests whether a semantically equal member is present.
Parameters
| Name | Type | Description |
|---|---|---|
x | ParserEntity | — |
Returns
boolean
integrate(variable?: ExpressionInput): thisMethodNo description is available yet.
Parameters
| Name | Type | Description |
|---|---|---|
variable | ExpressionInput | — |
Returns
this
Returns a new set containing only members present in both sets.
Parameters
| Name | Type | Description |
|---|---|---|
other | ValuesSet | — |
Returns
isDisjointFrom(other: ValuesSet): booleanMethodReturns
`true`when this set has no member in common with
`other`.
Parameters
| Name | Type | Description |
|---|---|---|
other | ValuesSet | — |
Returns
boolean
isEnumerable: booleanPropertyNo description is available yet.
isProperSubsetOf(other: ValuesSet): booleanMethodReturns
`true`when this set is a strict subset of
`other`.
Parameters
| Name | Type | Description |
|---|---|---|
other | ValuesSet | — |
Returns
boolean
isProperSupersetOf(other: ValuesSet): booleanMethodReturns
`true`when this set is a strict superset of
`other`.
Parameters
| Name | Type | Description |
|---|---|---|
other | ValuesSet | — |
Returns
boolean
isSolutionSet(obj: unknown): objMethodTests whether a value is specifically a solver
`SolutionSet`.
Parameters
| Name | Type | Description |
|---|---|---|
obj | unknown | — |
Returns
obj
isSubsetOf(other: ValuesSet): booleanMethodReturns
`true`when every member of this set is present in
`other`.
Parameters
| Name | Type | Description |
|---|---|---|
other | ValuesSet | — |
Returns
boolean
isSupersetOf(other: ValuesSet): booleanMethodReturns
`true`when every member of
`other`is present in this set.
Parameters
| Name | Type | Description |
|---|---|---|
other | ValuesSet | — |
Returns
boolean
isValuesSet(obj: unknown): objMethodTests whether a value is a
`ValuesSet`or a specialized
`ValuesSet`subtype such as
`SolutionSet`.
Parameters
| Name | Type | Description |
|---|---|---|
obj | unknown | — |
Returns
obj
lt(other: ParserEntity): booleanMethodReturns the proper-subset relation for compatibility with parser comparison syntax. Prefer isProperSubsetOf in direct set-oriented code.
Parameters
| Name | Type | Description |
|---|---|---|
other | ParserEntity | — |
Returns
boolean
lte(other: ParserEntity): booleanMethodReturns the subset relation for compatibility with parser comparison syntax. Prefer isSubsetOf in direct set-oriented code.
Parameters
| Name | Type | Description |
|---|---|---|
other | ParserEntity | — |
Returns
boolean
minus(_x: NerdamerInput): ValuesSetMethodRejects binary subtraction because finite sets do not define elementwise subtraction.
UnsupportedOperationError Always.
Parameters
| Name | Type | Description |
|---|---|---|
_x | NerdamerInput | — |
Returns
partial: booleanPropertyNo description is available yet.
plus(_x: NerdamerInput): ValuesSetMethodBinary addition is not defined for finite sets. Use union for set union.
UnsupportedOperationError Always.
Parameters
| Name | Type | Description |
|---|---|---|
_x | NerdamerInput | — |
Returns
pow(_x: NerdamerInput): ValuesSetMethodRejects binary exponentiation because finite sets do not define elementwise powers.
UnsupportedOperationError Always.
Parameters
| Name | Type | Description |
|---|---|---|
_x | NerdamerInput | — |
Returns
precision: numberPropertyNo description is available yet.
simplify(): thisMethodNo description is available yet.
Returns
this
solutionForm(): SolutionFormAPIClassifies the mathematical result represented by the stored descriptors. Arbitrary symbolic parameters do not make a result parametric in this sense. The
`parametric`form is reserved for solver-generated families that contain
`_n`, whose solver contract is an integer index. The special
`all`descriptor takes precedence if present.
Returns
solutionsType: SolutionsTypePropertySolver provenance for the currently accepted descriptors.
sort(compareFn?: (a: ParserEntity, b: ParserEntity): number): thisMethodSorts the deterministic iteration order without changing mathematical membership. A custom comparator receives copies so it cannot mutate stored members as a side effect.
Parameters
| Name | Type | Description |
|---|---|---|
compareFn | (a: ParserEntity, b: ParserEntity): number | — |
Returns
this
subst(value: ExpressionInput, withValue: ExpressionInput): thisMethodNo description is available yet.
Parameters
| Name | Type | Description |
|---|---|---|
value | ExpressionInput | — |
withValue | ExpressionInput | — |
Returns
this
symbolicAccessor: Expression[]PropertyPublic index expressions retained when bracket access cannot yet be resolved. This state belongs to a copied structured entity, never the stored source value.
symbolicTarget: ExpressionPropertyOriginal symbolic target used to render and later re-evaluate bracket access.
Returns a new set containing members present in exactly one of the two sets.
Parameters
| Name | Type | Description |
|---|---|---|
other | ValuesSet | — |
Returns
text(): stringMethodNo description is available yet.
Returns
string
times(_x: NerdamerInput): ValuesSetMethodRejects binary multiplication because finite sets do not define elementwise products.
UnsupportedOperationError Always.
Parameters
| Name | Type | Description |
|---|---|---|
_x | NerdamerInput | — |
Returns
toString(): stringMethodNo description is available yet.
Returns
string
Returns a new set containing members present in either set.
Parameters
| Name | Type | Description |
|---|---|---|
other | ValuesSet | — |
Returns
unsolved: ExpressionPropertyNo description is available yet.
withSymbolicAccessor(target: Expression, indices: Expression[]): ValuesSetMethodReturns a copied structured entity carrying an unresolved bracket access. Existing accessor state is retained so chained symbolic access can be extended.
Parameters
| Name | Type | Description |
|---|---|---|
target | Expression | — |
indices | Expression[] | — |
