<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<!--   matobj.xml               GAP documentation        Max Neunhoeffer  -->
<!--                                                                      -->
<!--   Copyright (C) 2011 The GAP Group                                   -->
<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->

<Chapter Label="Matrix objects">
<Heading>Vector and matrix objects</Heading>

This chapter is work in progress. It will eventually describe the new
interface to vector and matrix objects.
<P/>
Traditionally, vectors in &GAP; have been lists and matrices have been 
lists of lists (of equal length). Unfortunately, such lists cannot
store their type and so it is impossible to use the full advantages of
&GAP;'s method selection on them. This situation is unsustainable in the
long run since more special representations (compressed,
sparse, etc.) have already been and even more will be implemented. 
To eventually solve 
this problem, this chapter describes a new programming interface to
vectors and matrices.

<Section>
    <Heading>Fundamental ideas and rules</Heading>

<#Include Label="MatObj_Overview">

</Section>

<Section>
    <Heading>Categories of vectors and matrices</Heading>

</Section>

<Section>
    <Heading>Constructing vector and matrix objects</Heading>
</Section>

<Section>
    <Heading>Operations for row vector objects</Heading>

</Section>

<Section>
    <Heading>Operations for row list matrix objects</Heading>

</Section>

<Section>
    <Heading>Operations for flat matrix objects</Heading>

</Section>

</Chapter>

<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<!-- %% -->
<!-- %E -->

