| 57 | |
| 58 | template<typename T> |
| 59 | Array<T> getSubArray(const Array<T> &in, const bool copy, uint dim0begin = 0, |
| 60 | uint dim0end = 0, uint dim1begin = 0, uint dim1end = 0, |
| 61 | uint dim2begin = 0, uint dim2end = 0, uint dim3begin = 0, |
| 62 | uint dim3end = 0) { |
| 63 | vector<af_seq> seqs = { |
| 64 | {static_cast<double>(dim0begin), static_cast<double>(dim0end), 1.}, |
| 65 | {static_cast<double>(dim1begin), static_cast<double>(dim1end), 1.}, |
| 66 | {static_cast<double>(dim2begin), static_cast<double>(dim2end), 1.}, |
| 67 | {static_cast<double>(dim3begin), static_cast<double>(dim3end), 1.}}; |
| 68 | return createSubArray<T>(in, seqs, copy); |
| 69 | } |
| 70 | |
| 71 | // Moore-Penrose Pseudoinverse |
| 72 | template<typename T> |