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