number 0.9.7 → 0.9.9

Sign up to get free protection for your applications and to get access to all the features.
File without changes
@@ -78,7 +78,7 @@ int interval_span_zero_p (Interval* interval)
78
78
  int result;
79
79
  Real* zero;
80
80
 
81
- zero = (Real*)real_zero();
81
+ zero = real_zero();
82
82
  result = interval_span_p(interval, zero);
83
83
 
84
84
  real_free(zero);
@@ -94,7 +94,7 @@ int interval_zero_p (Interval* interval)
94
94
  int result;
95
95
  Real* zero;
96
96
 
97
- zero = (Real*)real_zero();
97
+ zero = real_zero();
98
98
  result = real_eq_p(interval->l, zero) && real_eq_p(interval->u, zero);
99
99
 
100
100
  real_free(zero);
@@ -120,7 +120,7 @@ int interval_degenerate_p (Interval* interval)
120
120
  Interval* interval_new (Real* l, int L, Real* n, int R, Real* u)
121
121
  {
122
122
  Interval* interval;
123
- interval = (Interval*)malloc(sizeof(Interval));
123
+ interval = malloc(sizeof(Interval));
124
124
 
125
125
  if (interval == NULL)
126
126
  {
@@ -131,9 +131,9 @@ Interval* interval_new (Real* l, int L, Real* n, int R, Real* u)
131
131
 
132
132
  if (NaN(l) || NaN(n) || NaN(u))
133
133
  {
134
- interval->n = (Real*)real_nan();
135
- interval->l = (Real*)real_neg_inf();
136
- interval->u = (Real*)real_pos_inf();
134
+ interval->n = real_nan();
135
+ interval->l = real_neg_inf();
136
+ interval->u = real_pos_inf();
137
137
 
138
138
  interval->L = true;
139
139
  interval->R = true;
@@ -144,12 +144,12 @@ Interval* interval_new (Real* l, int L, Real* n, int R, Real* u)
144
144
  }
145
145
  else
146
146
  {
147
- interval->n = (Real*)n;
148
- interval->l = (Real*)l;
149
- interval->u = (Real*)u;
147
+ interval->n = n;
148
+ interval->l = l;
149
+ interval->u = u;
150
150
 
151
- interval->L = real_eq_p(interval->l, interval->u) || real_eq_p(interval->n, interval->l) || L;
152
- interval->R = real_eq_p(interval->l, interval->u) || real_eq_p(interval->n, interval->u) || R;
151
+ interval->L = (real_eq_p(l, u) || real_eq_p(n, l) || L);
152
+ interval->R = (real_eq_p(l, u) || real_eq_p(n, u) || R);
153
153
  }
154
154
 
155
155
  return interval;
@@ -162,7 +162,7 @@ Interval* interval_new (Real* l, int L, Real* n, int R, Real* u)
162
162
  */
163
163
  Interval* interval_from_real (Real* real)
164
164
  {
165
- return interval_new((Real*)real_dup(real), true, (Real*)real_dup(real), true, (Real*)real_dup(real));
165
+ return interval_new(real_dup(real), true, real_dup(real), true, real_dup(real));
166
166
  }
167
167
 
168
168
  /*
@@ -170,7 +170,7 @@ Interval* interval_from_real (Real* real)
170
170
  */
171
171
  Interval* interval_nan ()
172
172
  {
173
- return interval_new((Real*)real_neg_inf(), true, (Real*)real_nan(), true, (Real*)real_pos_inf());
173
+ return interval_new(real_neg_inf(), true, real_nan(), true, real_pos_inf());
174
174
  }
175
175
 
176
176
  /*
@@ -178,7 +178,7 @@ Interval* interval_nan ()
178
178
  */
179
179
  Interval* interval_pos_inf ()
180
180
  {
181
- return interval_new((Real*)real_pos_inf(), true, (Real*)real_pos_inf(), true, (Real*)real_pos_inf());
181
+ return interval_new(real_pos_inf(), true, real_pos_inf(), true, real_pos_inf());
182
182
  }
183
183
 
184
184
  /*
@@ -186,7 +186,7 @@ Interval* interval_pos_inf ()
186
186
  */
187
187
  Interval* interval_neg_inf ()
188
188
  {
189
- return interval_new((Real*)real_neg_inf(), true, (Real*)real_neg_inf(), true, (Real*)real_neg_inf());
189
+ return interval_new(real_neg_inf(), true, real_neg_inf(), true, real_neg_inf());
190
190
  }
191
191
 
192
192
  /*
@@ -194,7 +194,7 @@ Interval* interval_neg_inf ()
194
194
  */
195
195
  Interval* interval_zero ()
196
196
  {
197
- return interval_new((Real*)real_zero(), true, (Real*)real_zero(), true, (Real*)real_zero());
197
+ return interval_new(real_zero(), true, real_zero(), true, real_zero());
198
198
  }
199
199
 
200
200
  /*
@@ -202,7 +202,7 @@ Interval* interval_zero ()
202
202
  */
203
203
  Interval* interval_one ()
204
204
  {
205
- return interval_new((Real*)real_one(), true, (Real*)real_one(), true, (Real*)real_one());
205
+ return interval_new(real_one(), true, real_one(), true, real_one());
206
206
  }
207
207
 
208
208
  /*
@@ -211,7 +211,7 @@ Interval* interval_one ()
211
211
  */
212
212
  Interval* interval_pi ()
213
213
  {
214
- return (Interval*)interval_new((Real*)real_pi(ROUND_DOWN), false, (Real*)real_pi(ROUND_NEAREST), false, (Real*)real_pi(ROUND_UP1));
214
+ return interval_new(real_pi(ROUND_DOWN), false, real_pi(ROUND_NEAREST), false, real_pi(ROUND_UP1));
215
215
  }
216
216
 
217
217
  /*
@@ -220,7 +220,7 @@ Interval* interval_pi ()
220
220
  */
221
221
  Interval* interval_e ()
222
222
  {
223
- return (Interval*)interval_new((Real*)real_e(ROUND_DOWN), false, (Real*)real_e(ROUND_NEAREST), false, (Real*)real_e(ROUND_UP1));
223
+ return interval_new(real_e(ROUND_DOWN), false, real_e(ROUND_NEAREST), false, real_e(ROUND_UP1));
224
224
  }
225
225
 
226
226
  /*
@@ -229,7 +229,7 @@ Interval* interval_e ()
229
229
  */
230
230
  Interval* interval_dup (Interval* interval)
231
231
  {
232
- return interval_new((Real*)real_dup(interval->l), interval->L, (Real*)real_dup(interval->n), interval->R, (Real*)real_dup(interval->u));
232
+ return interval_new(real_dup(interval->l), interval->L, real_dup(interval->n), interval->R, real_dup(interval->u));
233
233
  }
234
234
 
235
235
  /*
@@ -243,12 +243,12 @@ Interval* interval_add (Interval* a, Interval* b)
243
243
  Real* l;
244
244
  Real* u;
245
245
 
246
- n = (Real*)real_add(a->n, b->n);
247
- l = (Real*)real_add(a->l, b->l);
248
- u = (Real*)real_add(a->u, b->u);
246
+ n = real_add(a->n, b->n);
247
+ l = real_add(a->l, b->l);
248
+ u = real_add(a->u, b->u);
249
249
 
250
- L = a->L && b->L;
251
- R = a->R && b->R;
250
+ L = (a->L && b->L);
251
+ R = (a->R && b->R);
252
252
 
253
253
  return interval_new(l, L, n, R, u);
254
254
  }
@@ -264,12 +264,12 @@ Interval* interval_subtract (Interval* a, Interval* b)
264
264
  Real* l;
265
265
  Real* u;
266
266
 
267
- n = (Real*)real_subtract(a->n, b->n);
268
- l = (Real*)real_subtract(a->l, b->u);
269
- u = (Real*)real_subtract(a->u, b->l);
267
+ n = real_subtract(a->n, b->n);
268
+ l = real_subtract(a->l, b->u);
269
+ u = real_subtract(a->u, b->l);
270
270
 
271
- L = a->L && b->R;
272
- R = a->R && b->L;
271
+ L = (a->L && b->R);
272
+ R = (a->R && b->L);
273
273
 
274
274
  return interval_new(l, L, n, R, u);
275
275
  }
@@ -285,20 +285,19 @@ Interval* interval_multiply (Interval* a, Interval* b)
285
285
  Real* l;
286
286
  Real* u;
287
287
  RealBounds* bounds;
288
- Interval* interval;
289
288
 
290
- bounds = (RealBounds*)real_bounds_new();
291
- real_bounds_update(bounds, (Real*)real_multiply(a->l, b->l), a->L && b->L);
292
- real_bounds_update(bounds, (Real*)real_multiply(a->l, b->u), a->L && b->R);
293
- real_bounds_update(bounds, (Real*)real_multiply(a->u, b->l), a->R && b->L);
294
- real_bounds_update(bounds, (Real*)real_multiply(a->u, b->u), a->R && b->R);
289
+ bounds = real_bounds_new();
290
+ real_bounds_update(bounds, real_multiply(a->l, b->l), (a->L && b->L));
291
+ real_bounds_update(bounds, real_multiply(a->l, b->u), (a->L && b->R));
292
+ real_bounds_update(bounds, real_multiply(a->u, b->l), (a->R && b->L));
293
+ real_bounds_update(bounds, real_multiply(a->u, b->u), (a->R && b->R));
295
294
 
296
- L = bounds->min_closed;
297
- R = bounds->max_closed;
295
+ L = (bounds->min_closed);
296
+ R = (bounds->max_closed);
298
297
 
299
- n = (Real*)real_multiply(a->n, b->n);
300
- l = (Real*)real_dup(bounds->min);
301
- u = (Real*)real_dup(bounds->max);
298
+ n = real_multiply(a->n, b->n);
299
+ l = real_dup(bounds->min);
300
+ u = real_dup(bounds->max);
302
301
 
303
302
  real_bounds_free(bounds);
304
303
 
@@ -316,24 +315,23 @@ Interval* interval_divide (Interval* a, Interval* b)
316
315
  Real* l;
317
316
  Real* u;
318
317
  RealBounds* bounds;
319
- Interval* interval;
320
318
 
321
- bounds = (RealBounds*)real_bounds_new();
322
- real_bounds_update(bounds, (Real*)real_divide(a->l, b->l, ROUND_DOWN), a->L && b->L);
323
- real_bounds_update(bounds, (Real*)real_divide(a->l, b->u, ROUND_DOWN), a->L && b->R);
324
- real_bounds_update(bounds, (Real*)real_divide(a->u, b->l, ROUND_DOWN), a->R && b->L);
325
- real_bounds_update(bounds, (Real*)real_divide(a->u, b->u, ROUND_DOWN), a->R && b->R);
326
- real_bounds_update(bounds, (Real*)real_divide(a->l, b->l, ROUND_UP), a->L && b->L);
327
- real_bounds_update(bounds, (Real*)real_divide(a->l, b->u, ROUND_UP), a->L && b->R);
328
- real_bounds_update(bounds, (Real*)real_divide(a->u, b->l, ROUND_UP), a->R && b->L);
329
- real_bounds_update(bounds, (Real*)real_divide(a->u, b->u, ROUND_UP), a->R && b->R);
319
+ bounds = real_bounds_new();
320
+ real_bounds_update(bounds, real_divide(a->l, b->l, ROUND_DOWN), (a->L && b->L));
321
+ real_bounds_update(bounds, real_divide(a->l, b->u, ROUND_DOWN), (a->L && b->R));
322
+ real_bounds_update(bounds, real_divide(a->u, b->l, ROUND_DOWN), (a->R && b->L));
323
+ real_bounds_update(bounds, real_divide(a->u, b->u, ROUND_DOWN), (a->R && b->R));
324
+ real_bounds_update(bounds, real_divide(a->l, b->l, ROUND_UP), (a->L && b->L));
325
+ real_bounds_update(bounds, real_divide(a->l, b->u, ROUND_UP), (a->L && b->R));
326
+ real_bounds_update(bounds, real_divide(a->u, b->l, ROUND_UP), (a->R && b->L));
327
+ real_bounds_update(bounds, real_divide(a->u, b->u, ROUND_UP), (a->R && b->R));
330
328
 
331
- L = bounds->min_closed;
332
- R = bounds->max_closed;
329
+ L = (bounds->min_closed);
330
+ R = (bounds->max_closed);
333
331
 
334
- n = (Real*)real_divide(a->n, b->n, ROUND_NEAREST);
335
- l = (Real*)real_dup(bounds->min);
336
- u = (Real*)real_dup(bounds->max);
332
+ n = real_divide(a->n, b->n, ROUND_NEAREST);
333
+ l = real_dup(bounds->min);
334
+ u = real_dup(bounds->max);
337
335
 
338
336
  real_bounds_free(bounds);
339
337
 
@@ -345,7 +343,7 @@ Interval* interval_divide (Interval* a, Interval* b)
345
343
  */
346
344
  Interval* interval_negate (Interval* interval)
347
345
  {
348
- return interval_new((Real*)real_negate(interval->u), interval->R, (Real*)real_negate(interval->n), interval->L, (Real*)real_negate(interval->l));
346
+ return interval_new(real_negate(interval->u), interval->R, real_negate(interval->n), interval->L, real_negate(interval->l));
349
347
  }
350
348
 
351
349
  /*
@@ -354,7 +352,7 @@ Interval* interval_negate (Interval* interval)
354
352
  */
355
353
  Interval* interval_round (Interval* interval)
356
354
  {
357
- return interval_new((Real*)real_round(interval->l), true, (Real*)real_round(interval->n), true, (Real*)real_round(interval->u));
355
+ return interval_new(real_round(interval->l), true, real_round(interval->n), true, real_round(interval->u));
358
356
  }
359
357
 
360
358
  /*
@@ -364,7 +362,7 @@ Interval* interval_round (Interval* interval)
364
362
  */
365
363
  Interval* interval_round_ceiling (Interval* interval)
366
364
  {
367
- return interval_new((Real*)real_ceil(interval->l), true, (Real*)real_ceil(interval->n), true, (Real*)real_ceil(interval->u));
365
+ return interval_new(real_ceil(interval->l), true, real_ceil(interval->n), true, real_ceil(interval->u));
368
366
  }
369
367
 
370
368
  /*
@@ -374,7 +372,7 @@ Interval* interval_round_ceiling (Interval* interval)
374
372
  */
375
373
  Interval* interval_round_floor (Interval* interval)
376
374
  {
377
- return interval_new((Real*)real_floor(interval->l), true, (Real*)real_floor(interval->n), true, (Real*)real_floor(interval->u));
375
+ return interval_new(real_floor(interval->l), true, real_floor(interval->n), true, real_floor(interval->u));
378
376
  }
379
377
 
380
378
  /*
@@ -384,7 +382,7 @@ Interval* interval_round_floor (Interval* interval)
384
382
  */
385
383
  Interval* interval_round_infinity (Interval* interval)
386
384
  {
387
- return interval_new((Real*)real_round_infinity(interval->l), true, (Real*)real_round_infinity(interval->n), true, (Real*)real_round_infinity(interval->u));
385
+ return interval_new(real_round_infinity(interval->l), true, real_round_infinity(interval->n), true, real_round_infinity(interval->u));
388
386
  }
389
387
 
390
388
  /*
@@ -394,5 +392,5 @@ Interval* interval_round_infinity (Interval* interval)
394
392
  */
395
393
  Interval* interval_round_origin (Interval* interval)
396
394
  {
397
- return interval_new((Real*)real_round_origin(interval->l), true, (Real*)real_round_origin(interval->n), true, (Real*)real_round_origin(interval->u));
395
+ return interval_new(real_round_origin(interval->l), true, real_round_origin(interval->n), true, real_round_origin(interval->u));
398
396
  }
@@ -6,14 +6,14 @@ VALUE rb_cNumber;
6
6
  VALUE rb_NilClass_to_number (VALUE nil)
7
7
  {
8
8
  VALUE result = rb_obj_alloc(rb_cNumber);
9
- DATA_PTR(result) = (Complex*)complex_nan();
9
+ DATA_PTR(result) = complex_nan();
10
10
 
11
11
  return result;
12
12
  }
13
13
 
14
14
  VALUE rb_String_to_number (VALUE str)
15
15
  {
16
- VALUE complex_regex = rb_enc_reg_new("^(.*[^\\s]+)\\s*\\+\\s*(.*)i$", strlen("^(.*[^\\s]+)\\s*\\+\\s*(.*)i$"), rb_utf8_encoding(), 0);
16
+ VALUE complex_regex = rb_reg_new_str(rb_enc_str_new("^(.*[^\\s]+)\\s*\\+\\s*(.*)i$", strlen("^(.*[^\\s]+)\\s*\\+\\s*(.*)i$"), rb_utf8_encoding()), 0);
17
17
  VALUE complex_match = rb_funcall(complex_regex, rb_intern("match"), 1, str);
18
18
 
19
19
  if (RTEST(complex_match))
@@ -23,7 +23,7 @@ VALUE rb_String_to_number (VALUE str)
23
23
  }
24
24
  else
25
25
  {
26
- VALUE interval_regex = rb_enc_reg_new("^\\[(.*[^\\s]+)\\s*([<≤])\\s*\\((.*[^\\s]+)\\)\\s*([<≤])\\s*(.*[^\\s]+)\\]$", strlen("^\\[(.*[^\\s]+)\\s*([<≤])\\s*\\((.*[^\\s]+)\\)\\s*([<≤])\\s*(.*[^\\s]+)\\]$"), rb_utf8_encoding(), 0);
26
+ VALUE interval_regex = rb_reg_new_str(rb_enc_str_new("^\\[(.*[^\\s]+)\\s*([<≤])\\s*\\((.*[^\\s]+)\\)\\s*([<≤])\\s*(.*[^\\s]+)\\]$", strlen("^\\[(.*[^\\s]+)\\s*([<≤])\\s*\\((.*[^\\s]+)\\)\\s*([<≤])\\s*(.*[^\\s]+)\\]$"), rb_utf8_encoding()), 0);
27
27
  VALUE interval_match = rb_funcall(interval_regex, rb_intern("match"), 1, str);
28
28
 
29
29
  if (RTEST(interval_match))
@@ -33,44 +33,45 @@ VALUE rb_String_to_number (VALUE str)
33
33
  }
34
34
  else
35
35
  {
36
- VALUE real_regex = rb_enc_reg_new("^([+-]?[0-9]+):([+-]?[0-9]+)$", strlen("^([+-]?[0-9]+):([+-]?[0-9]+)$"), rb_utf8_encoding(), 0);
36
+ VALUE real_regex = rb_reg_new_str(rb_enc_str_new("^([+-]?[0-9]+):([+-]?[0-9]+)$", strlen("^([+-]?[0-9]+):([+-]?[0-9]+)$"), rb_utf8_encoding()), 0);
37
37
  VALUE real_match = rb_funcall(real_regex, rb_intern("match"), 1, str);
38
38
 
39
39
  if (RTEST(real_match))
40
40
  {
41
41
  VALUE real_captures = rb_funcall(real_match, rb_intern("captures"), 0);
42
42
  VALUE result = rb_obj_alloc(rb_cNumber);
43
- Real* real = (Real*)real_from_str(RSTRING_PTR(RARRAY_PTR(real_captures)[0]), NUM2LONG(rb_funcall(RARRAY_PTR(real_captures)[1], rb_intern("to_i"), 0)));
43
+ VALUE integer = rb_funcall(RARRAY_PTR(real_captures)[1], rb_intern("to_i"), 0);
44
+ Real* real = real_from_str((char*)RSTRING_PTR(RARRAY_PTR(real_captures)[0]), NUM2LONG(integer));
44
45
 
45
- DATA_PTR(result) = (Complex*)complex_from_real(real);
46
+ DATA_PTR(result) = complex_from_real(real);
46
47
  real_free(real);
47
48
 
48
49
  return result;
49
50
  }
50
- else if ((long)RSTRING_PTR(str)[0] == -61)
51
+ else if (RSTRING_PTR(str)[0] == -61)
51
52
  {
52
53
  VALUE result = rb_obj_alloc(rb_cNumber);
53
- DATA_PTR(result) = (Complex*)complex_nan();
54
+ DATA_PTR(result) = complex_nan();
54
55
 
55
56
  return result;
56
57
  }
57
- else if ((long)RSTRING_PTR(str)[0] == -30)
58
+ else if (RSTRING_PTR(str)[0] == -30)
58
59
  {
59
60
  VALUE result = rb_obj_alloc(rb_cNumber);
60
- DATA_PTR(result) = (Complex*)complex_pos_inf();
61
+ DATA_PTR(result) = complex_pos_inf();
61
62
 
62
63
  return result;
63
64
  }
64
- else if (((long)RSTRING_PTR(str)[0] == 43 || (long)RSTRING_PTR(str)[0] == 45) && (long)RSTRING_PTR(str)[1] == -30)
65
+ else if ((RSTRING_PTR(str)[0] == 43 || RSTRING_PTR(str)[0] == 45) && RSTRING_PTR(str)[1] == -30)
65
66
  {
66
67
  VALUE result = rb_obj_alloc(rb_cNumber);
67
- DATA_PTR(result) = ((long)RSTRING_PTR(str)[0] == 43) ? (Complex*)complex_pos_inf() : (Complex*)complex_neg_inf();
68
+ DATA_PTR(result) = (RSTRING_PTR(str)[0] == 43) ? complex_pos_inf() : complex_neg_inf();
68
69
 
69
70
  return result;
70
71
  }
71
72
  else
72
73
  {
73
- VALUE integer_regex = rb_enc_reg_new("^([+-]?[0-9]+)$", strlen("^([+-]?[0-9]+)$"), rb_utf8_encoding(), 0);
74
+ VALUE integer_regex = rb_reg_new_str(rb_enc_str_new("^([+-]?[0-9]+)$", strlen("^([+-]?[0-9]+)$"), rb_utf8_encoding()), 0);
74
75
  VALUE integer_match = rb_funcall(integer_regex, rb_intern("match"), 1, str);
75
76
 
76
77
  if (RTEST(integer_match))
@@ -92,7 +93,8 @@ VALUE rb_String_to_number (VALUE str)
92
93
  VALUE rb_Integer_to_number (VALUE integer)
93
94
  {
94
95
  VALUE result = rb_obj_alloc(rb_cNumber);
95
- DATA_PTR(result) = (Complex*)complex_from_int_str(RSTRING_PTR(rb_funcall(integer, rb_intern("to_s"), 0)));
96
+ VALUE str = rb_funcall(integer, rb_intern("to_s"), 0);
97
+ DATA_PTR(result) = complex_from_int_str((char*)RSTRING_PTR(str));
96
98
 
97
99
  return result;
98
100
  }
@@ -100,7 +102,9 @@ VALUE rb_Integer_to_number (VALUE integer)
100
102
  VALUE rb_Float_to_number (VALUE flo)
101
103
  {
102
104
  VALUE result = rb_obj_alloc(rb_cNumber);
103
- DATA_PTR(result) = (Complex*)complex_from_float_str(RSTRING_PTR(rb_funcall(rb_str_new2("%.15e"), rb_intern("%"), 1, flo)));
105
+ VALUE str = rb_funcall(rb_str_new2("%.15e"), rb_intern("%"), 1, flo);
106
+
107
+ DATA_PTR(result) = complex_from_float_str((char*)RSTRING_PTR(str));
104
108
 
105
109
  return result;
106
110
  }
@@ -110,11 +114,11 @@ VALUE rb_Complex_to_number (VALUE complex)
110
114
  Complex* re;
111
115
  Complex* im;
112
116
 
113
- re = (Complex*)DATA_PTR(rb_convert_type(rb_funcall(complex, rb_intern("real"), 0), T_DATA, "Number", "to_number"));
114
- im = (Complex*)DATA_PTR(rb_convert_type(rb_funcall(complex, rb_intern("imag"), 0), T_DATA, "Number", "to_number"));
117
+ re = DATA_PTR(rb_convert_type(rb_funcall(complex, rb_intern("real"), 0), T_DATA, "Number", "to_number"));
118
+ im = DATA_PTR(rb_convert_type(rb_funcall(complex, rb_intern("imag"), 0), T_DATA, "Number", "to_number"));
115
119
 
116
120
  VALUE result = rb_obj_alloc(rb_cNumber);
117
- DATA_PTR(result) = (Complex*)complex_new((Interval*)interval_dup(re->re), (Interval*)interval_dup(im->re));
121
+ DATA_PTR(result) = complex_new(interval_dup(re->re), interval_dup(im->re));
118
122
 
119
123
  return result;
120
124
  }
@@ -140,25 +144,25 @@ VALUE rb_f_Number (int argc, VALUE* argv, VALUE obj)
140
144
  {
141
145
  case 1:
142
146
  tmp_A = rb_convert_type(arg1, T_DATA, "Number", "to_number");
143
- tmp1 = (Complex*)DATA_PTR(tmp_A);
147
+ tmp1 = DATA_PTR(tmp_A);
144
148
 
145
- DATA_PTR(result) = (Complex*)complex_dup(tmp1);
149
+ DATA_PTR(result) = complex_dup(tmp1);
146
150
  break;
147
151
 
148
152
  case 2:
149
153
  tmp_A = rb_convert_type(arg1, T_DATA, "Number", "to_number");
150
154
  tmp_B = rb_convert_type(arg2, T_DATA, "Number", "to_number");
151
155
 
152
- tmp1 = (Complex*)DATA_PTR(tmp_A);
153
- tmp2 = (Complex*)DATA_PTR(tmp_B);
156
+ tmp1 = DATA_PTR(tmp_A);
157
+ tmp2 = DATA_PTR(tmp_B);
154
158
 
155
- Interval* re1 = (Interval*)tmp1->re;
156
- Interval* re2 = (Interval*)tmp2->re;
159
+ Interval* re1 = tmp1->re;
160
+ Interval* re2 = tmp2->re;
157
161
 
158
- i1 = (Interval*)interval_dup(re1);
159
- i2 = (Interval*)interval_dup(re2);
162
+ i1 = interval_dup(re1);
163
+ i2 = interval_dup(re2);
160
164
 
161
- DATA_PTR(result) = (Complex*)complex_new(i1, i2);
165
+ DATA_PTR(result) = complex_new(i1, i2);
162
166
  break;
163
167
 
164
168
  default:
@@ -166,25 +170,25 @@ VALUE rb_f_Number (int argc, VALUE* argv, VALUE obj)
166
170
  tmp_B = rb_convert_type(arg2, T_DATA, "Number", "to_number");
167
171
  tmp_C = rb_convert_type(arg3, T_DATA, "Number", "to_number");
168
172
 
169
- tmp1 = (Complex*)DATA_PTR(tmp_A);
170
- tmp2 = (Complex*)DATA_PTR(tmp_B);
171
- tmp3 = (Complex*)DATA_PTR(tmp_C);
173
+ tmp1 = DATA_PTR(tmp_A);
174
+ tmp2 = DATA_PTR(tmp_B);
175
+ tmp3 = DATA_PTR(tmp_C);
172
176
 
173
- Real* n1 = (Real*)tmp1->re->n;
174
- Real* n2 = (Real*)tmp2->re->n;
175
- Real* n3 = (Real*)tmp3->re->n;
177
+ Real* n1 = tmp1->re->n;
178
+ Real* n2 = tmp2->re->n;
179
+ Real* n3 = tmp3->re->n;
176
180
 
177
- Real* r1 = (Real*)real_dup(n1);
178
- Real* r2 = (Real*)real_dup(n2);
179
- Real* r3 = (Real*)real_dup(n3);
181
+ Real* r1 = real_dup(n1);
182
+ Real* r2 = real_dup(n2);
183
+ Real* r3 = real_dup(n3);
180
184
 
181
185
  int L = (argc == 3) ? true : RTEST(arg4);
182
186
  int R = (argc == 5) ? RTEST(arg5) : L;
183
187
 
184
- i1 = (Interval*)interval_new(r1, L, r2, R, r3);
185
- i2 = (Interval*)interval_zero();
188
+ i1 = interval_new(r1, L, r2, R, r3);
189
+ i2 = interval_zero();
186
190
 
187
- DATA_PTR(result) = (Complex*)complex_new(i1, i2);
191
+ DATA_PTR(result) = complex_new(i1, i2);
188
192
  break;
189
193
  }
190
194
 
@@ -193,7 +197,6 @@ VALUE rb_f_Number (int argc, VALUE* argv, VALUE obj)
193
197
 
194
198
  VALUE rb_Number_s_allocate (VALUE klass)
195
199
  {
196
- void complex_free (Complex*);
197
200
  return Data_Wrap_Struct(klass, 0, complex_free, 0);
198
201
  }
199
202
 
@@ -211,7 +214,7 @@ VALUE rb_Number_s_set_digits (VALUE klass, VALUE n)
211
214
  VALUE rb_Number_s_nan (VALUE klass)
212
215
  {
213
216
  VALUE result = rb_obj_alloc(rb_cNumber);
214
- DATA_PTR(result) = (Complex*)complex_nan();
217
+ DATA_PTR(result) = complex_nan();
215
218
 
216
219
  return result;
217
220
  }
@@ -219,7 +222,7 @@ VALUE rb_Number_s_nan (VALUE klass)
219
222
  VALUE rb_Number_s_pos_inf (VALUE klass)
220
223
  {
221
224
  VALUE result = rb_obj_alloc(rb_cNumber);
222
- DATA_PTR(result) = (Complex*)complex_pos_inf();
225
+ DATA_PTR(result) = complex_pos_inf();
223
226
 
224
227
  return result;
225
228
  }
@@ -227,7 +230,7 @@ VALUE rb_Number_s_pos_inf (VALUE klass)
227
230
  VALUE rb_Number_s_neg_inf (VALUE klass)
228
231
  {
229
232
  VALUE result = rb_obj_alloc(rb_cNumber);
230
- DATA_PTR(result) = (Complex*)complex_neg_inf();
233
+ DATA_PTR(result) = complex_neg_inf();
231
234
 
232
235
  return result;
233
236
  }
@@ -235,7 +238,7 @@ VALUE rb_Number_s_neg_inf (VALUE klass)
235
238
  VALUE rb_Number_s_zero (VALUE klass)
236
239
  {
237
240
  VALUE result = rb_obj_alloc(rb_cNumber);
238
- DATA_PTR(result) = (Complex*)complex_zero();
241
+ DATA_PTR(result) = complex_zero();
239
242
 
240
243
  return result;
241
244
  }
@@ -243,7 +246,7 @@ VALUE rb_Number_s_zero (VALUE klass)
243
246
  VALUE rb_Number_s_one (VALUE klass)
244
247
  {
245
248
  VALUE result = rb_obj_alloc(rb_cNumber);
246
- DATA_PTR(result) = (Complex*)complex_one();
249
+ DATA_PTR(result) = complex_one();
247
250
 
248
251
  return result;
249
252
  }
@@ -251,7 +254,7 @@ VALUE rb_Number_s_one (VALUE klass)
251
254
  VALUE rb_Number_s_pi (VALUE klass)
252
255
  {
253
256
  VALUE result = rb_obj_alloc(rb_cNumber);
254
- DATA_PTR(result) = (Complex*)complex_pi();
257
+ DATA_PTR(result) = complex_pi();
255
258
 
256
259
  return result;
257
260
  }
@@ -259,7 +262,7 @@ VALUE rb_Number_s_pi (VALUE klass)
259
262
  VALUE rb_Number_s_e (VALUE klass)
260
263
  {
261
264
  VALUE result = rb_obj_alloc(rb_cNumber);
262
- DATA_PTR(result) = (Complex*)complex_e();
265
+ DATA_PTR(result) = complex_e();
263
266
 
264
267
  return result;
265
268
  }
@@ -267,7 +270,7 @@ VALUE rb_Number_s_e (VALUE klass)
267
270
  VALUE rb_Number_s_i (VALUE klass)
268
271
  {
269
272
  VALUE result = rb_obj_alloc(rb_cNumber);
270
- DATA_PTR(result) = (Complex*)complex_i();
273
+ DATA_PTR(result) = complex_i();
271
274
 
272
275
  return result;
273
276
  }
@@ -326,7 +329,7 @@ VALUE rb_Number_to_s (VALUE number)
326
329
 
327
330
  complex_print(buf, DATA_PTR(number));
328
331
 
329
- return rb_str_new_cstr(buf);
332
+ return rb_str_new2(buf);
330
333
  }
331
334
 
332
335
  VALUE rb_Number_dummy (VALUE number)
@@ -342,7 +345,7 @@ VALUE rb_Number_coerce (VALUE a, VALUE b)
342
345
  VALUE rb_Number_add (VALUE a, VALUE b)
343
346
  {
344
347
  VALUE result = rb_obj_alloc(rb_cNumber);
345
- DATA_PTR(result) = (Complex*)complex_add(DATA_PTR(a), DATA_PTR(rb_convert_type(b, T_DATA, "Number", "to_number")));
348
+ DATA_PTR(result) = complex_add(DATA_PTR(a), DATA_PTR(rb_convert_type(b, T_DATA, "Number", "to_number")));
346
349
 
347
350
  return result;
348
351
  }
@@ -350,7 +353,7 @@ VALUE rb_Number_add (VALUE a, VALUE b)
350
353
  VALUE rb_Number_subtract (VALUE a, VALUE b)
351
354
  {
352
355
  VALUE result = rb_obj_alloc(rb_cNumber);
353
- DATA_PTR(result) = (Complex*)complex_subtract(DATA_PTR(a), DATA_PTR(rb_convert_type(b, T_DATA, "Number", "to_number")));
356
+ DATA_PTR(result) = complex_subtract(DATA_PTR(a), DATA_PTR(rb_convert_type(b, T_DATA, "Number", "to_number")));
354
357
 
355
358
  return result;
356
359
  }
@@ -358,7 +361,7 @@ VALUE rb_Number_subtract (VALUE a, VALUE b)
358
361
  VALUE rb_Number_multiply (VALUE a, VALUE b)
359
362
  {
360
363
  VALUE result = rb_obj_alloc(rb_cNumber);
361
- DATA_PTR(result) = (Complex*)complex_multiply(DATA_PTR(a), DATA_PTR(rb_convert_type(b, T_DATA, "Number", "to_number")));
364
+ DATA_PTR(result) = complex_multiply(DATA_PTR(a), DATA_PTR(rb_convert_type(b, T_DATA, "Number", "to_number")));
362
365
 
363
366
  return result;
364
367
  }
@@ -366,7 +369,7 @@ VALUE rb_Number_multiply (VALUE a, VALUE b)
366
369
  VALUE rb_Number_divide (VALUE a, VALUE b)
367
370
  {
368
371
  VALUE result = rb_obj_alloc(rb_cNumber);
369
- DATA_PTR(result) = (Complex*)complex_divide(DATA_PTR(a), DATA_PTR(rb_convert_type(b, T_DATA, "Number", "to_number")));
372
+ DATA_PTR(result) = complex_divide(DATA_PTR(a), DATA_PTR(rb_convert_type(b, T_DATA, "Number", "to_number")));
370
373
 
371
374
  return result;
372
375
  }
@@ -374,7 +377,7 @@ VALUE rb_Number_divide (VALUE a, VALUE b)
374
377
  VALUE rb_Number_modulo (VALUE a, VALUE b)
375
378
  {
376
379
  VALUE result = rb_obj_alloc(rb_cNumber);
377
- DATA_PTR(result) = (Complex*)complex_modulo(DATA_PTR(a), DATA_PTR(rb_convert_type(b, T_DATA, "Number", "to_number")));
380
+ DATA_PTR(result) = complex_modulo(DATA_PTR(a), DATA_PTR(rb_convert_type(b, T_DATA, "Number", "to_number")));
378
381
 
379
382
  return result;
380
383
  }
@@ -392,7 +395,7 @@ VALUE rb_Number_eqq_p (VALUE a, VALUE b)
392
395
  VALUE rb_Number_abs (VALUE number)
393
396
  {
394
397
  VALUE result = rb_obj_alloc(rb_cNumber);
395
- DATA_PTR(result) = (Complex*)complex_abs(DATA_PTR(number));
398
+ DATA_PTR(result) = complex_abs(DATA_PTR(number));
396
399
 
397
400
  return result;
398
401
  }
@@ -400,7 +403,7 @@ VALUE rb_Number_abs (VALUE number)
400
403
  VALUE rb_Number_area (VALUE number)
401
404
  {
402
405
  VALUE result = rb_obj_alloc(rb_cNumber);
403
- DATA_PTR(result) = (Complex*)complex_area(DATA_PTR(number));
406
+ DATA_PTR(result) = complex_area(DATA_PTR(number));
404
407
 
405
408
  return result;
406
409
  }
@@ -413,7 +416,7 @@ VALUE rb_Number_complex_p (VALUE number)
413
416
  VALUE rb_Number_conjugate (VALUE number)
414
417
  {
415
418
  VALUE result = rb_obj_alloc(rb_cNumber);
416
- DATA_PTR(result) = (Complex*)complex_conjugate(DATA_PTR(number));
419
+ DATA_PTR(result) = complex_conjugate(DATA_PTR(number));
417
420
 
418
421
  return result;
419
422
  }
@@ -421,7 +424,7 @@ VALUE rb_Number_conjugate (VALUE number)
421
424
  VALUE rb_Number_diagonal (VALUE number)
422
425
  {
423
426
  VALUE result = rb_obj_alloc(rb_cNumber);
424
- DATA_PTR(result) = (Complex*)complex_diagonal(DATA_PTR(number));
427
+ DATA_PTR(result) = complex_diagonal(DATA_PTR(number));
425
428
 
426
429
  return result;
427
430
  }
@@ -429,7 +432,7 @@ VALUE rb_Number_diagonal (VALUE number)
429
432
  VALUE rb_Number_imag (VALUE number)
430
433
  {
431
434
  VALUE result = rb_obj_alloc(rb_cNumber);
432
- DATA_PTR(result) = (Complex*)complex_im(DATA_PTR(number));
435
+ DATA_PTR(result) = complex_im(DATA_PTR(number));
433
436
 
434
437
  return result;
435
438
  }
@@ -437,7 +440,7 @@ VALUE rb_Number_imag (VALUE number)
437
440
  VALUE rb_Number_negate (VALUE number)
438
441
  {
439
442
  VALUE result = rb_obj_alloc(rb_cNumber);
440
- DATA_PTR(result) = (Complex*)complex_negate(DATA_PTR(number));
443
+ DATA_PTR(result) = complex_negate(DATA_PTR(number));
441
444
 
442
445
  return result;
443
446
  }
@@ -445,7 +448,7 @@ VALUE rb_Number_negate (VALUE number)
445
448
  VALUE rb_Number_real (VALUE number)
446
449
  {
447
450
  VALUE result = rb_obj_alloc(rb_cNumber);
448
- DATA_PTR(result) = (Complex*)complex_re(DATA_PTR(number));
451
+ DATA_PTR(result) = complex_re(DATA_PTR(number));
449
452
 
450
453
  return result;
451
454
  }
@@ -458,7 +461,7 @@ VALUE rb_Number_real_p (VALUE number)
458
461
  VALUE rb_Number_reflect (VALUE number)
459
462
  {
460
463
  VALUE result = rb_obj_alloc(rb_cNumber);
461
- DATA_PTR(result) = (Complex*)complex_reflect(DATA_PTR(number));
464
+ DATA_PTR(result) = complex_reflect(DATA_PTR(number));
462
465
 
463
466
  return result;
464
467
  }
@@ -466,7 +469,7 @@ VALUE rb_Number_reflect (VALUE number)
466
469
  VALUE rb_Number_round (VALUE number)
467
470
  {
468
471
  VALUE result = rb_obj_alloc(rb_cNumber);
469
- DATA_PTR(result) = (Complex*)complex_round(DATA_PTR(number));
472
+ DATA_PTR(result) = complex_round(DATA_PTR(number));
470
473
 
471
474
  return result;
472
475
  }
@@ -474,7 +477,7 @@ VALUE rb_Number_round (VALUE number)
474
477
  VALUE rb_Number_sqrt (VALUE number)
475
478
  {
476
479
  VALUE result = rb_obj_alloc(rb_cNumber);
477
- DATA_PTR(result) = (Complex*)complex_sqrt(DATA_PTR(number));
480
+ DATA_PTR(result) = complex_sqrt(DATA_PTR(number));
478
481
 
479
482
  return result;
480
483
  }
@@ -482,7 +485,7 @@ VALUE rb_Number_sqrt (VALUE number)
482
485
  VALUE rb_Number_round_c_c (VALUE number)
483
486
  {
484
487
  VALUE result = rb_obj_alloc(rb_cNumber);
485
- DATA_PTR(result) = (Complex*)complex_round_c_c(DATA_PTR(number));
488
+ DATA_PTR(result) = complex_round_c_c(DATA_PTR(number));
486
489
 
487
490
  return result;
488
491
  }
@@ -490,7 +493,7 @@ VALUE rb_Number_round_c_c (VALUE number)
490
493
  VALUE rb_Number_round_c_f (VALUE number)
491
494
  {
492
495
  VALUE result = rb_obj_alloc(rb_cNumber);
493
- DATA_PTR(result) = (Complex*)complex_round_c_f(DATA_PTR(number));
496
+ DATA_PTR(result) = complex_round_c_f(DATA_PTR(number));
494
497
 
495
498
  return result;
496
499
  }
@@ -498,7 +501,7 @@ VALUE rb_Number_round_c_f (VALUE number)
498
501
  VALUE rb_Number_round_f_c (VALUE number)
499
502
  {
500
503
  VALUE result = rb_obj_alloc(rb_cNumber);
501
- DATA_PTR(result) = (Complex*)complex_round_f_c(DATA_PTR(number));
504
+ DATA_PTR(result) = complex_round_f_c(DATA_PTR(number));
502
505
 
503
506
  return result;
504
507
  }
@@ -506,7 +509,7 @@ VALUE rb_Number_round_f_c (VALUE number)
506
509
  VALUE rb_Number_round_f_f (VALUE number)
507
510
  {
508
511
  VALUE result = rb_obj_alloc(rb_cNumber);
509
- DATA_PTR(result) = (Complex*)complex_round_f_f(DATA_PTR(number));
512
+ DATA_PTR(result) = complex_round_f_f(DATA_PTR(number));
510
513
 
511
514
  return result;
512
515
  }
@@ -514,7 +517,7 @@ VALUE rb_Number_round_f_f (VALUE number)
514
517
  VALUE rb_Number_round_i_i (VALUE number)
515
518
  {
516
519
  VALUE result = rb_obj_alloc(rb_cNumber);
517
- DATA_PTR(result) = (Complex*)complex_round_i_i(DATA_PTR(number));
520
+ DATA_PTR(result) = complex_round_i_i(DATA_PTR(number));
518
521
 
519
522
  return result;
520
523
  }
@@ -522,7 +525,7 @@ VALUE rb_Number_round_i_i (VALUE number)
522
525
  VALUE rb_Number_round_i_o (VALUE number)
523
526
  {
524
527
  VALUE result = rb_obj_alloc(rb_cNumber);
525
- DATA_PTR(result) = (Complex*)complex_round_i_o(DATA_PTR(number));
528
+ DATA_PTR(result) = complex_round_i_o(DATA_PTR(number));
526
529
 
527
530
  return result;
528
531
  }
@@ -530,7 +533,7 @@ VALUE rb_Number_round_i_o (VALUE number)
530
533
  VALUE rb_Number_round_o_i (VALUE number)
531
534
  {
532
535
  VALUE result = rb_obj_alloc(rb_cNumber);
533
- DATA_PTR(result) = (Complex*)complex_round_o_i(DATA_PTR(number));
536
+ DATA_PTR(result) = complex_round_o_i(DATA_PTR(number));
534
537
 
535
538
  return result;
536
539
  }
@@ -538,7 +541,7 @@ VALUE rb_Number_round_o_i (VALUE number)
538
541
  VALUE rb_Number_round_o_o (VALUE number)
539
542
  {
540
543
  VALUE result = rb_obj_alloc(rb_cNumber);
541
- DATA_PTR(result) = (Complex*)complex_round_o_o(DATA_PTR(number));
544
+ DATA_PTR(result) = complex_round_o_o(DATA_PTR(number));
542
545
 
543
546
  return result;
544
547
  }
@@ -546,7 +549,7 @@ VALUE rb_Number_round_o_o (VALUE number)
546
549
  VALUE rb_Number_complex_ll (VALUE number)
547
550
  {
548
551
  VALUE result = rb_obj_alloc(rb_cNumber);
549
- DATA_PTR(result) = (Complex*)complex_ll(DATA_PTR(number));
552
+ DATA_PTR(result) = complex_ll(DATA_PTR(number));
550
553
 
551
554
  return result;
552
555
  }
@@ -554,7 +557,7 @@ VALUE rb_Number_complex_ll (VALUE number)
554
557
  VALUE rb_Number_complex_lu (VALUE number)
555
558
  {
556
559
  VALUE result = rb_obj_alloc(rb_cNumber);
557
- DATA_PTR(result) = (Complex*)complex_lu(DATA_PTR(number));
560
+ DATA_PTR(result) = complex_lu(DATA_PTR(number));
558
561
 
559
562
  return result;
560
563
  }
@@ -562,7 +565,7 @@ VALUE rb_Number_complex_lu (VALUE number)
562
565
  VALUE rb_Number_complex_n (VALUE number)
563
566
  {
564
567
  VALUE result = rb_obj_alloc(rb_cNumber);
565
- DATA_PTR(result) = (Complex*)complex_n(DATA_PTR(number));
568
+ DATA_PTR(result) = complex_n(DATA_PTR(number));
566
569
 
567
570
  return result;
568
571
  }
@@ -570,7 +573,7 @@ VALUE rb_Number_complex_n (VALUE number)
570
573
  VALUE rb_Number_complex_ul (VALUE number)
571
574
  {
572
575
  VALUE result = rb_obj_alloc(rb_cNumber);
573
- DATA_PTR(result) = (Complex*)complex_ul(DATA_PTR(number));
576
+ DATA_PTR(result) = complex_ul(DATA_PTR(number));
574
577
 
575
578
  return result;
576
579
  }
@@ -578,7 +581,7 @@ VALUE rb_Number_complex_ul (VALUE number)
578
581
  VALUE rb_Number_complex_uu (VALUE number)
579
582
  {
580
583
  VALUE result = rb_obj_alloc(rb_cNumber);
581
- DATA_PTR(result) = (Complex*)complex_uu(DATA_PTR(number));
584
+ DATA_PTR(result) = complex_uu(DATA_PTR(number));
582
585
 
583
586
  return result;
584
587
  }
@@ -586,7 +589,7 @@ VALUE rb_Number_complex_uu (VALUE number)
586
589
  VALUE rb_Number_complex_magnitude (VALUE number)
587
590
  {
588
591
  VALUE result = rb_obj_alloc(rb_cNumber);
589
- DATA_PTR(result) = (Complex*)complex_magnitude(DATA_PTR(number));
592
+ DATA_PTR(result) = complex_magnitude(DATA_PTR(number));
590
593
 
591
594
  return result;
592
595
  }
@@ -594,7 +597,7 @@ VALUE rb_Number_complex_magnitude (VALUE number)
594
597
  VALUE rb_Number_complex_mignitude (VALUE number)
595
598
  {
596
599
  VALUE result = rb_obj_alloc(rb_cNumber);
597
- DATA_PTR(result) = (Complex*)complex_mignitude(DATA_PTR(number));
600
+ DATA_PTR(result) = complex_mignitude(DATA_PTR(number));
598
601
 
599
602
  return result;
600
603
  }
@@ -602,7 +605,7 @@ VALUE rb_Number_complex_mignitude (VALUE number)
602
605
  VALUE rb_Number_complex_width (VALUE number)
603
606
  {
604
607
  VALUE result = rb_obj_alloc(rb_cNumber);
605
- DATA_PTR(result) = (Complex*)complex_width(DATA_PTR(number));
608
+ DATA_PTR(result) = complex_width(DATA_PTR(number));
606
609
 
607
610
  return result;
608
611
  }
@@ -610,7 +613,7 @@ VALUE rb_Number_complex_width (VALUE number)
610
613
  VALUE rb_Number_imag_l (VALUE number)
611
614
  {
612
615
  VALUE result = rb_obj_alloc(rb_cNumber);
613
- DATA_PTR(result) = (Complex*)complex_im_l(DATA_PTR(number));
616
+ DATA_PTR(result) = complex_im_l(DATA_PTR(number));
614
617
 
615
618
  return result;
616
619
  }
@@ -618,7 +621,7 @@ VALUE rb_Number_imag_l (VALUE number)
618
621
  VALUE rb_Number_imag_n (VALUE number)
619
622
  {
620
623
  VALUE result = rb_obj_alloc(rb_cNumber);
621
- DATA_PTR(result) = (Complex*)complex_im_n(DATA_PTR(number));
624
+ DATA_PTR(result) = complex_im_n(DATA_PTR(number));
622
625
 
623
626
  return result;
624
627
  }
@@ -626,7 +629,7 @@ VALUE rb_Number_imag_n (VALUE number)
626
629
  VALUE rb_Number_imag_u (VALUE number)
627
630
  {
628
631
  VALUE result = rb_obj_alloc(rb_cNumber);
629
- DATA_PTR(result) = (Complex*)complex_im_u(DATA_PTR(number));
632
+ DATA_PTR(result) = complex_im_u(DATA_PTR(number));
630
633
 
631
634
  return result;
632
635
  }
@@ -634,7 +637,7 @@ VALUE rb_Number_imag_u (VALUE number)
634
637
  VALUE rb_Number_imag_magnitude (VALUE number)
635
638
  {
636
639
  VALUE result = rb_obj_alloc(rb_cNumber);
637
- DATA_PTR(result) = (Complex*)complex_im_magnitude(DATA_PTR(number));
640
+ DATA_PTR(result) = complex_im_magnitude(DATA_PTR(number));
638
641
 
639
642
  return result;
640
643
  }
@@ -642,7 +645,7 @@ VALUE rb_Number_imag_magnitude (VALUE number)
642
645
  VALUE rb_Number_imag_mignitude (VALUE number)
643
646
  {
644
647
  VALUE result = rb_obj_alloc(rb_cNumber);
645
- DATA_PTR(result) = (Complex*)complex_im_mignitude(DATA_PTR(number));
648
+ DATA_PTR(result) = complex_im_mignitude(DATA_PTR(number));
646
649
 
647
650
  return result;
648
651
  }
@@ -650,7 +653,7 @@ VALUE rb_Number_imag_mignitude (VALUE number)
650
653
  VALUE rb_Number_imag_width (VALUE number)
651
654
  {
652
655
  VALUE result = rb_obj_alloc(rb_cNumber);
653
- DATA_PTR(result) = (Complex*)complex_im_width(DATA_PTR(number));
656
+ DATA_PTR(result) = complex_im_width(DATA_PTR(number));
654
657
 
655
658
  return result;
656
659
  }
@@ -658,7 +661,7 @@ VALUE rb_Number_imag_width (VALUE number)
658
661
  VALUE rb_Number_real_l (VALUE number)
659
662
  {
660
663
  VALUE result = rb_obj_alloc(rb_cNumber);
661
- DATA_PTR(result) = (Complex*)complex_re_l(DATA_PTR(number));
664
+ DATA_PTR(result) = complex_re_l(DATA_PTR(number));
662
665
 
663
666
  return result;
664
667
  }
@@ -666,7 +669,7 @@ VALUE rb_Number_real_l (VALUE number)
666
669
  VALUE rb_Number_real_n (VALUE number)
667
670
  {
668
671
  VALUE result = rb_obj_alloc(rb_cNumber);
669
- DATA_PTR(result) = (Complex*)complex_re_n(DATA_PTR(number));
672
+ DATA_PTR(result) = complex_re_n(DATA_PTR(number));
670
673
 
671
674
  return result;
672
675
  }
@@ -674,7 +677,7 @@ VALUE rb_Number_real_n (VALUE number)
674
677
  VALUE rb_Number_real_u (VALUE number)
675
678
  {
676
679
  VALUE result = rb_obj_alloc(rb_cNumber);
677
- DATA_PTR(result) = (Complex*)complex_re_u(DATA_PTR(number));
680
+ DATA_PTR(result) = complex_re_u(DATA_PTR(number));
678
681
 
679
682
  return result;
680
683
  }
@@ -682,7 +685,7 @@ VALUE rb_Number_real_u (VALUE number)
682
685
  VALUE rb_Number_real_magnitude (VALUE number)
683
686
  {
684
687
  VALUE result = rb_obj_alloc(rb_cNumber);
685
- DATA_PTR(result) = (Complex*)complex_re_magnitude(DATA_PTR(number));
688
+ DATA_PTR(result) = complex_re_magnitude(DATA_PTR(number));
686
689
 
687
690
  return result;
688
691
  }
@@ -690,7 +693,7 @@ VALUE rb_Number_real_magnitude (VALUE number)
690
693
  VALUE rb_Number_real_mignitude (VALUE number)
691
694
  {
692
695
  VALUE result = rb_obj_alloc(rb_cNumber);
693
- DATA_PTR(result) = (Complex*)complex_re_mignitude(DATA_PTR(number));
696
+ DATA_PTR(result) = complex_re_mignitude(DATA_PTR(number));
694
697
 
695
698
  return result;
696
699
  }
@@ -698,7 +701,7 @@ VALUE rb_Number_real_mignitude (VALUE number)
698
701
  VALUE rb_Number_real_width (VALUE number)
699
702
  {
700
703
  VALUE result = rb_obj_alloc(rb_cNumber);
701
- DATA_PTR(result) = (Complex*)complex_re_width(DATA_PTR(number));
704
+ DATA_PTR(result) = complex_re_width(DATA_PTR(number));
702
705
 
703
706
  return result;
704
707
  }