okay thank you so
is just a quick uh are just a quick introduction to
to the matrix library basically what we
because we need a lot of mess and we're trying to do to decide which matrix library to use a
"'cause" there there are some
i out then mentioned bruce and there's eigen again there's so
a couple of others
the john my stuff but
uh most of these is they're trying to be
kind of um uh like
as much
similar to mark lab or you know
very very know
trying to play like high level
uh a live are so we wanted a really simple low level library
i would we wouldn't do what zero avoid all operator want to you to you know avoid all automatic resizing
all automatic initialisation and stuff like that
i know whether it's yeah
so uh
that's why we decided to to build the matrix library that would
we somehow based on the
based on the uh
and the blast routine because they're fast we used them
uh in our previous projects so
the the
as i set the uh
the the library calls
uh the um at lost or or blast functions
or the for the high level math operations like uh in versions so cholesky decomposition is stuff
we use the lot park
one of one of those implementations
and for the code
okay we also use um
this this at is highly to automatically or uh tuned
a linear algebra
system i don't know
yeah
uh
which
missus some of the a lot implementations so we we we use public domain come from
from the john my project too
um to implement some of that stuff
or is a just a
quick example so it's it's it's template it
uh
yeah it's simply to on on doubles and floats in in
E plus plus
uh basically the basic the basic classes are your so yeah we have the
the matrix
the standard matrix rectangular of a library
uh then we have the vector
uh then we have something S P N T P matrices C so this is something then then mentioned before
so as P user a
uh
symmetric fact matrix so basically uh what you what you do is that if you know that you're matrix is
going to be
uh a symmetric you can you can just or
the the lower trying a sorry yeah you know the a lower triangle of the matrix and
put the coefficients one after another and
and fact that matrix in memory
and uh you but you have to but S P just
tells you that you know that this is going to be symmetrical the same as
T P which is that like triangular back matrix
just know that it's a it's so you have to treat it is a as a triangular matrix matrix with
with the of
what it whatever is above the
the a diagonal of the matrix
set to zero
and i think it is that that
like a uh
really supports and and lastly they support these these these two kind of of matrices and and the coldest is
optimized somehow
um
is just a quick example so the only operators that we use are are for indexing the the um
the structure so
uh you see that we can we can we can create a a vector of floats with the fixed size
then you can
you know iterate over over the elements
uh
you can access
you can access them as i said with the we would be on
we don't use
a square brackets we use normal
rec it's like here
uh
we don't use operators because they're just
difficult to uh to debug and
i mean that would
we wanted to be as as as much
C or C plus plus as possible so
um
everything is everything is called by functions so we see here
you can add
vector and vector and and and that's basically it
um
yeah so there's no orders resizing one uh and anything like that because you normally you have to know what
you're doing so if if if there's something wrong
then
no no no no iterators
uh that's too difficult and and
maybe
yeah but
you can get the wonders directly yeah you can get appointed to the role we get
to the to the beginning of the memory space
the next example so just uh just to show you
uh the format of the for the functions of god
uh you the functions take some uh transcend all trans
um
parameters so that you know if if you wanna
you want the matrix that that you
you put in is a parameter if you want to transpose it or not
um most of these most of these uh functions are really based on the on the
blast cam function because that's that's the real one of them
uh the
the most used
uh
one two so this is this is the format of the gain functions so you you usually you have a
matrix
and you wanna
uh at some multiplication of two other matrices to it while
yeah i mean you know waiting it with the with the matrix itself so
this is something this is something that that that we use a lot
uh
some notes about the about the naming them i guess that's all the document to didn't the
in the docks to jen that that that is on the source forge
uh yeah if you have
i if you wanna if you wanna
multiply two or make some operation on on to same might indices
you use the
the two there so this is just a
just a
naming scheme
uh yet another example from the from the high level so you see that uh
you can you can create a normal matrix a can christa estimate
symmetrical metrical back make she's
uh
you can create them
yeah that's are set again
yeah yeah the symmetric not track here so
so uh
you see that
uh
you you really have a special functions also scatter
six sorry the medics six got a really knows that it it is a
symmetrical back products so it does this
think it effectively stores it effectively
another thing is you can
uh a you can now create a a triangle back format
good for the class P
stuff
so you just take that that to symmetric fact
matrix here
this functional ring knows that
it's so you know
symmetric metric back so
it stores it
in a in a
an efficient way again and it inverts sense me
does either
yeah
so
yeah
uh another think that that it's a what is like sub see so it's basically just a from from the
from the matrix or vector or whatever
there is so uh
these these classes they they you can do that exactly the same stuff
as with the original
matrix clause or or a vector class
so they don't have any
and you resizing or read
reshaping being or or anything like that
only they they they uh they let you do only the
the uh non
resizing and you know
basically
you're just addressing this space that was already pre located by the by the matrix so there's not not nothing
like a muddy the question
yeah this is an example so if you wanna if you wanna address
uh
a sub vector of your of your ten dimensional vector
starting at at a second element then having
tan
elements in in and it so we can you can you can be like this
here's how we how good the
was are you the
you know
index
a a matrix starting at the first
uh at the first row
having
generals uh yeah sorry ten wasn't in total starting at the at the first column
well this is the i mean the second column index and
C style indexing
and uh a yeah you we can just use it
as you would as you with to
a
matrix class
so it's not memory save
uh but that's something that that the C programs usually
C problem is usually do no like
it's it's nothing that you you do a prototype or called some all you
you you you you if you once you start writing in C you you have to be careful about memory
so
i guess that
this is something
this is something
uh quite natural to seek C language
and also there's no representation of of matrix columns like uh
i think
well work
yeah so you you already saw the the the functionality in the example so we have a matrix inversion cholesky
decomposition
as P D
um eigenvalue fast for transform
and uh the nice thing is that uh
there's there's and uh
if
code
uh
included in the pack it's so so whatever we do we always know that
we change the code we know that that that where
i
i
do we support spot press no we don't that's what then all pretty mentioned in the in the uh and
the first part of the talk
because the speech stuff is not
we we don't use spar makes that much
no
and the
i
if you want to at yeah you're welcome yeah please
uh that's something that is because this library reaction than i thing about this library of which i didn't mention
is is so
somehow it an independent in only close the base
uh a class of the of the of the call so if you don't want to use the rest of
the called do you can just
use this
this thing
and it
and it uh
called some some error stuff i don't then maybe you could come on that
at and the base that's in the base so
oh
that is
common to all like
basic uh data types
stuff like that
so i think we
so
input output
that the only operators are really
um
the brackets and and input out you know the the C plus plus i was stream style
so we gonna have a short break can again a allow people to escape the far go through some of
the script
so maybe after that uh
you know three to five minutes for starting yeah