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