static inline to avoid header-symbol duplication @private
| 941 | // static inline to avoid header-symbol duplication |
| 942 | /// @private |
| 943 | static inline void _setCompMatrFromArr(CompMatr matr, qcomp arr[matr.numRows][matr.numRows]) { |
| 944 | _validateParamsToSetCompMatrFromArr(matr); |
| 945 | |
| 946 | // new ptrs array safely fits in stack, since it's sqrt-smaller than user's passed stack array |
| 947 | qcomp* ptrs[matr.numRows]; |
| 948 | |
| 949 | // collect pointers to each row of arr |
| 950 | for (qindex r=0; r<matr.numRows; r++) |
| 951 | ptrs[r] = arr[r]; |
| 952 | |
| 953 | // array decays to qcomp**, and *FromPtr function re-performs validation (eh) |
| 954 | setCompMatr(matr, ptrs); // validation gauranteed to pass |
| 955 | } |
| 956 | |
| 957 | |
| 958 | // C then overloads setCompMatr() to call the above VLA when given arrays, using C11 Generics. |
no test coverage detected