Ecosyste.ms: Packages

An open API service providing package, version and dependency metadata of many open source software ecosystems and registries.

hackage.haskell.org : oalg-base

Basic definition of algebraic structures on oriented entities. First of all we define entities (OAlg.Entity.Definition). Based on them and since we look at algebra through the lens of categories, we define oriented (OAlg.Structure.Oriented.Definition) structures on which, by means of a suitable partially defined multiplication, multiplicative (OAlg.Structure.Multiplicative.Definition) structures are defined. If one provides such a multiplicative structure with a matching additive (OAlg.Structure.Additive.Definition) structure, one obtains distributive (OAlg.Structure.Distributive.Definition) structures on which matrices (OAlg.Entity.Matrix.Definition) are build. If an additive structure is provided with a matching scalar multiplication, vectorial (OAlg.Structure.Vectorial.Definition) structures are obtained, which then form - together with the distributive structures - the basis for algebraic (OAlg.Structure.Algebraic.Definition) structures Limits (OAlg.Limes.Limits) - in context of categories - serve as a backbone for solving algebraic problems, e. g. finding all solutions of the equation a * x == 0 is given by the kernel (OAlg.Limes.KernelsAndCokernels) of a. Particular attention is paid to the duality (OAlg.Data.Dualisable) of concepts - viewed through the lens of categories - so that the implementation of the dual concept could be traced back to the original one to avoid duplicate or redundant implementation efforts. A central feature in this package is that all functions defined here - unless otherwise stated - are total and means if the input values are valid (OAlg.Data.Validable) then the resulting value is also valid. Most functions do not check their preconditions. Therefore, all data structures defined here are provided with a property section that is translated into a corresponding statement (OAlg.Data.Statement.Definition) so that they can be validated (OAlg.Control.Validate) as needed. If there is an exception to this rule - such as for partially defined algebraic operators - the rule is extended by if the input values are valid and fulfill the additional required properties, then the resulting value is also valid. Most of the algebraic operators do check there additional required preconditions. Since the algebraic operators - such as (*), (+), (.)... - have been redefined here, one should exclude the standard Prelude when using this package, to avoid ambiguity, and use the Prelude (OAlg.Prelude) provided here. Throughout the descripitions in this package we denote type variables in bold lower case letters to distinguishing them from variables for values of a type. Since we take the view that a value of a data structure or an instance of a class must strictly fulfill the required properties to be valid, Double, for example, has not been implemented as a numerical type. Please see also the README on GitHub at https://github.com/zErichGut/oalg-main/blob/main/oalg-base/README.md

Registry - Source - Homepage - JSON
purl: pkg:hackage/oalg-base
Keywords: algebra, bsd3, category, library, mathematics
License: BSD-3-Clause
Latest release: 4 months ago
First release: 7 months ago
Dependent repositories: 1
Downloads: 68 total
Stars: 2 on GitHub
Forks: 0 on GitHub
See more repository details: repos.ecosyste.ms
Last synced: 6 days ago

    Loading...
    Readme
    Loading...