[ library(linearize) | Reference Manual | Alphabetic Index ]

# linrenorm(+LinOld, -LinNew)

Renormalize a linear form

LinOld
  Possibly denormal lists of monomials
LinNew
  Normalized lists of monomials

## Description

The normal form of linear expressions is

    		[C0*1, C1*X1, C2*X2, ...]

where Ci are numbers and Xi are distinct variables. The first (constant) term is always present, Ci (i>=1) are nonzero.

Such a form can become denormalized due to unifications (instantiation or variable-variable aliasing). This predicate renormalizes it. Note that variables may only become instantiated to numbers!

## Examples

        ?- linearize(3*X-7*Y+2*(X+Y), L1, R), writeln(L1),
    	Y = 3,
    	linrenorm(L1,L2), writeln(L2).

        [0 * 1, 5 * X, -5 * Y]
        [-15 * 1, 5 * X]

## See Also

linearize / 3, delinearize / 2