~nipy-developers/nipy/fff2

« back to all changes in this revision

Viewing changes to core/fff_matrix.c

  • Committer: Bertrand THIRION
  • Date: 2008-04-03 17:29:55 UTC
  • mfrom: (13.1.5 fff2)
  • Revision ID: bt206016@is143015-20080403172955-w7v1pdjdriofvzzs
Merged Alexis'changes

Show diffs side-by-side

added added

removed removed

Lines of Context:
37
37
  return; 
38
38
}
39
39
 
40
 
 
 
40
/* View */ 
 
41
fff_matrix fff_matrix_view(double* data, size_t size1, size_t size2, size_t tda)
 
42
{
 
43
  fff_matrix A; 
 
44
 
 
45
  A.size1 = size1; 
 
46
  A.size2 = size2; 
 
47
  A.tda = tda; 
 
48
  A.owner = 0; 
 
49
  A.data = data; 
 
50
 
 
51
  return A; 
 
52
}
41
53
 
42
54
/* Get element */ 
43
55
double fff_matrix_get (const fff_matrix * A, size_t i, size_t j)
55
67
/* Set all elements */ 
56
68
void fff_matrix_set_all (fff_matrix * A, double a)
57
69
{
58
 
  if ( A->tda == A->size2 ) 
59
 
    memset ( (void*)A->data, a, A->size1*A->size2*sizeof(double) );
60
 
  else {
61
 
    size_t i, j, rA;
62
 
    double *bA;
63
 
    for( i=0, rA=0; i<A->size1; i++, rA+=A->tda ) {
64
 
      bA = A->data + rA;
65
 
      for( j=0; j<A->size2; j++, bA++ ) 
66
 
        *bA = a; 
67
 
    }
 
70
  size_t i, j, rA;
 
71
  double *bA;
 
72
  for( i=0, rA=0; i<A->size1; i++, rA+=A->tda ) {
 
73
    bA = A->data + rA;
 
74
    for( j=0; j<A->size2; j++, bA++ ) 
 
75
      *bA = a; 
68
76
  }
69
77
  return; 
70
78
}
71
79
 
72
80
 
73
81
/* Global scaling */
74
 
void fff_matrix_scale (fff_matrix * A, const double a)
 
82
void fff_matrix_scale (fff_matrix * A, double a)
75
83
{
76
84
  size_t i, j, rA;
77
85
  double *bA;
84
92
}
85
93
 
86
94
/* Add constant */ 
87
 
void fff_matrix_add_constant (fff_matrix * A, const double a)
 
95
void fff_matrix_add_constant (fff_matrix * A, double a)
88
96
{
89
97
  size_t i, j, rA;
90
98
  double *bA;