# csa: Connection-set algebra (CSA) library

[ algebra, library ] [ Propose Tags ]

Library for algebraic connection-set expressions, built on M. Djurfeldt's idea of connection-set algebra [1].

1: Mikael Djurfeldt. The Connection-set Algebra: a formalism for the representation of connectivity structure in neuronal network models, implementations in Python and C++, and their use in simulators, BMC Neuroscience, 2011. https://doi.org/10.1186/1471-2202-12-S1-P80

Versions [RSS] [faq] 0.1.0 CHANGELOG.md base (>=4.10.0 && <5), hmatrix [details] LicenseRef-GPL Jens Egholm Pedersen Jens Egholm Pedersen Algebra https://github.com/volr/csa#readme https://github.com/volr/csa/issues head: git clone https://github.com/volr/csa by jegp at 2018-06-22T15:17:31Z NixOS:0.1.0 676 total (5 in the last 30 days) (no votes yet) [estimated by Bayesian average] λ λ λ Docs available Last success reported on 2018-06-22

## Modules

[Index]

#### Maintainer's Corner

For package maintainers and hackage trustees

Candidates

[back to package description]

# Connection-set algebra (CSA) library

A library for constructing connection matrices between two collections of elements. Inspired by Mikael Djurfeldt's article from 2012 (Neuroinformatics).

## Introduction

Connection-set algebra is a powerful algebra for describing connections between two elements. This library provides a syntax tree for modeling the set operations, as well as a means to transform the operations into adjacency matrices.

## Installation

This is a library and not an executable. Clone the repository, enter it and run stack build (requires stack).

## Connection-set algebra (CSA)

Say that you have two nodes that connect to each other. In a adjacency matrix this can be described as a full connection like so:

    1 2
+ ———
1 | 1 1
2 | 1 1


In CSA this is simply an AllToAll connection. Similarly a OneToOne connection describes the following adjacency matrix:

    1 2
+ ———
1 | 1 0
2 | 0 1


And here is the algebra part: If we say AllToAll - OneToOne we get:

    1 2
+ ———
1 | 0 1
2 | 1 0


## Contact

Jens Egholm jensegholm@protonmail.com