add functions calculate parallel updates neurons, and debug some leak functions
This commit is contained in:
@@ -28,6 +28,11 @@ dimension *
|
||||
create_dim(size_t sz){
|
||||
return CREATE_PERMUTATION_TYPE_SIZE_T(sz);
|
||||
}
|
||||
|
||||
dimension* clone_dim(dimension *dim){
|
||||
return init_copy_dim(dim->perm,dim->size);
|
||||
}
|
||||
|
||||
dimension *
|
||||
create_reverse_dim(size_t sz){
|
||||
dimension *dim = CREATE_PERMUTATION_TYPE_SIZE_T(sz);
|
||||
@@ -40,6 +45,15 @@ void free_dimension(dimension *d){
|
||||
if(d) free_permut_TYPE_SIZE_T(d);
|
||||
}
|
||||
|
||||
bool is_equal_dim(dimension *d0, dimension *d1){
|
||||
if(d0->size != d1->size) return false;
|
||||
if(d0->rank != d1->rank) return false;
|
||||
for(size_t i=0;i<d0->size; ++i)
|
||||
if(d0->perm[i] != d1->perm[i]) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
dimension* sub_copy_minus_dim_head(dimension *root, size_t minusSubdim){
|
||||
if(minusSubdim < (root->size)){
|
||||
dimension *d = INIT_COPY_PERMUTATION_TYPE_SIZE_T(root->perm, (root->size)-minusSubdim);
|
||||
@@ -160,6 +174,16 @@ void increment_dim_var(dimension *d){
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void decrement_dim_var(dimension *d){
|
||||
if(endian){
|
||||
(d->perm[0])--;
|
||||
}
|
||||
else{
|
||||
(d->perm[d->size - 1])--;
|
||||
}
|
||||
}
|
||||
|
||||
void add_dimension(dimension **d, dimension *d0, dimension *d1) {
|
||||
(*d) = create_dim(d0->size + d1->size);
|
||||
for (size_t i = 0; i < d0->size; i++) (*d)->perm[i] = d0->perm[i];
|
||||
|
||||
@@ -20,8 +20,11 @@ dimension * create_dim(size_t size);
|
||||
dimension * create_reverse_dim(size_t size);
|
||||
dimension* init_dim(size_t *t, size_t sz);
|
||||
dimension* init_copy_dim(size_t *t, size_t sz);
|
||||
dimension* clone_dim(dimension *dim);
|
||||
void free_dimension(dimension *d);
|
||||
|
||||
bool is_equal_dim(dimension *d0, dimension *d1);
|
||||
|
||||
dimension* sub_minus_dim_head(dimension *t, size_t minusSubdim);
|
||||
dimension* sub_minus_dim_tail(dimension *t, size_t minusSubdim);
|
||||
dimension* sub_dim_head(dimension *t, size_t subdim);
|
||||
@@ -49,6 +52,7 @@ size_t* CoordFromLin(size_t line, dimension *dim);
|
||||
void vCoordFromLin(size_t *ret, size_t line, dimension *dim );
|
||||
|
||||
void increment_dim_var(dimension *d);
|
||||
void decrement_dim_var(dimension *d);
|
||||
|
||||
struct list_perm_in_dim{
|
||||
size_t index;
|
||||
|
||||
Reference in New Issue
Block a user