# LinearCombinationUtilities(F, UP)¶

This package implements frequently used operations on linear combinations.

dehomogenize: List Record(ratpart: F, coeffs: Vector F) -> Record(particular: Union(Record(ratpart: F, coeffs: Vector F), failed), basis: List Record(ratpart: F, coeffs: Vector F))

`dehomogenize(ls)` converts list of solutions (a, [`c0`, `c1`, …, `cn`]) to homogeneous equation `L`(a) + `c0` `f` + `c1` `g1` + … + `cn` `gn` = 0 into list of solutions of inhomogeneous equation `L`(a) + `f` + `c1` `g1` + … + `cn` `gn` = 0. This transformation works the same for all equations, so we only need list of solutions as argument

lin_comb!: (Vector F, Vector F, List Vector F) -> Vector F

`lin_comb!(v, w, [f1, ..., fn])` computes linear combination `w` + `v`(1) `f1` + … `v`(`n`) `fn` by modifying `w` in place. Vector `v` and list [`f1`, …, `fn`] must be of equal length.

lin_comb: (Vector F, List F) -> F

`lin_comb(v, [f1, ..., fn])` computes linear combination `v`(1) `f1` + … `v`(`n`) `fn`. Vector `v` and list [`f1`, …, `fn`] must be of equal length.

lin_comb: (Vector F, List Fraction UP) -> Fraction UP

`lin_comb(v, [f1, ..., fn])` computes linear combination `v`(1) `f1` + … `v`(`n`) `fn`. Vector `v` and list [`f1`, …, `fn`] must be of equal length.

lin_comb: (Vector F, List LaurentPolynomial(F, UP)) -> LaurentPolynomial(F, UP)

`lin_comb(v, [f1, ..., fn])` computes linear combination `v`(1) `f1` + … `v`(`n`) `fn`. Vector `v` and list [`f1`, …, `fn`] must be of equal length.

lin_comb: (Vector F, List UP) -> UP

`lin_comb(v, [f1, ..., fn])` computes linear combination `v`(1) `f1` + … `v`(`n`) `fn`. Vector `v` and list [`f1`, …, `fn`] must be of equal length.

lin_comb: (Vector F, List Vector F) -> Vector F

`lin_comb(v, [f1, ..., fn])` computes linear combination `v`(1) `f1` + … `v`(`n`) `fn`. Vector `v` and list [`f1`, …, `fn`] must be of equal positive length.

lin_comb: (Vector Fraction Integer, List F) -> F

`lin_comb(v, [f1, ..., fn])` computes linear combination `v`(1) `f1` + … `v`(`n`) `fn`. Vector `v` and list [`f1`, …, `fn`] must be of equal length.

lin_comb: (Vector Fraction Integer, List Fraction UP) -> Fraction UP

`lin_comb(v, [f1, ..., fn])` computes linear combination `v`(1) `f1` + … `v`(`n`) `fn`. Vector `v` and list [`f1`, …, `fn`] must be of equal length.