ruby-mpfi 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
@@ -43,55 +43,54 @@ typedef struct __MPFIMatrix{
43
43
  /* (for example, mpfi_matrix_transpose), */
44
44
  /* you must use differnt pointer for returned value from that of an argument. */
45
45
 
46
- void mpfi_matrix_clear(MPFIMatrix *mat);
47
- void mpfi_matrix_init(MPFIMatrix *mat, int row, int column);
48
- void mpfi_matrix_set_zeros(MPFIMatrix *mat);
49
- void mpfi_matrix_set_element(MPFIMatrix *mat, int row, int col, MPFI *a);
50
- void mpfi_matrix_set(MPFIMatrix *new, MPFIMatrix *x);
51
- void mpfi_matrix_swap(MPFIMatrix *x, MPFIMatrix *y);
52
-
53
- void mpfi_matrix_row(MPFIMatrix *new, MPFIMatrix *x, int row);
54
- void mpfi_matrix_column(MPFIMatrix *new, MPFIMatrix *x, int column);
55
- void mpfi_matrix_transpose(MPFIMatrix *new, MPFIMatrix *x);
56
- void mpfi_matrix_neg(MPFIMatrix *new, MPFIMatrix *x);
57
-
58
- int mpfi_matrix_equal_p(MPFIMatrix *x, MPFIMatrix *y);
59
- void mpfi_matrix_add(MPFIMatrix *new, MPFIMatrix *x, MPFIMatrix *y);
60
- void mpfi_matrix_add_fr(MPFIMatrix *new, MPFIMatrix *x, MPFRMatrix *y);
61
- void mpfi_matrix_sub(MPFIMatrix *new, MPFIMatrix *x, MPFIMatrix *y);
62
- void mpfi_matrix_sub_fr(MPFIMatrix *new, MPFIMatrix *x, MPFRMatrix *y);
63
- void mpfi_matrix_mul(MPFIMatrix *new, MPFIMatrix *x, MPFIMatrix *y);
64
- void mpfi_matrix_mul_fr(MPFIMatrix *new, MPFIMatrix *x, MPFRMatrix *y);
65
- void mpfi_matrix_mul_scalar(MPFIMatrix *new, MPFIMatrix *x, MPFI *scalar);
66
- void mpfi_matrix_div_scalar(MPFIMatrix *new, MPFIMatrix *x, MPFI *scalar);
67
-
68
- int mpfi_matrix_include_p(MPFIMatrix *x, MPFIMatrix *y);
69
- int mpfi_matrix_include_fr_p(MPFIMatrix *x, MPFRMatrix *y);
70
- int mpfi_matrix_strictly_include_p(MPFIMatrix *x, MPFIMatrix *y);
71
- int mpfi_matrix_bounded_p(MPFIMatrix *x);
72
- void mpfi_matrix_mid(MPFRMatrix *ret, MPFIMatrix *x);
73
- void mpfi_matrix_mid_interval(MPFIMatrix *ret, MPFIMatrix *x);
74
- void mpfi_matrix_from_mpfr_matrix(MPFIMatrix *ret, MPFRMatrix *x);
75
- int mpfi_matrix_intersect(MPFIMatrix *ret, MPFIMatrix *x, MPFIMatrix *y);
76
- int mpfi_matrix_union(MPFIMatrix *z, MPFIMatrix *x, MPFIMatrix *y);
77
-
78
- void mpfi_matrix_inner_product(MPFI *pr, MPFIMatrix *x, MPFIMatrix *y);
79
- void mpfi_matrix_vector_distance(MPFI *distance, MPFIMatrix *x, MPFIMatrix *y);
80
- void mpfi_matrix_vector_distance_center_pts(MPFR *distance, MPFIMatrix *x, MPFIMatrix *y);
81
- void mpfi_matrix_vector_norm(MPFI *norm, MPFIMatrix *x);
82
- void mpfi_matrix_max_norm(MPFI *norm, MPFIMatrix *x);
83
- void mpfi_matrix_max_diam_abs(MPFR *diam, MPFIMatrix *x);
46
+ void mpfi_matrix_clear (MPFIMatrix *mat);
47
+ void mpfi_matrix_init (MPFIMatrix *mat, int row, int column);
48
+ void mpfi_matrix_set_zeros (MPFIMatrix *mat);
49
+ void mpfi_matrix_set_element (MPFIMatrix *mat, int row, int col, MPFI *a);
50
+ void mpfi_matrix_set (MPFIMatrix *new, MPFIMatrix *x);
51
+ void mpfi_matrix_swap (MPFIMatrix *x, MPFIMatrix *y);
52
+
53
+ void mpfi_matrix_row (MPFIMatrix *new, MPFIMatrix *x, int row);
54
+ void mpfi_matrix_column (MPFIMatrix *new, MPFIMatrix *x, int column);
55
+ void mpfi_matrix_transpose (MPFIMatrix *new, MPFIMatrix *x);
56
+ void mpfi_matrix_neg (MPFIMatrix *new, MPFIMatrix *x);
57
+
58
+ int mpfi_matrix_equal_p (MPFIMatrix *x, MPFIMatrix *y);
59
+ void mpfi_matrix_add (MPFIMatrix *new, MPFIMatrix *x, MPFIMatrix *y);
60
+ void mpfi_matrix_add_fr (MPFIMatrix *new, MPFIMatrix *x, MPFRMatrix *y);
61
+ void mpfi_matrix_sub (MPFIMatrix *new, MPFIMatrix *x, MPFIMatrix *y);
62
+ void mpfi_matrix_sub_fr (MPFIMatrix *new, MPFIMatrix *x, MPFRMatrix *y);
63
+ void mpfi_matrix_mul (MPFIMatrix *new, MPFIMatrix *x, MPFIMatrix *y);
64
+ void mpfi_matrix_mul_fr (MPFIMatrix *new, MPFIMatrix *x, MPFRMatrix *y);
65
+ void mpfi_matrix_mul_scalar (MPFIMatrix *new, MPFIMatrix *x, MPFI *scalar);
66
+ void mpfi_matrix_div_scalar (MPFIMatrix *new, MPFIMatrix *x, MPFI *scalar);
67
+
68
+ int mpfi_matrix_include_p (MPFIMatrix *x, MPFIMatrix *y);
69
+ int mpfi_matrix_include_fr_p (MPFIMatrix *x, MPFRMatrix *y);
70
+ int mpfi_matrix_strictly_include_p (MPFIMatrix *x, MPFIMatrix *y);
71
+ int mpfi_matrix_bounded_p (MPFIMatrix *x);
72
+ void mpfi_matrix_mid (MPFRMatrix *ret, MPFIMatrix *x);
73
+ void mpfi_matrix_mid_interval (MPFIMatrix *ret, MPFIMatrix *x);
74
+ void mpfi_matrix_from_mpfr_matrix (MPFIMatrix *ret, MPFRMatrix *x);
75
+ int mpfi_matrix_intersect (MPFIMatrix *ret, MPFIMatrix *x, MPFIMatrix *y);
76
+ int mpfi_matrix_union (MPFIMatrix *z, MPFIMatrix *x, MPFIMatrix *y);
77
+
78
+ void mpfi_matrix_inner_product (MPFI *pr, MPFIMatrix *x, MPFIMatrix *y);
79
+ void mpfi_matrix_vector_distance (MPFI *distance, MPFIMatrix *x, MPFIMatrix *y);
80
+ void mpfi_matrix_vector_distance_center_pts (MPFR *distance, MPFIMatrix *x, MPFIMatrix *y);
81
+ void mpfi_matrix_vector_norm (MPFI *norm, MPFIMatrix *x);
82
+ void mpfi_matrix_max_norm (MPFI *norm, MPFIMatrix *x);
83
+ void mpfi_matrix_max_diam_abs (MPFR *diam, MPFIMatrix *x);
84
84
 
85
85
  /* ----------------- vector ---------------- */
86
- void mpfi_col_vector_init(MPFIMatrix *mat, int row);
87
- void mpfi_row_vector_init(MPFIMatrix *mat, int column);
88
- int mpfi_vector_normalize(MPFIMatrix *new, MPFIMatrix *x);
89
- void mpfi_vector_midpoint(MPFIMatrix *new, MPFIMatrix *x, MPFIMatrix *y);
90
- int mpfi_vector_set_length(MPFIMatrix *new, MPFIMatrix *x, MPFR *l);
86
+ void mpfi_col_vector_init (MPFIMatrix *mat, int row);
87
+ void mpfi_row_vector_init (MPFIMatrix *mat, int column);
88
+ int mpfi_vector_normalize (MPFIMatrix *new, MPFIMatrix *x);
89
+ void mpfi_vector_midpoint (MPFIMatrix *new, MPFIMatrix *x, MPFIMatrix *y);
90
+ int mpfi_vector_set_length (MPFIMatrix *new, MPFIMatrix *x, MPFR *l);
91
91
 
92
92
  /* ----------------- square matrix ----------------- */
93
93
  int mpfi_square_matrix_lu_decomp (MPFIMatrix *ret, int *indx, MPFIMatrix *x);
94
- void mpfi_square_matrix_determinant(MPFI *det, MPFIMatrix *x);
95
- void mpfi_square_matrix_qr_decomp(MPFIMatrix *q, MPFIMatrix *r, MPFIMatrix *x);
96
- void mpfi_square_matrix_identity(MPFIMatrix *id);
97
-
94
+ void mpfi_square_matrix_determinant (MPFI *det, MPFIMatrix *x);
95
+ void mpfi_square_matrix_qr_decomp (MPFIMatrix *q, MPFIMatrix *r, MPFIMatrix *x);
96
+ void mpfi_square_matrix_identity (MPFIMatrix *id);
@@ -3,29 +3,29 @@
3
3
  static ID eqq;
4
4
  static VALUE __mpfr_matrix_class__, __mpfi_matrix_class__;
5
5
 
6
- void r_mpfi_matrix_free(void *ptr){
6
+ void r_mpfi_matrix_free (void *ptr) {
7
7
  mpfi_matrix_clear(ptr);
8
8
  free(ptr);
9
9
  }
10
10
 
11
- void r_mpfi_matrix_suitable_matrix_init (VALUE *other, MPFIMatrix **ptr_other, int row, int column){
12
- if(column == 1){
11
+ void r_mpfi_matrix_suitable_matrix_init (VALUE *other, MPFIMatrix **ptr_other, int row, int column) {
12
+ if (column == 1) {
13
13
  r_mpfi_make_col_vector_struct(*other, *ptr_other);
14
14
  mpfi_col_vector_init(*ptr_other, row);
15
- }else if (row == 1){
15
+ } else if (row == 1) {
16
16
  r_mpfi_make_row_vector_struct(*other, *ptr_other);
17
17
  mpfi_row_vector_init(*ptr_other, column);
18
- }else{
19
- if (row == column){
18
+ } else {
19
+ if (row == column) {
20
20
  r_mpfi_make_square_matrix_struct(*other, *ptr_other);
21
- }else{
21
+ } else {
22
22
  r_mpfi_make_matrix_struct(*other, *ptr_other);
23
23
  }
24
24
  mpfi_matrix_init(*ptr_other, row, column);
25
25
  }
26
26
  }
27
27
 
28
- /* VALUE r_mpfi_matrix_copied_robj(VALUE old){ */
28
+ /* VALUE r_mpfi_matrix_copied_robj (VALUE old) { */
29
29
  /* MPFIMatrix *ptr_old, *ptr_ret; */
30
30
  /* r_mpfi_get_matrix_struct(ptr_old, old); */
31
31
  /* VALUE ret; */
@@ -34,7 +34,7 @@ void r_mpfi_matrix_suitable_matrix_init (VALUE *other, MPFIMatrix **ptr_other, i
34
34
  /* return ret; */
35
35
  /* } */
36
36
 
37
- VALUE r_mpfi_matrix_robj(MPFIMatrix *x){
37
+ VALUE r_mpfi_matrix_robj (MPFIMatrix *x) {
38
38
  VALUE ret;
39
39
  MPFIMatrix *ptr_ret;
40
40
  r_mpfi_matrix_suitable_matrix_init (&ret, &ptr_ret, x->row, x->column);
@@ -43,20 +43,20 @@ VALUE r_mpfi_matrix_robj(MPFIMatrix *x){
43
43
  }
44
44
 
45
45
  /* Allocation function for MPFI::Matrix. */
46
- static VALUE r_mpfi_matrix_alloc (VALUE self){
46
+ static VALUE r_mpfi_matrix_alloc (VALUE self) {
47
47
  MPFIMatrix *ptr;
48
48
  r_mpfi_make_matrix_struct(self, ptr);
49
49
  return self;
50
50
  }
51
51
 
52
- /* static void r_mpfi_matrix_init_set_from_rmatrix(MPFIMatrix *x, VALUE src){ */
52
+ /* static void r_mpfi_matrix_init_set_from_rmatrix (MPFIMatrix *x, VALUE src) { */
53
53
  /* MPFIMatrix *ptr_src; */
54
54
  /* r_mpfi_get_matrix_struct(ptr_src, src); */
55
55
  /* mpfi_matrix_init(x, ptr_src->row, ptr_src->column); */
56
56
  /* mpfi_matrix_set(x, ptr_src); */
57
57
  /* } */
58
58
 
59
- static void r_mpfi_matrix_set_initial_value(MPFIMatrix *ptr, int argc, VALUE *argv)
59
+ static void r_mpfi_matrix_set_initial_value (MPFIMatrix *ptr, int argc, VALUE *argv)
60
60
  {
61
61
  int row, column, i, j;
62
62
  VALUE row_ary;
@@ -71,7 +71,8 @@ static void r_mpfi_matrix_set_initial_value(MPFIMatrix *ptr, int argc, VALUE *ar
71
71
  rb_raise(rb_eArgError, "MPFI::Matrix.new needs Array which has arrays of same sizes.");
72
72
  }
73
73
  for (j = 0; j < column; j++) {
74
- r_mpfi_set_robj(mpfi_matrix_get_element(ptr, i, j), rb_ary_entry(row_ary, j));
74
+ volatile VALUE el = rb_ary_entry(row_ary, j);
75
+ r_mpfi_set_robj(mpfi_matrix_get_element(ptr, i, j), el);
75
76
  }
76
77
  }
77
78
  break;
@@ -86,17 +87,17 @@ static void r_mpfi_matrix_set_initial_value(MPFIMatrix *ptr, int argc, VALUE *ar
86
87
  }
87
88
 
88
89
  /* Return new MPFI::Matrix instance. The same arguments as MPFI::Matrix.new is acceptable. */
89
- static VALUE r_mpfi_matrix_global_new(int argc, VALUE *argv, VALUE self)
90
+ static VALUE r_mpfi_matrix_global_new (int argc, VALUE *argv, VALUE self)
90
91
  {
91
92
  MPFIMatrix *ptr;
92
93
  VALUE val;
93
- r_mpfi_make_col_vector_struct(val, ptr);
94
+ r_mpfi_make_matrix_struct(val, ptr);
94
95
  r_mpfi_matrix_set_initial_value(ptr, argc, argv);
95
96
  return val;
96
97
  }
97
98
 
98
99
  /* Initialization function for MPFI::Matrix. */
99
- static VALUE r_mpfi_matrix_initialize (int argc, VALUE *argv, VALUE self){
100
+ static VALUE r_mpfi_matrix_initialize (int argc, VALUE *argv, VALUE self) {
100
101
  MPFIMatrix *ptr;
101
102
  r_mpfi_get_matrix_struct(ptr, self);
102
103
  r_mpfi_matrix_set_initial_value(ptr, argc, argv);
@@ -104,21 +105,21 @@ static VALUE r_mpfi_matrix_initialize (int argc, VALUE *argv, VALUE self){
104
105
  }
105
106
 
106
107
  /* Allocation function for MPFI::SquareMatrix. */
107
- static VALUE r_mpfi_square_matrix_alloc (VALUE self){
108
+ static VALUE r_mpfi_square_matrix_alloc (VALUE self) {
108
109
  MPFIMatrix *ptr;
109
110
  r_mpfi_make_square_matrix_struct(self, ptr);
110
111
  return self;
111
112
  }
112
113
 
113
- static void r_mpfi_square_matrix_set_initial_value(MPFIMatrix *ptr, VALUE arg)
114
+ static void r_mpfi_square_matrix_set_initial_value (MPFIMatrix *ptr, VALUE arg)
114
115
  {
115
116
  int row, column, i, j;
116
117
  VALUE row_ary;
117
- switch(TYPE(arg)){
118
+ switch (TYPE(arg)) {
118
119
  case T_ARRAY:
119
120
  row = RARRAY_LEN(arg);
120
121
  column = RARRAY_LEN(rb_ary_entry(arg, 0));
121
- if(row == column){
122
+ if (row == column) {
122
123
  mpfi_matrix_init(ptr, row, column);
123
124
  for (i = 0; i < row; i++) {
124
125
  row_ary = rb_ary_entry(arg, i);
@@ -129,7 +130,7 @@ static void r_mpfi_square_matrix_set_initial_value(MPFIMatrix *ptr, VALUE arg)
129
130
  r_mpfi_set_robj(mpfi_matrix_get_element(ptr, i, j), rb_ary_entry(row_ary, j));
130
131
  }
131
132
  }
132
- }else{
133
+ } else {
133
134
  rb_raise(rb_eArgError, "MPFI::SquareMatrix.new needs two dimensinal Array which has the same sizes of row and column.");
134
135
  }
135
136
  break;
@@ -145,7 +146,7 @@ static void r_mpfi_square_matrix_set_initial_value(MPFIMatrix *ptr, VALUE arg)
145
146
  }
146
147
 
147
148
  /* Return new MPFI::SquareMatrix instance. The same arguments as MPFI::SquareMatrix.new is acceptable. */
148
- static VALUE r_mpfi_square_matrix_global_new(int argc, VALUE arg)
149
+ static VALUE r_mpfi_square_matrix_global_new (int argc, VALUE arg)
149
150
  {
150
151
  MPFIMatrix *ptr;
151
152
  VALUE val;
@@ -155,7 +156,7 @@ static VALUE r_mpfi_square_matrix_global_new(int argc, VALUE arg)
155
156
  }
156
157
 
157
158
  /* Initialization function for MPFI::SquareMatrix. */
158
- static VALUE r_mpfi_square_matrix_initialize (VALUE self, VALUE arg){
159
+ static VALUE r_mpfi_square_matrix_initialize (VALUE self, VALUE arg) {
159
160
  MPFIMatrix *ptr;
160
161
  r_mpfi_get_matrix_struct(ptr, self);
161
162
  r_mpfi_square_matrix_set_initial_value(ptr, arg);
@@ -163,7 +164,7 @@ static VALUE r_mpfi_square_matrix_initialize (VALUE self, VALUE arg){
163
164
  }
164
165
 
165
166
  /* initialize_copy */
166
- static VALUE r_mpfi_matrix_initialize_copy (VALUE self, VALUE other){
167
+ static VALUE r_mpfi_matrix_initialize_copy (VALUE self, VALUE other) {
167
168
  MPFIMatrix *ptr_self, *ptr_other;
168
169
  r_mpfi_get_matrix_struct(ptr_self, self);
169
170
  r_mpfi_get_matrix_struct(ptr_other, other);
@@ -173,21 +174,22 @@ static VALUE r_mpfi_matrix_initialize_copy (VALUE self, VALUE other){
173
174
  }
174
175
 
175
176
  /* Allocation function for MPFI::ColumnVector. */
176
- static VALUE r_mpfi_col_vector_alloc (VALUE self){
177
+ static VALUE r_mpfi_col_vector_alloc (VALUE self) {
177
178
  MPFIMatrix *ptr;
178
179
  r_mpfi_make_col_vector_struct(self, ptr);
179
180
  return self;
180
181
  }
181
182
 
182
- static void r_mpfi_col_vector_set_initial_value(MPFIMatrix *ptr, VALUE arg)
183
+ static void r_mpfi_col_vector_set_initial_value (MPFIMatrix *ptr, VALUE arg)
183
184
  {
184
185
  int row, i;
185
- switch(TYPE(arg)){
186
+ switch (TYPE(arg)) {
186
187
  case T_ARRAY:
187
188
  row = RARRAY_LEN(arg);
188
189
  mpfi_col_vector_init(ptr, row);
189
190
  for (i = 0; i < row; i++) {
190
- r_mpfi_set_robj(mpfi_matrix_get_ptr(ptr, i), rb_ary_entry(arg, i));
191
+ volatile VALUE el = rb_ary_entry(arg, i);
192
+ r_mpfi_set_robj(mpfi_matrix_get_ptr(ptr, i), el);
191
193
  }
192
194
  break;
193
195
  case T_FIXNUM:
@@ -204,7 +206,7 @@ static void r_mpfi_col_vector_set_initial_value(MPFIMatrix *ptr, VALUE arg)
204
206
  }
205
207
 
206
208
  /* Return new MPFI::ColumnVector instance. The same arguments as MPFI::ColumnVector.new is acceptable. */
207
- static VALUE r_mpfi_col_vector_global_new(int argc, VALUE arg)
209
+ static VALUE r_mpfi_col_vector_global_new (int argc, VALUE arg)
208
210
  {
209
211
  MPFIMatrix *ptr;
210
212
  VALUE val;
@@ -214,7 +216,7 @@ static VALUE r_mpfi_col_vector_global_new(int argc, VALUE arg)
214
216
  }
215
217
 
216
218
  /* Initialization function for MPFI::ColumnVector. */
217
- static VALUE r_mpfi_col_vector_initialize (VALUE self, VALUE arg){
219
+ static VALUE r_mpfi_col_vector_initialize (VALUE self, VALUE arg) {
218
220
  MPFIMatrix *ptr;
219
221
  r_mpfi_get_matrix_struct(ptr, self);
220
222
  r_mpfi_col_vector_set_initial_value(ptr, arg);
@@ -222,21 +224,22 @@ static VALUE r_mpfi_col_vector_initialize (VALUE self, VALUE arg){
222
224
  }
223
225
 
224
226
  /* Allocation function for MPFI::RowVector. */
225
- static VALUE r_mpfi_row_vector_alloc (VALUE self){
227
+ static VALUE r_mpfi_row_vector_alloc (VALUE self) {
226
228
  MPFIMatrix *ptr;
227
229
  r_mpfi_make_row_vector_struct(self, ptr);
228
230
  return self;
229
231
  }
230
232
 
231
- static void r_mpfi_row_vector_set_initial_value(MPFIMatrix *ptr, VALUE arg)
233
+ static void r_mpfi_row_vector_set_initial_value (MPFIMatrix *ptr, VALUE arg)
232
234
  {
233
235
  int column, i;
234
- switch(TYPE(arg)){
236
+ switch (TYPE(arg)) {
235
237
  case T_ARRAY:
236
238
  column = RARRAY_LEN(arg);
237
239
  mpfi_row_vector_init(ptr, column);
238
240
  for (i = 0; i < column; i++) {
239
- r_mpfi_set_robj(mpfi_matrix_get_ptr(ptr, i), rb_ary_entry(arg, i));
241
+ volatile VALUE el = rb_ary_entry(arg, i);
242
+ r_mpfi_set_robj(mpfi_matrix_get_ptr(ptr, i), el);
240
243
  }
241
244
  break;
242
245
  case T_FIXNUM:
@@ -253,7 +256,7 @@ static void r_mpfi_row_vector_set_initial_value(MPFIMatrix *ptr, VALUE arg)
253
256
  }
254
257
 
255
258
  /* Return new MPFI::RowVector instance. The same arguments as MPFI::RowVector.new is acceptable. */
256
- static VALUE r_mpfi_row_vector_global_new(int argc, VALUE arg)
259
+ static VALUE r_mpfi_row_vector_global_new (int argc, VALUE arg)
257
260
  {
258
261
  MPFIMatrix *ptr;
259
262
  VALUE val;
@@ -263,14 +266,14 @@ static VALUE r_mpfi_row_vector_global_new(int argc, VALUE arg)
263
266
  }
264
267
 
265
268
  /* Initialization function for MPFI::RowVector. */
266
- static VALUE r_mpfi_row_vector_initialize (VALUE self, VALUE arg){
269
+ static VALUE r_mpfi_row_vector_initialize (VALUE self, VALUE arg) {
267
270
  MPFIMatrix *ptr;
268
271
  r_mpfi_get_matrix_struct(ptr, self);
269
272
  r_mpfi_row_vector_set_initial_value(ptr, arg);
270
273
  return Qtrue;
271
274
  }
272
275
 
273
- static VALUE r_mpfi_matrix_marshal_dump(VALUE self)
276
+ static VALUE r_mpfi_matrix_marshal_dump (VALUE self)
274
277
  {
275
278
  MPFIMatrix *ptr;
276
279
  int i;
@@ -290,7 +293,7 @@ static VALUE r_mpfi_matrix_marshal_dump(VALUE self)
290
293
  return ret_ary;
291
294
  }
292
295
 
293
- static VALUE r_mpfi_matrix_marshal_load(VALUE self, VALUE dump_ary)
296
+ static VALUE r_mpfi_matrix_marshal_load (VALUE self, VALUE dump_ary)
294
297
  {
295
298
  MPFIMatrix *ptr;
296
299
  int i;
@@ -303,7 +306,7 @@ static VALUE r_mpfi_matrix_marshal_load(VALUE self, VALUE dump_ary)
303
306
  ptr->size = ptr->row * ptr->column;
304
307
  ptr->data = ALLOC_N(MPFI, ptr->size);
305
308
 
306
- for(i = 0; i < ptr->size; i++){
309
+ for (i = 0; i < ptr->size; i++) {
307
310
  dump_element = rb_ary_entry(dump_ary, i + 2);
308
311
  Check_Type(dump_element, T_STRING);
309
312
  dump = RSTRING_PTR(dump_element);
@@ -313,28 +316,28 @@ static VALUE r_mpfi_matrix_marshal_load(VALUE self, VALUE dump_ary)
313
316
  }
314
317
 
315
318
  /* Return size of data array which equals to column * row. */
316
- static VALUE r_mpfi_matrix_size (VALUE self){
319
+ static VALUE r_mpfi_matrix_size (VALUE self) {
317
320
  MPFIMatrix *ptr_self;
318
321
  r_mpfi_get_matrix_struct(ptr_self, self);
319
322
  return INT2FIX(ptr_self->size);
320
323
  }
321
324
 
322
325
  /* Return column size of matrix. */
323
- static VALUE r_mpfi_matrix_column_size (VALUE self){
326
+ static VALUE r_mpfi_matrix_column_size (VALUE self) {
324
327
  MPFIMatrix *ptr_self;
325
328
  r_mpfi_get_matrix_struct(ptr_self, self);
326
329
  return INT2FIX(ptr_self->column);
327
330
  }
328
331
 
329
332
  /* Return row size of matrix. */
330
- static VALUE r_mpfi_matrix_row_size (VALUE self){
333
+ static VALUE r_mpfi_matrix_row_size (VALUE self) {
331
334
  MPFIMatrix *ptr_self;
332
335
  r_mpfi_get_matrix_struct(ptr_self, self);
333
336
  return INT2FIX(ptr_self->row);
334
337
  }
335
338
 
336
339
  /* Return element at _arg_.*/
337
- static VALUE r_mpfi_matrix_at (VALUE self, VALUE arg){
340
+ static VALUE r_mpfi_matrix_at (VALUE self, VALUE arg) {
338
341
  MPFIMatrix *ptr_self;
339
342
  int i;
340
343
  r_mpfi_get_matrix_struct(ptr_self, self);
@@ -345,13 +348,13 @@ static VALUE r_mpfi_matrix_at (VALUE self, VALUE arg){
345
348
  r_mpfi_make_struct_init(ret, ptr_ret);
346
349
  mpfi_set(ptr_ret, ptr_self->data + i);
347
350
  return ret;
348
- }else{
351
+ } else {
349
352
  return Qnil;
350
353
  }
351
354
  }
352
355
 
353
356
  /* Return element with _row_ and _column_.*/
354
- static VALUE r_mpfi_matrix_element (VALUE self, VALUE row, VALUE column){
357
+ static VALUE r_mpfi_matrix_element (VALUE self, VALUE row, VALUE column) {
355
358
  MPFIMatrix *ptr_self;
356
359
  int i, j;
357
360
  r_mpfi_get_matrix_struct(ptr_self, self);
@@ -363,13 +366,13 @@ static VALUE r_mpfi_matrix_element (VALUE self, VALUE row, VALUE column){
363
366
  r_mpfi_make_struct_init(ret, ptr_ret);
364
367
  mpfi_set(ptr_ret, ptr_self->data + i + j * ptr_self->row);
365
368
  return ret;
366
- }else{
369
+ } else {
367
370
  return Qnil;
368
371
  }
369
372
  }
370
373
 
371
374
  /* Set _robj_ to element of which row is _row_ and column is _column_. */
372
- static VALUE r_mpfi_matrix_set_element (VALUE self, VALUE row, VALUE column, VALUE robj){
375
+ static VALUE r_mpfi_matrix_set_element (VALUE self, VALUE row, VALUE column, VALUE robj) {
373
376
  MPFIMatrix *ptr_self;
374
377
  int i, j;
375
378
  r_mpfi_get_matrix_struct(ptr_self, self);
@@ -382,40 +385,42 @@ static VALUE r_mpfi_matrix_set_element (VALUE self, VALUE row, VALUE column, VAL
382
385
  }
383
386
 
384
387
  /* Evaluate block with each element of matrix. */
385
- static VALUE r_mpfi_matrix_each_element (VALUE self){
388
+ static VALUE r_mpfi_matrix_each_element (VALUE self) {
386
389
  MPFIMatrix *ptr_self;
387
390
  VALUE ret;
388
391
  int i, j;
392
+ RETURN_ENUMERATOR(self, 0, NULL);
389
393
  r_mpfi_get_matrix_struct(ptr_self, self);
390
394
  ret = Qnil;
391
395
  for (i = 0; i < ptr_self->row; i++) {
392
396
  for (j = 0; j < ptr_self->column; j++) {
393
- volatile VALUE arg = r_mpfi_make_new_fi_obj(ptr_self->data + i + j * ptr_self->row);
394
- ret = rb_yield(arg);
397
+ volatile VALUE el = r_mpfi_make_new_fi_obj(ptr_self->data + i + j * ptr_self->row);
398
+ ret = rb_yield(el);
395
399
  }
396
400
  }
397
401
  return ret;
398
402
  }
399
403
 
400
404
  /* Evaluate block with each element and its index. */
401
- static VALUE r_mpfi_matrix_each_element_with_index (VALUE self){
405
+ static VALUE r_mpfi_matrix_each_element_with_index (VALUE self) {
402
406
  MPFIMatrix *ptr_self;
403
407
  VALUE ret, tmp_i;
404
408
  int i, j;
409
+ RETURN_ENUMERATOR(self, 0, NULL);
405
410
  r_mpfi_get_matrix_struct(ptr_self, self);
406
411
  ret = Qnil;
407
412
  for (i = 0; i < ptr_self->row; i++) {
408
413
  tmp_i = INT2NUM(i);
409
414
  for (j = 0; j < ptr_self->column; j++) {
410
- volatile VALUE arg = r_mpfi_make_new_fi_obj(ptr_self->data + i + j * ptr_self->row);
411
- ret = rb_yield(rb_ary_new3(3, arg, tmp_i, INT2NUM(j)));
415
+ volatile VALUE el = r_mpfi_make_new_fi_obj(ptr_self->data + i + j * ptr_self->row);
416
+ ret = rb_yield(rb_ary_new3(3, el, tmp_i, INT2NUM(j)));
412
417
  }
413
418
  }
414
419
  return ret;
415
420
  }
416
421
 
417
422
  /* Return one dimensinal array which has strings converted elements to. */
418
- static VALUE r_mpfi_matrix_str_ary_for_inspect(VALUE self){
423
+ static VALUE r_mpfi_matrix_str_ary_for_inspect (VALUE self) {
419
424
  MPFIMatrix *ptr_self;
420
425
  char *tmp_str;
421
426
  VALUE ret_ary;
@@ -423,8 +428,8 @@ static VALUE r_mpfi_matrix_str_ary_for_inspect(VALUE self){
423
428
  r_mpfi_get_matrix_struct(ptr_self, self);
424
429
  ret_ary = rb_ary_new2(ptr_self->size);
425
430
  for (i = 0; i < ptr_self->size; i++) {
426
- if(!mpfr_asprintf(&tmp_str, "%.Re %.Re",
427
- r_mpfi_left_ptr((ptr_self->data + i)), r_mpfi_right_ptr(ptr_self->data + i))) {
431
+ if (!mpfr_asprintf(&tmp_str, "%.Re %.Re",
432
+ r_mpfi_left_ptr((ptr_self->data + i)), r_mpfi_right_ptr(ptr_self->data + i))) {
428
433
  rb_raise(rb_eFatal, "Can not allocate a string by mpfr_asprintf.");
429
434
  }
430
435
  rb_ary_store(ret_ary, i, rb_str_new2(tmp_str));
@@ -434,20 +439,20 @@ static VALUE r_mpfi_matrix_str_ary_for_inspect(VALUE self){
434
439
  }
435
440
 
436
441
  /* Return two dimensinal array which has strings converted elements to. */
437
- static VALUE r_mpfi_matrix_str_ary_for_inspect2(VALUE self){
442
+ static VALUE r_mpfi_matrix_str_ary_for_inspect2 (VALUE self) {
438
443
  MPFIMatrix *ptr_self;
439
444
  char *tmp_str;
440
445
  int i, j;
441
446
  VALUE *ary, ret_ary;
442
447
  r_mpfi_get_matrix_struct(ptr_self, self);
443
448
  ary = ALLOC_N(VALUE, ptr_self->row);
444
- for(i = 0; i < ptr_self->row; i++){
449
+ for (i = 0; i < ptr_self->row; i++) {
445
450
  ary[i] = rb_ary_new();
446
451
  }
447
452
  for (i = 0; i < ptr_self->size; i += ptr_self->row) {
448
453
  for (j = 0; j < ptr_self->row; j++) {
449
- if(!mpfr_asprintf(&tmp_str, "%.Re %.Re",
450
- r_mpfi_left_ptr((ptr_self->data + i + j)), r_mpfi_right_ptr(ptr_self->data + i + j))) {
454
+ if (!mpfr_asprintf(&tmp_str, "%.Re %.Re",
455
+ r_mpfi_left_ptr((ptr_self->data + i + j)), r_mpfi_right_ptr(ptr_self->data + i + j))) {
451
456
  rb_raise(rb_eFatal, "Can not allocate a string by mpfr_asprintf.");
452
457
  }
453
458
  rb_ary_push(ary[j], rb_str_new2(tmp_str));
@@ -459,14 +464,14 @@ static VALUE r_mpfi_matrix_str_ary_for_inspect2(VALUE self){
459
464
  return ret_ary;
460
465
  }
461
466
 
462
- static VALUE r_mpfi_matrix_to_str_ary(VALUE self){
467
+ static VALUE r_mpfi_matrix_to_str_ary (VALUE self) {
463
468
  MPFIMatrix *ptr_self;
464
469
  char *tmp_str1, *tmp_str2;
465
470
  int i, j;
466
471
  VALUE *ary, ret_ary;
467
472
  r_mpfi_get_matrix_struct(ptr_self, self);
468
473
  ary = ALLOC_N(VALUE, ptr_self->row);
469
- for(i = 0; i < ptr_self->row; i++){
474
+ for (i = 0; i < ptr_self->row; i++) {
470
475
  ary[i] = rb_ary_new();
471
476
  }
472
477
  for (i = 0; i < ptr_self->size; i += ptr_self->row) {
@@ -487,7 +492,7 @@ static VALUE r_mpfi_matrix_to_str_ary(VALUE self){
487
492
  return ret_ary;
488
493
  }
489
494
 
490
- static VALUE r_mpfi_matrix_to_strf_ary(VALUE self, VALUE format_str){
495
+ static VALUE r_mpfi_matrix_to_strf_ary (VALUE self, VALUE format_str) {
491
496
  MPFIMatrix *ptr_self;
492
497
  char *tmp_str1, *tmp_str2, *format;
493
498
  int i, j;
@@ -495,15 +500,15 @@ static VALUE r_mpfi_matrix_to_strf_ary(VALUE self, VALUE format_str){
495
500
  r_mpfi_get_matrix_struct(ptr_self, self);
496
501
  format = StringValuePtr(format_str);
497
502
  ary = ALLOC_N(VALUE, ptr_self->row);
498
- for(i = 0; i < ptr_self->row; i++){
503
+ for (i = 0; i < ptr_self->row; i++) {
499
504
  ary[i] = rb_ary_new();
500
505
  }
501
506
  for (i = 0; i < ptr_self->size; i += ptr_self->row) {
502
507
  for (j = 0; j < ptr_self->row; j++) {
503
- if(!mpfr_asprintf(&tmp_str1, format, r_mpfi_left_ptr((ptr_self->data + i + j)))) {
508
+ if (!mpfr_asprintf(&tmp_str1, format, r_mpfi_left_ptr((ptr_self->data + i + j)))) {
504
509
  rb_raise(rb_eFatal, "Can not allocate a string by mpfr_asprintf.");
505
510
  }
506
- if(!mpfr_asprintf(&tmp_str2, format, r_mpfi_right_ptr(ptr_self->data + i + j))) {
511
+ if (!mpfr_asprintf(&tmp_str2, format, r_mpfi_right_ptr(ptr_self->data + i + j))) {
507
512
  rb_raise(rb_eFatal, "Can not allocate a string by mpfr_asprintf.");
508
513
  }
509
514
  rb_ary_push(ary[j], rb_ary_new3(2, rb_str_new2(tmp_str1), rb_str_new2(tmp_str2)));
@@ -516,7 +521,7 @@ static VALUE r_mpfi_matrix_to_strf_ary(VALUE self, VALUE format_str){
516
521
  return ret_ary;
517
522
  }
518
523
 
519
- static VALUE r_mpfi_matrix_to_array(VALUE self){
524
+ static VALUE r_mpfi_matrix_to_array (VALUE self) {
520
525
  MPFIMatrix *ptr_self;
521
526
  int i;
522
527
  VALUE ret_ary;
@@ -528,13 +533,13 @@ static VALUE r_mpfi_matrix_to_array(VALUE self){
528
533
  return ret_ary;
529
534
  }
530
535
 
531
- static VALUE r_mpfi_matrix_to_array2(VALUE self){
536
+ static VALUE r_mpfi_matrix_to_array2 (VALUE self) {
532
537
  MPFIMatrix *ptr_self;
533
538
  int i, j;
534
539
  VALUE *ary, ret_ary;
535
540
  r_mpfi_get_matrix_struct(ptr_self, self);
536
541
  ary = ALLOC_N(VALUE, ptr_self->row);
537
- for(i = 0; i < ptr_self->row; i++){
542
+ for (i = 0; i < ptr_self->row; i++) {
538
543
  ary[i] = rb_ary_new();
539
544
  }
540
545
  for (i = 0; i < ptr_self->size; i += ptr_self->row) {
@@ -553,11 +558,11 @@ static VALUE r_mpfi_matrix_row (VALUE self, VALUE arg) {
553
558
  VALUE ret;
554
559
  r_mpfi_get_matrix_struct(ptr_self, self);
555
560
  num = NUM2INT(arg);
556
- if(num < ptr_self->row){
561
+ if (num < ptr_self->row) {
557
562
  r_mpfi_matrix_suitable_matrix_init (&ret, &ptr_ret, 1, ptr_self->column);
558
563
  mpfi_matrix_row(ptr_ret, ptr_self, num);
559
564
  return ret;
560
- }else{
565
+ } else {
561
566
  return Qnil;
562
567
  }
563
568
  }
@@ -568,17 +573,17 @@ static VALUE r_mpfi_matrix_column (VALUE self, VALUE arg) {
568
573
  VALUE ret;
569
574
  r_mpfi_get_matrix_struct(ptr_self, self);
570
575
  num = NUM2INT(arg);
571
- if(num < ptr_self->column){
576
+ if (num < ptr_self->column) {
572
577
  r_mpfi_matrix_suitable_matrix_init (&ret, &ptr_ret, ptr_self->row, 1);
573
578
  mpfi_matrix_column(ptr_ret, ptr_self, num);
574
579
  return ret;
575
- }else{
580
+ } else {
576
581
  return Qnil;
577
582
  }
578
583
  }
579
584
 
580
585
  /* Return transposed matrix which is new object. */
581
- static VALUE r_mpfi_matrix_transpose (VALUE self){
586
+ static VALUE r_mpfi_matrix_transpose (VALUE self) {
582
587
  MPFIMatrix *ptr_self, *ptr_ret;
583
588
  VALUE ret;
584
589
  r_mpfi_get_matrix_struct(ptr_self, self);
@@ -588,7 +593,7 @@ static VALUE r_mpfi_matrix_transpose (VALUE self){
588
593
  }
589
594
 
590
595
  /* Transpose self. This method is destroying method. */
591
- static VALUE r_mpfi_matrix_transpose2 (VALUE self){
596
+ static VALUE r_mpfi_matrix_transpose2 (VALUE self) {
592
597
  MPFIMatrix *ptr_self, tmp;
593
598
  int i;
594
599
  r_mpfi_get_matrix_struct(ptr_self, self);
@@ -605,7 +610,7 @@ static VALUE r_mpfi_matrix_transpose2 (VALUE self){
605
610
  }
606
611
 
607
612
  /* Return transposed matrix which is new object. */
608
- static VALUE r_mpfi_matrix_neg (VALUE self){
613
+ static VALUE r_mpfi_matrix_neg (VALUE self) {
609
614
  MPFIMatrix *ptr_self, *ptr_ret;
610
615
  VALUE ret;
611
616
  r_mpfi_get_matrix_struct(ptr_self, self);
@@ -616,7 +621,7 @@ static VALUE r_mpfi_matrix_neg (VALUE self){
616
621
 
617
622
 
618
623
  /* Return true if all elements of _self_ equal to corresponding elements of _other_. */
619
- static VALUE r_mpfi_matrix_equal_p (VALUE self, VALUE other){
624
+ static VALUE r_mpfi_matrix_equal_p (VALUE self, VALUE other) {
620
625
  MPFIMatrix *ptr_self, *ptr_other;
621
626
  r_mpfi_get_matrix_struct(ptr_self, self);
622
627
  r_mpfi_get_matrix_struct(ptr_other, other);
@@ -627,7 +632,7 @@ static VALUE r_mpfi_matrix_equal_p (VALUE self, VALUE other){
627
632
  }
628
633
 
629
634
  /* Return _self_ + _other_. */
630
- static VALUE r_mpfi_matrix_add (VALUE self, VALUE other){
635
+ static VALUE r_mpfi_matrix_add (VALUE self, VALUE other) {
631
636
  MPFIMatrix *ptr_self, *ptr_other, *ptr_ret;
632
637
  VALUE ret;
633
638
  r_mpfi_get_matrix_struct(ptr_self, self);
@@ -635,45 +640,45 @@ static VALUE r_mpfi_matrix_add (VALUE self, VALUE other){
635
640
  if (ptr_self->column == ptr_other->column && ptr_self->row == ptr_other->row) {
636
641
  r_mpfi_matrix_suitable_matrix_init (&ret, &ptr_ret, ptr_self->row, ptr_self->column);
637
642
  mpfi_matrix_add(ptr_ret, ptr_self, ptr_other);
638
- }else{
643
+ } else {
639
644
  rb_raise(rb_eArgError, "Matrixes must have same size.");
640
645
  }
641
646
  return ret;
642
647
  }
643
648
 
644
649
  /* Return _self_ + _other_ which is MPFI::Matrix. */
645
- static VALUE r_mpfi_matrix_add2 (VALUE self, VALUE other){
650
+ static VALUE r_mpfi_matrix_add2 (VALUE self, VALUE other) {
646
651
  MPFIMatrix *ptr_self, *ptr_ret;
647
652
  VALUE ret;
648
653
  r_mpfi_get_matrix_struct(ptr_self, self);
649
654
  r_mpfi_make_matrix_struct(ret, ptr_ret);
650
655
 
651
- if(RTEST(rb_funcall(__mpfi_matrix_class__, eqq, 1, other))){
656
+ if (RTEST(rb_funcall(__mpfi_matrix_class__, eqq, 1, other))) {
652
657
  MPFIMatrix *ptr_other;
653
658
  r_mpfi_get_matrix_struct(ptr_other, other);
654
659
  if (ptr_self->column == ptr_other->column && ptr_self->row == ptr_other->row) {
655
660
  r_mpfi_matrix_suitable_matrix_init (&ret, &ptr_ret, ptr_self->row, ptr_self->column);
656
661
  mpfi_matrix_add(ptr_ret, ptr_self, ptr_other);
657
- }else{
662
+ } else {
658
663
  rb_raise(rb_eArgError, "Matrixes must have same size.");
659
664
  }
660
- }else if(RTEST(rb_funcall(__mpfr_matrix_class__, eqq, 1, other))){
665
+ } else if (RTEST(rb_funcall(__mpfr_matrix_class__, eqq, 1, other))) {
661
666
  MPFRMatrix *ptr_other;
662
667
  r_mpfr_get_matrix_struct(ptr_other, other);
663
668
  if (ptr_self->column == ptr_other->column && ptr_self->row == ptr_other->row) {
664
669
  r_mpfi_matrix_suitable_matrix_init (&ret, &ptr_ret, ptr_self->row, ptr_self->column);
665
670
  mpfi_matrix_add_fr(ptr_ret, ptr_self, ptr_other);
666
- }else{
671
+ } else {
667
672
  rb_raise(rb_eArgError, "Matrixes must have same size.");
668
- }
669
- }else{
673
+ }
674
+ } else {
670
675
  rb_raise(rb_eArgError, "Argument matrix must be an instance of MPFI::Matrix or MPFR::Matrix.");
671
676
  }
672
677
  return ret;
673
678
  }
674
679
 
675
680
  /* Return _self_ - _other_. */
676
- static VALUE r_mpfi_matrix_sub (VALUE self, VALUE other){
681
+ static VALUE r_mpfi_matrix_sub (VALUE self, VALUE other) {
677
682
  MPFIMatrix *ptr_self, *ptr_other, *ptr_ret;
678
683
  VALUE ret;
679
684
  r_mpfi_get_matrix_struct(ptr_self, self);
@@ -682,120 +687,120 @@ static VALUE r_mpfi_matrix_sub (VALUE self, VALUE other){
682
687
  if (ptr_self->column == ptr_other->column && ptr_self->row == ptr_other->row) {
683
688
  r_mpfi_matrix_suitable_matrix_init (&ret, &ptr_ret, ptr_self->row, ptr_self->column);
684
689
  mpfi_matrix_sub(ptr_ret, ptr_self, ptr_other);
685
- }else{
690
+ } else {
686
691
  rb_raise(rb_eArgError, "Matrixes must have same size.");
687
692
  }
688
693
  return ret;
689
694
  }
690
695
 
691
696
  /* Return _self_ - _other_ which is MPFI::Matrix. */
692
- static VALUE r_mpfi_matrix_sub2 (VALUE self, VALUE other){
697
+ static VALUE r_mpfi_matrix_sub2 (VALUE self, VALUE other) {
693
698
  MPFIMatrix *ptr_self, *ptr_ret;
694
699
  VALUE ret;
695
700
  r_mpfi_get_matrix_struct(ptr_self, self);
696
701
  r_mpfi_make_matrix_struct(ret, ptr_ret);
697
702
 
698
- if(RTEST(rb_funcall(__mpfi_matrix_class__, eqq, 1, other))){
703
+ if (RTEST(rb_funcall(__mpfi_matrix_class__, eqq, 1, other))) {
699
704
  MPFIMatrix *ptr_other;
700
705
  r_mpfi_get_matrix_struct(ptr_other, other);
701
706
  if (ptr_self->column == ptr_other->column && ptr_self->row == ptr_other->row) {
702
707
  r_mpfi_matrix_suitable_matrix_init (&ret, &ptr_ret, ptr_self->row, ptr_self->column);
703
708
  mpfi_matrix_sub(ptr_ret, ptr_self, ptr_other);
704
- }else{
709
+ } else {
705
710
  rb_raise(rb_eArgError, "Matrixes must have same size.");
706
711
  }
707
- }else if(RTEST(rb_funcall(__mpfr_matrix_class__, eqq, 1, other))){
712
+ } else if (RTEST(rb_funcall(__mpfr_matrix_class__, eqq, 1, other))) {
708
713
  MPFRMatrix *ptr_other;
709
714
  r_mpfr_get_matrix_struct(ptr_other, other);
710
715
  if (ptr_self->column == ptr_other->column && ptr_self->row == ptr_other->row) {
711
716
  r_mpfi_matrix_suitable_matrix_init (&ret, &ptr_ret, ptr_self->row, ptr_self->column);
712
717
  mpfi_matrix_sub_fr(ptr_ret, ptr_self, ptr_other);
713
- }else{
718
+ } else {
714
719
  rb_raise(rb_eArgError, "Matrixes must have same size.");
715
- }
716
- }else{
720
+ }
721
+ } else {
717
722
  rb_raise(rb_eArgError, "Argument matrix must be an instance of MPFI::Matrix or MPFR::Matrix.");
718
723
  }
719
724
  return ret;
720
725
  }
721
726
 
722
- static VALUE r_mpfi_matrix_vector_inner_product (VALUE self, VALUE arg){
727
+ static VALUE r_mpfi_matrix_vector_inner_product (VALUE self, VALUE arg) {
723
728
  MPFIMatrix *ptr_self, *ptr_arg;
724
729
  VALUE ret;
725
730
  MPFI *ptr_ret;
726
731
  r_mpfi_get_matrix_struct(ptr_self, self);
727
732
  r_mpfi_get_matrix_struct(ptr_arg, arg);
728
733
  r_mpfi_make_struct_init(ret, ptr_ret);
729
- if(ptr_self->size == ptr_arg->size){
734
+ if (ptr_self->size == ptr_arg->size) {
730
735
  mpfi_matrix_inner_product(ptr_ret, ptr_self, ptr_arg);
731
- }else{
736
+ } else {
732
737
  rb_raise(rb_eArgError, "Vectors must have same size.");
733
738
  }
734
739
  return ret;
735
740
  }
736
741
 
737
742
  /* Return _self_ * _other_. */
738
- static VALUE r_mpfi_matrix_mul_matrix (VALUE self, VALUE other){
743
+ static VALUE r_mpfi_matrix_mul_matrix (VALUE self, VALUE other) {
739
744
  MPFIMatrix *ptr_self, *ptr_other, *ptr_ret;
740
745
  VALUE ret;
741
746
  r_mpfi_get_matrix_struct(ptr_self, self);
742
747
  r_mpfi_get_matrix_struct(ptr_other, other);
743
748
  r_mpfi_make_matrix_struct(ret, ptr_ret);
744
749
  if (ptr_self->column == ptr_other->row) {
745
- if((ptr_other->column == 1) && (ptr_self->row == 1)){
750
+ if ((ptr_other->column == 1) && (ptr_self->row == 1)) {
746
751
  ret = r_mpfi_matrix_vector_inner_product(self, other);
747
- }else{
752
+ } else {
748
753
  r_mpfi_matrix_suitable_matrix_init (&ret, &ptr_ret, ptr_self->row, ptr_other->column);
749
754
  mpfi_matrix_mul(ptr_ret, ptr_self, ptr_other);
750
755
  }
751
- }else{
756
+ } else {
752
757
  rb_raise(rb_eArgError, "Row size of first matrixes must be same as colmun size of second matrixes.");
753
758
  }
754
759
  return ret;
755
760
  }
756
761
 
757
762
  /* Return _self_ * _other_ which is MPFI::Matrix. */
758
- static VALUE r_mpfi_matrix_mul_matrix2 (VALUE self, VALUE other){
763
+ static VALUE r_mpfi_matrix_mul_matrix2 (VALUE self, VALUE other) {
759
764
  MPFIMatrix *ptr_self, *ptr_ret;
760
765
  VALUE ret;
761
766
  r_mpfi_get_matrix_struct(ptr_self, self);
762
767
  r_mpfi_make_matrix_struct(ret, ptr_ret);
763
768
 
764
- if(RTEST(rb_funcall(__mpfi_matrix_class__, eqq, 1, other))){
769
+ if (RTEST(rb_funcall(__mpfi_matrix_class__, eqq, 1, other))) {
765
770
  MPFIMatrix *ptr_other;
766
771
  r_mpfi_get_matrix_struct(ptr_other, other);
767
772
  if (ptr_self->column == ptr_other->row) {
768
773
  r_mpfi_matrix_suitable_matrix_init (&ret, &ptr_ret, ptr_self->row, ptr_other->column);
769
774
  mpfi_matrix_mul(ptr_ret, ptr_self, ptr_other);
770
- }else{
775
+ } else {
771
776
  rb_raise(rb_eArgError, "Row size of first matrixes must be same as colmun size of second matrixes.");
772
777
  }
773
- }else if(RTEST(rb_funcall(__mpfr_matrix_class__, eqq, 1, other))){
778
+ } else if (RTEST(rb_funcall(__mpfr_matrix_class__, eqq, 1, other))) {
774
779
  MPFRMatrix *ptr_other;
775
780
  r_mpfr_get_matrix_struct(ptr_other, other);
776
781
  if (ptr_self->column == ptr_other->row) {
777
782
  r_mpfi_matrix_suitable_matrix_init (&ret, &ptr_ret, ptr_self->row, ptr_other->column);
778
783
  mpfi_matrix_mul_fr(ptr_ret, ptr_self, ptr_other);
779
- }else{
784
+ } else {
780
785
  rb_raise(rb_eArgError, "Row size of first matrixes must be same as colmun size of second matrixes.");
781
- }
782
- }else{
786
+ }
787
+ } else {
783
788
  rb_raise(rb_eArgError, "Argument matrix must be an instance of MPFI::Matrix or MPFR::Matrix.");
784
789
  }
785
790
  return ret;
786
791
  }
787
792
 
788
793
  /* Return _scalar_ * _self_, where _scalar_ is scalar and _self_ is matrix. */
789
- static VALUE r_mpfi_matrix_mul_scalar (VALUE self, VALUE scalar){
794
+ static VALUE r_mpfi_matrix_mul_scalar (VALUE self, VALUE scalar) {
790
795
  MPFIMatrix *ptr_self, *ptr_ret;
791
796
  MPFI *ptr_scalar;
792
797
  VALUE ret;
793
798
  r_mpfi_get_matrix_struct(ptr_self, self);
794
799
  r_mpfi_matrix_suitable_matrix_init (&ret, &ptr_ret, ptr_self->row, ptr_self->column);
795
- if(RTEST(rb_funcall(r_mpfi_class, eqq, 1, scalar))){
800
+ if (RTEST(rb_funcall(r_mpfi_class, eqq, 1, scalar))) {
796
801
  r_mpfi_get_struct(ptr_scalar, scalar);
797
802
  mpfi_matrix_mul_scalar(ptr_ret, ptr_self, ptr_scalar);
798
- }else{
803
+ } else {
799
804
  r_mpfi_temp_alloc_init(ptr_scalar);
800
805
  r_mpfi_set_robj(ptr_scalar, scalar);
801
806
  mpfi_matrix_mul_scalar(ptr_ret, ptr_self, ptr_scalar);
@@ -804,16 +809,16 @@ static VALUE r_mpfi_matrix_mul_scalar (VALUE self, VALUE scalar){
804
809
  return ret;
805
810
  }
806
811
 
807
- static VALUE r_mpfi_matrix_div_scalar (VALUE self, VALUE scalar){
812
+ static VALUE r_mpfi_matrix_div_scalar (VALUE self, VALUE scalar) {
808
813
  MPFIMatrix *ptr_self, *ptr_ret;
809
814
  MPFI *ptr_scalar;
810
815
  VALUE ret;
811
816
  r_mpfi_get_matrix_struct(ptr_self, self);
812
817
  r_mpfi_matrix_suitable_matrix_init (&ret, &ptr_ret, ptr_self->row, ptr_self->column);
813
- if(RTEST(rb_funcall(r_mpfi_class, eqq, 1, scalar))){
818
+ if (RTEST(rb_funcall(r_mpfi_class, eqq, 1, scalar))) {
814
819
  r_mpfi_get_struct(ptr_scalar, scalar);
815
820
  mpfi_matrix_div_scalar(ptr_ret, ptr_self, ptr_scalar);
816
- }else{
821
+ } else {
817
822
  r_mpfi_temp_alloc_init(ptr_scalar);
818
823
  r_mpfi_set_robj(ptr_scalar, scalar);
819
824
  mpfi_matrix_div_scalar(ptr_ret, ptr_self, ptr_scalar);
@@ -823,41 +828,41 @@ static VALUE r_mpfi_matrix_div_scalar (VALUE self, VALUE scalar){
823
828
  }
824
829
 
825
830
 
826
- static VALUE r_mpfi_matrix_include_p (VALUE self, VALUE other){
831
+ static VALUE r_mpfi_matrix_include_p (VALUE self, VALUE other) {
827
832
  MPFIMatrix *ptr_self;
828
833
  VALUE ret;
829
834
  r_mpfi_get_matrix_struct(ptr_self, self);
830
835
  ret = Qnil;
831
- if(RTEST(rb_funcall(r_mpfi_matrix, eqq, 1, other))){
836
+ if (RTEST(rb_funcall(r_mpfi_matrix, eqq, 1, other))) {
832
837
  MPFIMatrix *ptr_other;
833
838
  r_mpfi_get_matrix_struct(ptr_other, other);
834
- if(mpfi_matrix_include_p(ptr_self, ptr_other) == 0){
839
+ if (mpfi_matrix_include_p(ptr_self, ptr_other) == 0) {
835
840
  ret = Qtrue;
836
841
  }
837
- }else if(RTEST(rb_funcall(r_mpfr_matrix, eqq, 1, other))){
842
+ } else if (RTEST(rb_funcall(r_mpfr_matrix, eqq, 1, other))) {
838
843
  MPFRMatrix *ptr_other;
839
844
  r_mpfr_get_matrix_struct(ptr_other, other);
840
- if(mpfi_matrix_include_fr_p(ptr_self, ptr_other) == 0){
845
+ if (mpfi_matrix_include_fr_p(ptr_self, ptr_other) == 0) {
841
846
  ret = Qtrue;
842
847
  }
843
- }else{
848
+ } else {
844
849
  rb_raise(rb_eArgError, "Argument must be MPFI::Matrix or MPFR::Matrix instance.");
845
850
  }
846
851
  return ret;
847
852
  }
848
853
 
849
- static VALUE r_mpfi_matrix_strictly_include_p (VALUE self, VALUE other){
854
+ static VALUE r_mpfi_matrix_strictly_include_p (VALUE self, VALUE other) {
850
855
  MPFIMatrix *ptr_self;
851
856
  VALUE ret;
852
857
  r_mpfi_get_matrix_struct(ptr_self, self);
853
858
  ret = Qnil;
854
- if(RTEST(rb_funcall(r_mpfi_matrix, eqq, 1, other))){
859
+ if (RTEST(rb_funcall(r_mpfi_matrix, eqq, 1, other))) {
855
860
  MPFIMatrix *ptr_other;
856
861
  r_mpfi_get_matrix_struct(ptr_other, other);
857
- if(mpfi_matrix_strictly_include_p(ptr_self, ptr_other) == 0){
862
+ if (mpfi_matrix_strictly_include_p(ptr_self, ptr_other) == 0) {
858
863
  ret = Qtrue;
859
864
  }
860
- }else{
865
+ } else {
861
866
  rb_raise(rb_eArgError, "Argument must be MPFI::Matrix instance.");
862
867
  }
863
868
  return ret;
@@ -866,14 +871,14 @@ static VALUE r_mpfi_matrix_strictly_include_p (VALUE self, VALUE other){
866
871
  static VALUE r_mpfi_matrix_bounded_p (VALUE self) {
867
872
  MPFIMatrix *ptr_self;
868
873
  r_mpfi_get_matrix_struct(ptr_self, self);
869
- if(mpfi_matrix_bounded_p(ptr_self) == 0){
874
+ if (mpfi_matrix_bounded_p(ptr_self) == 0) {
870
875
  return Qtrue;
871
- }else{
876
+ } else {
872
877
  return Qnil;
873
878
  }
874
879
  }
875
880
 
876
- static VALUE r_mpfi_matrix_mid (VALUE self){
881
+ static VALUE r_mpfi_matrix_mid (VALUE self) {
877
882
  MPFIMatrix *ptr_self;
878
883
  VALUE val_ret;
879
884
  MPFRMatrix *ptr_ret;
@@ -883,7 +888,7 @@ static VALUE r_mpfi_matrix_mid (VALUE self){
883
888
  return val_ret;
884
889
  }
885
890
 
886
- static VALUE r_mpfi_matrix_mid_interval (VALUE self){
891
+ static VALUE r_mpfi_matrix_mid_interval (VALUE self) {
887
892
  MPFIMatrix *ptr_self, *ptr_ret;
888
893
  VALUE val_ret;
889
894
  r_mpfi_get_matrix_struct(ptr_self, self);
@@ -892,34 +897,34 @@ static VALUE r_mpfi_matrix_mid_interval (VALUE self){
892
897
  return val_ret;
893
898
  }
894
899
 
895
- static VALUE r_mpfi_matrix_intersect (VALUE self, VALUE other){
900
+ static VALUE r_mpfi_matrix_intersect (VALUE self, VALUE other) {
896
901
  MPFIMatrix *ptr_self, *ptr_other, *ptr_ret;
897
902
  VALUE val_ret;
898
903
  r_mpfi_get_matrix_struct(ptr_self, self);
899
904
  r_mpfi_get_matrix_struct(ptr_other, other);
900
905
  r_mpfi_matrix_suitable_matrix_init(&val_ret, &ptr_ret, ptr_self->row, ptr_self->column);
901
- if(mpfi_matrix_intersect(ptr_ret, ptr_self, ptr_other) == 0){
906
+ if (mpfi_matrix_intersect(ptr_ret, ptr_self, ptr_other) == 0) {
902
907
  return val_ret;
903
- }else{
908
+ } else {
904
909
  return Qnil;
905
910
  }
906
911
  }
907
912
 
908
- static VALUE r_mpfi_matrix_union (VALUE self, VALUE other){
913
+ static VALUE r_mpfi_matrix_union (VALUE self, VALUE other) {
909
914
  MPFIMatrix *ptr_self, *ptr_other, *ptr_ret;
910
915
  VALUE val_ret;
911
916
  r_mpfi_get_matrix_struct(ptr_self, self);
912
917
  r_mpfi_get_matrix_struct(ptr_other, other);
913
918
  r_mpfi_matrix_suitable_matrix_init(&val_ret, &ptr_ret, ptr_self->row, ptr_self->column);
914
- if(mpfi_matrix_union(ptr_ret, ptr_self, ptr_other) == 0){
919
+ if (mpfi_matrix_union(ptr_ret, ptr_self, ptr_other) == 0) {
915
920
  return val_ret;
916
- }else{
921
+ } else {
917
922
  return Qnil;
918
923
  }
919
924
  }
920
925
 
921
926
 
922
- static VALUE r_mpfi_matrix_max_diam_abs (VALUE self){
927
+ static VALUE r_mpfi_matrix_max_diam_abs (VALUE self) {
923
928
  MPFIMatrix *ptr_self;
924
929
  MPFR *ptr_ret;
925
930
  VALUE ret_val;
@@ -930,14 +935,14 @@ static VALUE r_mpfi_matrix_max_diam_abs (VALUE self){
930
935
  }
931
936
 
932
937
  /* Return row size of matrix. */
933
- static VALUE r_mpfi_square_matrix_dim (VALUE self){
938
+ static VALUE r_mpfi_square_matrix_dim (VALUE self) {
934
939
  MPFIMatrix *ptr_self;
935
940
  r_mpfi_get_matrix_struct(ptr_self, self);
936
941
  return INT2FIX(ptr_self->row);
937
942
  }
938
943
 
939
944
  /* Return [matrix_l, matrix_r, indx]. */
940
- static VALUE r_mpfi_square_matrix_lu_decomp (VALUE self){
945
+ static VALUE r_mpfi_square_matrix_lu_decomp (VALUE self) {
941
946
  MPFIMatrix *ptr_self, *ptr_ret_l, *ptr_ret_u;
942
947
  VALUE ret_l, ret_u, ret, ret_indx_ary;
943
948
  int i, j, *indx;
@@ -945,23 +950,23 @@ static VALUE r_mpfi_square_matrix_lu_decomp (VALUE self){
945
950
  r_mpfi_matrix_suitable_matrix_init (&ret_l, &ptr_ret_l, ptr_self->row, ptr_self->column);
946
951
  r_mpfi_matrix_suitable_matrix_init (&ret_u, &ptr_ret_u, ptr_self->row, ptr_self->column);
947
952
  indx = ALLOC_N(int, ptr_self->row);
948
- if(mpfi_square_matrix_lu_decomp (ptr_ret_u, indx, ptr_self) >= 0){
953
+ if (mpfi_square_matrix_lu_decomp (ptr_ret_u, indx, ptr_self) >= 0) {
949
954
  ret_indx_ary = rb_ary_new2(ptr_self->row);
950
- for(i = 1; i < ptr_ret_u->row; i++){
951
- for(j = 0; j < i; j++){
955
+ for (i = 1; i < ptr_ret_u->row; i++) {
956
+ for (j = 0; j < i; j++) {
952
957
  mpfi_set(mpfi_matrix_get_element(ptr_ret_l, i, j), mpfi_matrix_get_element(ptr_ret_u, i, j));
953
958
  mpfi_set_si(mpfi_matrix_get_element(ptr_ret_u, i, j), 0);
954
959
  }
955
960
  }
956
- for(i = 0; i < ptr_ret_u->row; i++){
961
+ for (i = 0; i < ptr_ret_u->row; i++) {
957
962
  mpfi_set_si(mpfi_matrix_get_element(ptr_ret_l, i, i), 1);
958
963
  }
959
- for(i = 0; i < ptr_ret_u->row; i++){
960
- for(j = i + 1; j < ptr_ret_u->column; j++){
964
+ for (i = 0; i < ptr_ret_u->row; i++) {
965
+ for (j = i + 1; j < ptr_ret_u->column; j++) {
961
966
  mpfi_set_si(mpfi_matrix_get_element(ptr_ret_l, i, j), 0);
962
967
  }
963
968
  }
964
- for(i = 0; i < ptr_ret_u->row; i++){
969
+ for (i = 0; i < ptr_ret_u->row; i++) {
965
970
  rb_ary_store(ret_indx_ary, i, INT2NUM(indx[i]));
966
971
  }
967
972
  ret = rb_ary_new3(3, ret_l, ret_u, ret_indx_ary);
@@ -972,7 +977,7 @@ static VALUE r_mpfi_square_matrix_lu_decomp (VALUE self){
972
977
  return ret;
973
978
  }
974
979
 
975
- static VALUE r_mpfi_square_matrix_determinant (VALUE self){
980
+ static VALUE r_mpfi_square_matrix_determinant (VALUE self) {
976
981
  MPFIMatrix *ptr_self;
977
982
  MPFI *ptr_ret;
978
983
  VALUE ret;
@@ -982,7 +987,7 @@ static VALUE r_mpfi_square_matrix_determinant (VALUE self){
982
987
  return ret;
983
988
  }
984
989
 
985
- static VALUE r_mpfi_square_matrix_qr_decomp (VALUE self){
990
+ static VALUE r_mpfi_square_matrix_qr_decomp (VALUE self) {
986
991
  MPFIMatrix *ptr_self, *ptr_q, *ptr_r;
987
992
  VALUE q, r;
988
993
  r_mpfi_get_matrix_struct(ptr_self, self);
@@ -992,7 +997,7 @@ static VALUE r_mpfi_square_matrix_qr_decomp (VALUE self){
992
997
  return rb_ary_new3(2, q, r);
993
998
  }
994
999
 
995
- static VALUE r_mpfi_square_matrix_identity (VALUE self, VALUE size){
1000
+ static VALUE r_mpfi_square_matrix_identity (VALUE self, VALUE size) {
996
1001
  VALUE ret;
997
1002
  MPFIMatrix *ptr_ret;
998
1003
  int s = NUM2INT(size);
@@ -1003,14 +1008,14 @@ static VALUE r_mpfi_square_matrix_identity (VALUE self, VALUE size){
1003
1008
 
1004
1009
 
1005
1010
  /* Return size of data array which equals to column * row. */
1006
- static VALUE r_mpfi_vector_dim (VALUE self){
1011
+ static VALUE r_mpfi_vector_dim (VALUE self) {
1007
1012
  MPFIMatrix *ptr_self;
1008
1013
  r_mpfi_get_matrix_struct(ptr_self, self);
1009
1014
  return INT2FIX(ptr_self->size);
1010
1015
  }
1011
1016
 
1012
1017
  /* Take matrix for vector and return length of the vector. */
1013
- static VALUE r_mpfi_vector_abs (VALUE self){
1018
+ static VALUE r_mpfi_vector_abs (VALUE self) {
1014
1019
  MPFIMatrix *ptr_self;
1015
1020
  VALUE ret;
1016
1021
  MPFI *ptr_ret;
@@ -1021,7 +1026,7 @@ static VALUE r_mpfi_vector_abs (VALUE self){
1021
1026
  }
1022
1027
 
1023
1028
  /* Return element at _arg_.*/
1024
- static VALUE r_mpfi_vector_element (VALUE self, VALUE arg){
1029
+ static VALUE r_mpfi_vector_element (VALUE self, VALUE arg) {
1025
1030
  MPFIMatrix *ptr_self;
1026
1031
  int i;
1027
1032
  r_mpfi_get_matrix_struct(ptr_self, self);
@@ -1032,13 +1037,13 @@ static VALUE r_mpfi_vector_element (VALUE self, VALUE arg){
1032
1037
  r_mpfi_make_struct_init(ret, ptr_ret);
1033
1038
  mpfi_set(ptr_ret, ptr_self->data + i);
1034
1039
  return ret;
1035
- }else{
1040
+ } else {
1036
1041
  return Qnil;
1037
1042
  }
1038
1043
  }
1039
1044
 
1040
1045
  /* Set _robj_ to _arg_ th element. */
1041
- static VALUE r_mpfi_vector_set_element (VALUE self, VALUE arg, VALUE robj){
1046
+ static VALUE r_mpfi_vector_set_element (VALUE self, VALUE arg, VALUE robj) {
1042
1047
  MPFIMatrix *ptr_self;
1043
1048
  int i;
1044
1049
  r_mpfi_get_matrix_struct(ptr_self, self);
@@ -1050,83 +1055,81 @@ static VALUE r_mpfi_vector_set_element (VALUE self, VALUE arg, VALUE robj){
1050
1055
  }
1051
1056
 
1052
1057
  /* Evaluate block with each element of vector. */
1053
- static VALUE r_mpfi_vector_each_element (VALUE self){
1058
+ static VALUE r_mpfi_vector_each_element (VALUE self) {
1054
1059
  MPFIMatrix *ptr_self;
1055
- VALUE ret, tmp;
1056
- MPFI *tmp_ptr;
1060
+ VALUE ret;
1057
1061
  int i;
1062
+ RETURN_ENUMERATOR(self, 0, NULL);
1058
1063
  ret = Qnil;
1059
1064
  r_mpfi_get_matrix_struct(ptr_self, self);
1060
- r_mpfi_make_struct_init(tmp, tmp_ptr);
1061
1065
  for (i = 0; i < ptr_self->size; i++) {
1062
- mpfi_set(tmp_ptr, ptr_self->data + i);
1063
- ret = rb_yield(tmp);
1066
+ volatile VALUE el = r_mpfi_make_new_fi_obj(ptr_self->data + i);
1067
+ ret = rb_yield(el);
1064
1068
  }
1065
1069
  return ret;
1066
1070
  }
1067
1071
 
1068
1072
  /* Evaluate block with each element and its index. */
1069
- static VALUE r_mpfi_vector_each_element_with_index (VALUE self){
1073
+ static VALUE r_mpfi_vector_each_element_with_index (VALUE self) {
1070
1074
  MPFIMatrix *ptr_self;
1071
- VALUE ret, tmp;
1072
- MPFI *tmp_ptr;
1075
+ VALUE ret;
1073
1076
  int i;
1077
+ RETURN_ENUMERATOR(self, 0, NULL);
1074
1078
  r_mpfi_get_matrix_struct(ptr_self, self);
1075
- r_mpfi_make_struct_init(tmp, tmp_ptr);
1076
1079
  ret = Qnil;
1077
1080
  for (i = 0; i < ptr_self->size; i++) {
1078
- mpfi_set(tmp_ptr, ptr_self->data + i);
1079
- ret = rb_yield(rb_ary_new3(2, tmp, INT2NUM(i)));
1081
+ volatile VALUE el = r_mpfi_make_new_fi_obj(ptr_self->data + i);
1082
+ ret = rb_yield(rb_ary_new3(2, el, INT2NUM(i)));
1080
1083
  }
1081
1084
  return ret;
1082
1085
  }
1083
1086
 
1084
- static VALUE r_mpfi_vector_inner_product (VALUE self, VALUE arg){
1087
+ static VALUE r_mpfi_vector_inner_product (VALUE self, VALUE arg) {
1085
1088
  MPFIMatrix *ptr_self, *ptr_arg;
1086
1089
  VALUE ret;
1087
1090
  MPFI *ptr_ret;
1088
1091
  r_mpfi_get_matrix_struct(ptr_self, self);
1089
1092
  r_mpfi_get_matrix_struct(ptr_arg, arg);
1090
1093
  r_mpfi_make_struct_init(ret, ptr_ret);
1091
- if(ptr_self->size == ptr_arg->size){
1094
+ if (ptr_self->size == ptr_arg->size) {
1092
1095
  mpfi_matrix_inner_product(ptr_ret, ptr_self, ptr_arg);
1093
- }else{
1096
+ } else {
1094
1097
  rb_raise(rb_eArgError, "Vectors must have same size.");
1095
1098
  }
1096
1099
  return ret;
1097
1100
  }
1098
1101
 
1099
- static VALUE r_mpfi_vector_distance_from (VALUE self, VALUE arg){
1102
+ static VALUE r_mpfi_vector_distance_from (VALUE self, VALUE arg) {
1100
1103
  MPFIMatrix *ptr_self, *ptr_arg;
1101
1104
  VALUE ret;
1102
1105
  MPFI *ptr_ret;
1103
1106
  r_mpfi_get_matrix_struct(ptr_self, self);
1104
1107
  r_mpfi_get_matrix_struct(ptr_arg, arg);
1105
1108
  r_mpfi_make_struct_init(ret, ptr_ret);
1106
- if(ptr_self->size == ptr_arg->size){
1109
+ if (ptr_self->size == ptr_arg->size) {
1107
1110
  mpfi_matrix_vector_distance(ptr_ret, ptr_self, ptr_arg);
1108
- }else{
1111
+ } else {
1109
1112
  rb_raise(rb_eArgError, "Vectors must have same size.");
1110
1113
  }
1111
1114
  return ret;
1112
1115
  }
1113
1116
 
1114
- static VALUE r_mpfi_vector_distance_center_pts (VALUE self, VALUE arg){
1117
+ static VALUE r_mpfi_vector_distance_center_pts (VALUE self, VALUE arg) {
1115
1118
  MPFIMatrix *ptr_self, *ptr_arg;
1116
1119
  VALUE ret;
1117
1120
  MPFR *ptr_ret;
1118
1121
  r_mpfi_get_matrix_struct(ptr_self, self);
1119
1122
  r_mpfi_get_matrix_struct(ptr_arg, arg);
1120
1123
  r_mpfr_make_struct_init(ret, ptr_ret);
1121
- if(ptr_self->size == ptr_arg->size){
1124
+ if (ptr_self->size == ptr_arg->size) {
1122
1125
  mpfi_matrix_vector_distance_center_pts(ptr_ret, ptr_self, ptr_arg);
1123
- }else{
1126
+ } else {
1124
1127
  rb_raise(rb_eArgError, "Vectors must have same size.");
1125
1128
  }
1126
1129
  return ret;
1127
1130
  }
1128
1131
 
1129
- static VALUE r_mpfi_vector_midpoint (VALUE self, VALUE arg){
1132
+ static VALUE r_mpfi_vector_midpoint (VALUE self, VALUE arg) {
1130
1133
  MPFIMatrix *ptr_self, *ptr_arg, *ptr_ret;
1131
1134
  VALUE ret;
1132
1135
  r_mpfi_get_matrix_struct(ptr_self, self);
@@ -1136,50 +1139,50 @@ static VALUE r_mpfi_vector_midpoint (VALUE self, VALUE arg){
1136
1139
  return ret;
1137
1140
  }
1138
1141
 
1139
- static VALUE r_mpfi_vector_normalize (VALUE self){
1142
+ static VALUE r_mpfi_vector_normalize (VALUE self) {
1140
1143
  MPFIMatrix *ptr_self, *ptr_ret;
1141
1144
  VALUE ret;
1142
1145
  r_mpfi_get_matrix_struct(ptr_self, self);
1143
1146
  r_mpfi_matrix_suitable_matrix_init (&ret, &ptr_ret, ptr_self->row, ptr_self->column);
1144
- if(mpfi_vector_normalize(ptr_ret, ptr_self) == 0){
1147
+ if (mpfi_vector_normalize(ptr_ret, ptr_self) == 0) {
1145
1148
  return ret;
1146
- }else{
1149
+ } else {
1147
1150
  return Qnil;
1148
1151
  }
1149
1152
  }
1150
1153
 
1151
1154
  /* Return normalized vector of _self_. This method is destroy method. */
1152
- static VALUE r_mpfi_vector_normalize2 (VALUE self){
1155
+ static VALUE r_mpfi_vector_normalize2 (VALUE self) {
1153
1156
  MPFIMatrix *ptr_self, tmp;
1154
1157
  VALUE ret;
1155
1158
  r_mpfi_get_matrix_struct(ptr_self, self);
1156
1159
  ret = self;
1157
1160
  mpfi_matrix_init(&tmp, ptr_self->column, ptr_self->row);
1158
- if(mpfi_vector_normalize(&tmp, ptr_self) == 0){
1161
+ if (mpfi_vector_normalize(&tmp, ptr_self) == 0) {
1159
1162
  mpfi_matrix_set(ptr_self, &tmp);
1160
- }else{
1163
+ } else {
1161
1164
  ret = Qnil;
1162
1165
  }
1163
1166
  mpfi_matrix_clear(&tmp);
1164
1167
  return ret;
1165
1168
  }
1166
1169
 
1167
- static VALUE r_mpfi_vector_set_length (VALUE self, VALUE arg){
1170
+ static VALUE r_mpfi_vector_set_length (VALUE self, VALUE arg) {
1168
1171
  MPFIMatrix *ptr_self, *ptr_ret;
1169
1172
  VALUE ret, returned_value;
1170
1173
  MPFR *ptr_l;
1171
1174
  returned_value = Qnil;
1172
1175
  r_mpfi_get_matrix_struct(ptr_self, self);
1173
1176
  r_mpfi_matrix_suitable_matrix_init (&ret, &ptr_ret, ptr_self->row, ptr_self->column);
1174
- if(RTEST(rb_funcall(r_mpfr_class, eqq, 1, arg))){
1177
+ if (RTEST(rb_funcall(r_mpfr_class, eqq, 1, arg))) {
1175
1178
  r_mpfr_get_struct(ptr_l, arg);
1176
- if(mpfi_vector_set_length(ptr_ret, ptr_self, ptr_l) == 0){
1179
+ if (mpfi_vector_set_length(ptr_ret, ptr_self, ptr_l) == 0) {
1177
1180
  returned_value = ret;
1178
1181
  }
1179
- }else{
1182
+ } else {
1180
1183
  r_mpfr_temp_alloc_init(ptr_l);
1181
1184
  r_mpfr_set_robj(ptr_l, arg, GMP_RNDN);
1182
- if(mpfi_vector_set_length(ptr_ret, ptr_self, ptr_l) == 0){
1185
+ if (mpfi_vector_set_length(ptr_ret, ptr_self, ptr_l) == 0) {
1183
1186
  returned_value = ret;
1184
1187
  }
1185
1188
  r_mpfr_temp_free(ptr_l);
@@ -1187,23 +1190,23 @@ static VALUE r_mpfi_vector_set_length (VALUE self, VALUE arg){
1187
1190
  return returned_value;
1188
1191
  }
1189
1192
 
1190
- static VALUE r_mpfi_vector_set_length2 (VALUE self, VALUE arg){
1193
+ static VALUE r_mpfi_vector_set_length2 (VALUE self, VALUE arg) {
1191
1194
  MPFIMatrix *ptr_self, *ptr_ret;
1192
1195
  VALUE ret, returned_value;
1193
1196
  MPFR *ptr_l;
1194
1197
  returned_value = Qnil;
1195
1198
  r_mpfi_get_matrix_struct(ptr_self, self);
1196
1199
  r_mpfi_matrix_suitable_matrix_init (&ret, &ptr_ret, ptr_self->row, ptr_self->column);
1197
- if(RTEST(rb_funcall(r_mpfi_class, eqq, 1, arg))){
1200
+ if (RTEST(rb_funcall(r_mpfi_class, eqq, 1, arg))) {
1198
1201
  r_mpfr_get_struct(ptr_l, arg);
1199
- if(mpfi_vector_set_length(ptr_ret, ptr_self, ptr_l) == 0){
1202
+ if (mpfi_vector_set_length(ptr_ret, ptr_self, ptr_l) == 0) {
1200
1203
  mpfi_matrix_set(ptr_self, ptr_ret);
1201
1204
  returned_value = self;
1202
1205
  }
1203
- }else{
1206
+ } else {
1204
1207
  r_mpfr_temp_alloc_init(ptr_l);
1205
1208
  r_mpfr_set_robj(ptr_l, arg, GMP_RNDN);
1206
- if(mpfi_vector_set_length(ptr_ret, ptr_self, ptr_l) == 0){
1209
+ if (mpfi_vector_set_length(ptr_ret, ptr_self, ptr_l) == 0) {
1207
1210
  mpfi_matrix_set(ptr_self, ptr_ret);
1208
1211
  returned_value = self;
1209
1212
  }
@@ -1213,7 +1216,7 @@ static VALUE r_mpfi_vector_set_length2 (VALUE self, VALUE arg){
1213
1216
  }
1214
1217
 
1215
1218
 
1216
- static VALUE r_mpfr_matrix_to_fi_matrix(VALUE self){
1219
+ static VALUE r_mpfr_matrix_to_fi_matrix (VALUE self) {
1217
1220
  MPFRMatrix *ptr;
1218
1221
  VALUE ret;
1219
1222
  MPFIMatrix *ptr_ret;
@@ -1223,7 +1226,7 @@ static VALUE r_mpfr_matrix_to_fi_matrix(VALUE self){
1223
1226
  return ret;
1224
1227
  }
1225
1228
 
1226
- void Init_matrix(){
1229
+ void Init_matrix() {
1227
1230
  /* Initialization of MPFI::Matrix, MPFI::SquareMatrix, MPFI::ColumnVector and MPFI::RowVector */
1228
1231
  VALUE tmp_r_mpfi_class = rb_define_class("MPFI", rb_cNumeric);
1229
1232
  r_mpfi_matrix = rb_define_class_under(tmp_r_mpfi_class, "Matrix", rb_cObject);
@@ -1231,7 +1234,7 @@ void Init_matrix(){
1231
1234
  r_mpfi_col_vector = rb_define_class_under(tmp_r_mpfi_class, "ColumnVector", r_mpfi_matrix);
1232
1235
  r_mpfi_row_vector = rb_define_class_under(tmp_r_mpfi_class, "RowVector", r_mpfi_matrix);
1233
1236
 
1234
- rb_define_singleton_method(r_mpfi_matrix, "Matrix", r_mpfi_matrix_global_new, -1);
1237
+ rb_define_singleton_method(tmp_r_mpfi_class, "Matrix", r_mpfi_matrix_global_new, -1);
1235
1238
  rb_define_alloc_func(r_mpfi_matrix, r_mpfi_matrix_alloc);
1236
1239
  rb_define_private_method(r_mpfi_matrix, "initialize", r_mpfi_matrix_initialize, -1);
1237
1240
  rb_define_private_method(r_mpfi_matrix, "initialize_copy", r_mpfi_matrix_initialize_copy, 1);
@@ -1312,7 +1315,7 @@ void Init_matrix(){
1312
1315
  rb_define_method(r_mpfi_square_matrix, "qr_decomp", r_mpfi_square_matrix_qr_decomp, 0);
1313
1316
 
1314
1317
  rb_define_singleton_method(r_mpfi_square_matrix, "identity", r_mpfi_square_matrix_identity, 1);
1315
-
1318
+
1316
1319
  /* Initialization of MPFI::Vector module */
1317
1320
  r_mpfi_vector_module = rb_define_module_under(tmp_r_mpfi_class, "Vector");
1318
1321