Comments (2)
Hi, at the moment there are no matrix norms implemented, but only the infinity norm for vectors.
No you can't access the first m*n doubles in the memory, as the actual matrix storage is implementation-dependent.
If you use the column-major matrix format, the matrix is stored one column after the other but there may be some padding after each column for better alignment to memory boundaries.
If you use the panel-major matrix format, the layout is more complicated, and something like block-row-major with column-major within each block-row, plus padding again.
My suggestion would be to use the macro BLASFEO_DMATEL(sA, ai, aj)
which gives you access to an element in a matrix structure regardless of its specific implementation, as there is a different version of this macro for each matrix format, see e.g.
https://github.com/giaf/blasfeo/blob/master/include/blasfeo_common.h#L112
https://github.com/giaf/blasfeo/blob/master/include/blasfeo_common.h#L159
In this way you don't have to worry about the specific matrix format, and the macro is also faster than the function call you mentioned.
As a final suggestion, for performance reasons I would suggest to access the matrix by columns, as this would give a good degree of data locality in both panel- and column-major formats.
from blasfeo.
Very helpful, thank you!
from blasfeo.
Related Issues (20)
- SIGSEGV using hpipm HOT 1
- Bug in blasfeo drowpe?
- Problem with blasfeo_drowpe? HOT 4
- Error on multiple definition of `BLASFEO_PROCESSOR_FEATURES'
- Need to link against math library? HOT 1
- Linker error: SHF_MERGE section size (456) must be a multiple of sh_entsize (32) HOT 4
- Tests fail to build: libblasfeo.so: undefined reference to kernel_dpack_buffer_fn HOT 1
- Incorrect documentation for dtrmm in blasfeo_d_blasfeo_api.h? HOT 3
- blasfeo_dtrmm_rltn not implemented HOT 1
- Missing symbols kernel_dpack_buffer_* in the shared library HOT 2
- Tests fail: error: undefined symbol: blasfeo_sgemm HOT 1
- When can we use parameter as both input and output? HOT 1
- What are m, n, k in dgemm routines? HOT 1
- blasfeo_target.h:1:0: error: unterminated #ifndef HOT 2
- MacOS M2 compiling issue HOT 2
- Calling certain triangular matrices routines leads to `undefined symbol` error HOT 2
- `blasfeo_dtrmm_rlnn` accesses invalid memory with offset on the lower triangular matrix HOT 1
- How can I build BLASFEO and HPIPM for microcontrollers? HOT 1
- what is panel format?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from blasfeo.