30 size_t elements = Size*(Size+1)/2;
31 size_t headsize = Size *
sizeof(*m);
32 size_t datasize = elements *
sizeof(*(m[0]));
34 m = (
T**)ARB_calloc<char>(headsize+datasize);
35 m[0] = (
T*)(((
char*)m)+headsize);
37 for (
size_t i=1; i<Size; i++) {
46 void set(
size_t i,
size_t j,
T val) {
if (i>j) m[i][j] = val;
else m[j][i] = val; };
49 T get(
size_t i,
size_t j)
const {
if (i>j)
return m[i][j];
else return m[j][i]; };
55 for (
size_t i=0; i<Size; i++) {
56 for (
size_t j=0; j<i; j++) {
57 if (m[i][j] > max) max = m[i][j];
63 size_t size()
const {
return Size; }
68 #error matrix.h included twice
void set(size_t i, size_t j, T val)
symmetric_matrix(size_t Size_)
T fast_get(size_t i, size_t j) const