#algebra #matrix #chain #fields #linear #combination #dg

chains_f2vect

chain complexes and dg algebra manipulations

1 unstable release

0.1.0 Dec 5, 2024

#1218 in Algorithms

Download history 122/week @ 2024-12-04 12/week @ 2024-12-11

134 downloads per month

MIT license

120KB
3K SLoC

Ring and Field Generalities

Traits for rings and fields

Don't have to implement anything extra beyond usual arithmetic traits, but may want to.

  • Add<Output = Self>

  • Sub<Output = Self>

  • Neg<Output = Self>

  • Mul<Output = Self>

  • Eq

  • From

  • Sized

  • Div<Output = Self>

  • Commutative

Commutative being only a marker trait to say that we are relying on the multiplication being commutative.

Linear Combinations

LazyLinear<N, T> covers formal linear combinations of T with coefficients in N.

One can add, negate, subtract, multiply by constants convert from T and (N,T).

If T implements a TermMultiplier for how it gets multiplied with a T2 to produce a linear combination of T's and T2 does for how it gets multiplied with a T2 to produce a linear combination of T2's then one can multiply LazyLinear<N,T> and LazyLinear<N,T2> where the former is the module for the later which is an algebra.

Matrix Store

Factorized Matrix

Elementary Matrix

F2 Vect

uses bitvec to cram entries together

Chain Complex

DG Algebra

Dependencies

~2MB
~39K SLoC