ruby-mpfi 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,7 @@
1
+ === 0.0.4
2
+ * 1 bug fix:
3
+ * Fix bugs of Methods MPFI::SquareMatrix, MPFI::ColumnVector, and MPFI::RowVector.
4
+
1
5
  === 0.0.3 2009-12-19
2
6
  * 1 major enhancement:
3
7
  * Add methods MPFI, MPFI::Complex, MPFI::Matrix, MPFI::SquareMatrix, MPFI::ColumnVector, and MPFI::RowVector.
data/README.rdoc CHANGED
@@ -3,26 +3,39 @@
3
3
  * http://rubyforge.org/projects/ruby-mpfr/
4
4
  * http://gemcutter.org/gems/ruby-mpfi/
5
5
 
6
- == DESCRIPTION:
6
+ == Description:
7
7
 
8
- FIX (describe your package)
8
+ ruby-mpfi is an extended C library to use MPFI[http://gforge.inria.fr/projects/mpfi/]
9
+ which is the library of the interval arithmetic with multiprecision.
9
10
 
10
- == FEATURES/PROBLEMS:
11
+ == Notice:
11
12
 
12
- * FIX (list of features or problems)
13
+ * Many methods have not been tested sufficiently.
14
+ * Documentation is not complete.
13
15
 
14
- == SYNOPSIS:
16
+ == Example:
17
+ You must require 'mpfr' to use 'mpfi'.
18
+
19
+ require "mpfr"
20
+ require "mpfi"
21
+ MPFR.set_default_prec(100)
22
+ a = MPFI(-5)
23
+ b = MPFI(3.4)
24
+ c = a - b
15
25
 
16
- FIX (code sample of usage)
17
26
 
18
27
  == Requirements:
19
28
 
20
- * MPFR
21
- * MPFI
29
+ * Ruby[http://www.ruby-lang.org/] 1.9.1 or later
30
+ * MPFR[http://www.mpfr.org/] 2.4.1 or later
31
+ * MPFI[http://gforge.inria.fr/projects/mpfi/] 1.3.4 or later
22
32
  * ruby-mpfr
23
33
 
24
34
  == Install:
25
-
35
+ The package of rubygems of ruby-mpfr is provided.
36
+ You can install ruby-mpfr with the following command
37
+ in the system satisfying the above requirements.
38
+
26
39
  $ sudo gem install ruby-mpfi
27
40
 
28
41
  == License:
data/ext/mpfi/ruby_mpfi.c CHANGED
@@ -87,6 +87,8 @@ VALUE r_mpfi_new_fi_obj(VALUE obj)
87
87
  }
88
88
 
89
89
  /* Initializing and Assigning Intervals */
90
+
91
+ /* Allocation function. */
90
92
  static VALUE r_mpfi_alloc(VALUE self)
91
93
  {
92
94
  MPFI *ptr;
@@ -124,6 +126,7 @@ static VALUE r_mpfi_global_new(int argc, VALUE *argv, VALUE self)
124
126
  return val;
125
127
  }
126
128
 
129
+ /* Two optional arguments are acceptable. First argument is value and second is precision. */
127
130
  static VALUE r_mpfi_initialize(int argc, VALUE *argv, VALUE self)
128
131
  {
129
132
  MPFI *ptr;
@@ -132,6 +135,7 @@ static VALUE r_mpfi_initialize(int argc, VALUE *argv, VALUE self)
132
135
  return Qtrue;
133
136
  }
134
137
 
138
+ /* initialize_copy. */
135
139
  static VALUE r_mpfi_initialize_copy(VALUE self, VALUE other)
136
140
  {
137
141
  MPFI *ptr_self, *ptr_other;
@@ -153,6 +157,7 @@ static VALUE r_mpfi_coerce(VALUE self, VALUE other)
153
157
  return rb_ary_new3(2, val_other, self);
154
158
  }
155
159
 
160
+ /* Set the value. */
156
161
  static VALUE r_mpfi_set (VALUE self, VALUE arg)
157
162
  {
158
163
  MPFI *ptr_self;
@@ -161,6 +166,7 @@ static VALUE r_mpfi_set (VALUE self, VALUE arg)
161
166
  return self;
162
167
  }
163
168
 
169
+ /* Swap value for other MPFI instance. */
164
170
  static VALUE r_mpfi_swap (VALUE self, VALUE other)
165
171
  {
166
172
  MPFI *ptr_self, *ptr_other;
@@ -175,7 +181,10 @@ static VALUE r_mpfi_swap (VALUE self, VALUE other)
175
181
  /* ------------------------------ Rounding Modes and Precision Handling start ------------------------------*/
176
182
 
177
183
  /* Need to consider returned value later. */
178
- /* mpfi_set_prec is different from reference manual. This is strange. */
184
+ /*
185
+ Set the precision of self.
186
+ Notice that mpfi_set_prec is different from reference manual. This is strange.
187
+ */
179
188
  static VALUE r_mpfi_set_prec (VALUE self, VALUE prec)
180
189
  {
181
190
  MPFI *ptr_self;
@@ -188,6 +197,7 @@ static VALUE r_mpfi_set_prec (VALUE self, VALUE prec)
188
197
  }
189
198
 
190
199
  /* Need to consider returned value later. */
200
+ /* Return precision of self. */
191
201
  static VALUE r_mpfi_get_prec (VALUE self)
192
202
  {
193
203
  MPFI *ptr_self;
@@ -196,6 +206,7 @@ static VALUE r_mpfi_get_prec (VALUE self)
196
206
  }
197
207
 
198
208
  /* Need to consider returned value later. */
209
+ /* mpfi_round_prec(self, prec) */
199
210
  static VALUE r_mpfi_round_prec (VALUE self, VALUE prec)
200
211
  {
201
212
  MPFI *ptr_self;
@@ -207,6 +218,7 @@ static VALUE r_mpfi_round_prec (VALUE self, VALUE prec)
207
218
 
208
219
  /* ------------------------------ string start ------------------------------ */
209
220
 
221
+ /* String for inspect. */
210
222
  static VALUE r_mpfi_inspect(VALUE self)
211
223
  {
212
224
  MPFI *ptr_s;
@@ -219,6 +231,7 @@ static VALUE r_mpfi_inspect(VALUE self)
219
231
  return ret_val;
220
232
  }
221
233
 
234
+ /* Return array having two strings to which endpoints is converted. */
222
235
  static VALUE r_mpfi_to_str_ary(VALUE self)
223
236
  {
224
237
  MPFI *ptr_self;
@@ -232,7 +245,7 @@ static VALUE r_mpfi_to_str_ary(VALUE self)
232
245
  return rb_ary_new3(2, str1, str2);
233
246
  }
234
247
 
235
- /* Output self by sprintf. */
248
+ /* Return array having two strings to which endpoints are converted by mpfr_asprintf with format_str. */
236
249
  static VALUE r_mpfi_to_strf_ary(VALUE self, VALUE format_str)
237
250
  {
238
251
  MPFI *ptr_self;
@@ -251,6 +264,7 @@ static VALUE r_mpfi_to_strf_ary(VALUE self, VALUE format_str)
251
264
 
252
265
  /* ------------------------------ Basic Arithmetic Functions start ------------------------------ */
253
266
 
267
+ /* Return self + p1. */
254
268
  static VALUE r_mpfi_add (VALUE self, VALUE other)
255
269
  {
256
270
  VALUE val_ret;
@@ -279,6 +293,7 @@ static VALUE r_mpfi_add (VALUE self, VALUE other)
279
293
  return val_ret;
280
294
  }
281
295
 
296
+ /* Return self - p1. */
282
297
  static VALUE r_mpfi_sub (VALUE self, VALUE other)
283
298
  {
284
299
  VALUE val_ret;
@@ -307,6 +322,7 @@ static VALUE r_mpfi_sub (VALUE self, VALUE other)
307
322
  return val_ret;
308
323
  }
309
324
 
325
+ /* Return self * p1. */
310
326
  static VALUE r_mpfi_mul (VALUE self, VALUE other)
311
327
  {
312
328
  VALUE val_ret;
@@ -335,6 +351,7 @@ static VALUE r_mpfi_mul (VALUE self, VALUE other)
335
351
  return val_ret;
336
352
  }
337
353
 
354
+ /* Return self / p1. */
338
355
  static VALUE r_mpfi_div (VALUE self, VALUE other)
339
356
  {
340
357
  VALUE val_ret;
@@ -363,6 +380,7 @@ static VALUE r_mpfi_div (VALUE self, VALUE other)
363
380
  return val_ret;
364
381
  }
365
382
 
383
+ /* mpfi_mul_2si(ret, self, p1) */
366
384
  static VALUE r_mpfi_mul_2si (int argc, VALUE *argv, VALUE self)
367
385
  {
368
386
  MPFI *ptr_self, *ptr_ret;
@@ -373,6 +391,7 @@ static VALUE r_mpfi_mul_2si (int argc, VALUE *argv, VALUE self)
373
391
  return val_ret;
374
392
  }
375
393
 
394
+ /* mpfi_div_2si(ret, self, p1) */
376
395
  static VALUE r_mpfi_div_2si (int argc, VALUE *argv, VALUE self)
377
396
  {
378
397
  MPFI *ptr_self, *ptr_ret;
@@ -383,6 +402,7 @@ static VALUE r_mpfi_div_2si (int argc, VALUE *argv, VALUE self)
383
402
  return val_ret;
384
403
  }
385
404
 
405
+ /* mpfi_neg(ret, self) */
386
406
  static VALUE r_mpfi_neg(int argc, VALUE *argv, VALUE self)
387
407
  {
388
408
  MPFI *ptr_self, *ptr_ret;
@@ -393,6 +413,7 @@ static VALUE r_mpfi_neg(int argc, VALUE *argv, VALUE self)
393
413
  return val_ret;
394
414
  }
395
415
 
416
+ /* mpfi_inv(ret, self) */
396
417
  static VALUE r_mpfi_inv(int argc, VALUE *argv, VALUE self)
397
418
  {
398
419
  MPFI *ptr_self, *ptr_ret;
@@ -403,6 +424,7 @@ static VALUE r_mpfi_inv(int argc, VALUE *argv, VALUE self)
403
424
  return val_ret;
404
425
  }
405
426
 
427
+ /* mpfi_abs(ret, self) */
406
428
  static VALUE r_mpfi_abs(int argc, VALUE *argv, VALUE self)
407
429
  {
408
430
  MPFI *ptr_self, *ptr_ret;
@@ -417,6 +439,7 @@ static VALUE r_mpfi_abs(int argc, VALUE *argv, VALUE self)
417
439
 
418
440
  /* ------------------------------ Comparison Functions start ------------------------------ */
419
441
 
442
+ /* For MPFI instance, use mpfi_cmp. */
420
443
  static VALUE r_mpfi_cmp (VALUE self, VALUE other)
421
444
  {
422
445
  MPFI *ptr_self;
@@ -444,6 +467,7 @@ static VALUE r_mpfi_cmp (VALUE self, VALUE other)
444
467
  return NUM2INT(ret);
445
468
  }
446
469
 
470
+ /* Return true if mpfi_is_pos(self) > 0. Otherwise, nil. */
447
471
  static VALUE r_mpfi_is_pos (VALUE self)
448
472
  {
449
473
  MPFI *ptr_self;
@@ -455,6 +479,7 @@ static VALUE r_mpfi_is_pos (VALUE self)
455
479
  }
456
480
  }
457
481
 
482
+ /* Return true if mpfi_is_strictly_pos(self) > 0. Otherwise, nil. */
458
483
  static VALUE r_mpfi_is_strictly_pos (VALUE self)
459
484
  {
460
485
  MPFI *ptr_self;
@@ -466,6 +491,7 @@ static VALUE r_mpfi_is_strictly_pos (VALUE self)
466
491
  }
467
492
  }
468
493
 
494
+ /* Return true if mpfi_is_nonneg(self) > 0. Otherwise, nil. */
469
495
  static VALUE r_mpfi_is_nonneg (VALUE self)
470
496
  {
471
497
  MPFI *ptr_self;
@@ -477,6 +503,7 @@ static VALUE r_mpfi_is_nonneg (VALUE self)
477
503
  }
478
504
  }
479
505
 
506
+ /* Return true if mpfi_is_neg(self) > 0. Otherwise, nil. */
480
507
  static VALUE r_mpfi_is_neg (VALUE self)
481
508
  {
482
509
  MPFI *ptr_self;
@@ -488,6 +515,7 @@ static VALUE r_mpfi_is_neg (VALUE self)
488
515
  }
489
516
  }
490
517
 
518
+ /* Return true if mpfi_is_strictly_neg(self) > 0. Otherwise, nil. */
491
519
  static VALUE r_mpfi_is_strictly_neg (VALUE self)
492
520
  {
493
521
  MPFI *ptr_self;
@@ -499,6 +527,7 @@ static VALUE r_mpfi_is_strictly_neg (VALUE self)
499
527
  }
500
528
  }
501
529
 
530
+ /* Return true if mpfi_is_nonpos(self) > 0. Otherwise, nil. */
502
531
  static VALUE r_mpfi_is_nonpos (VALUE self)
503
532
  {
504
533
  MPFI *ptr_self;
@@ -510,6 +539,7 @@ static VALUE r_mpfi_is_nonpos (VALUE self)
510
539
  }
511
540
  }
512
541
 
542
+ /* Return true if mpfi_is_zero(self) > 0. Otherwise, nil. */
513
543
  static VALUE r_mpfi_is_zero (VALUE self)
514
544
  {
515
545
  MPFI *ptr_self;
@@ -521,6 +551,7 @@ static VALUE r_mpfi_is_zero (VALUE self)
521
551
  }
522
552
  }
523
553
 
554
+ /* Return true if mpfi_has_zero(self) > 0. Otherwise, nil. */
524
555
  static VALUE r_mpfi_has_zero (VALUE self)
525
556
  {
526
557
  MPFI *ptr_self;
@@ -532,6 +563,7 @@ static VALUE r_mpfi_has_zero (VALUE self)
532
563
  }
533
564
  }
534
565
 
566
+ /* Return true if mpfi_nan_p(self) != 0. Otherwise, nil. */
535
567
  static VALUE r_mpfi_nan_p (VALUE self)
536
568
  {
537
569
  MPFI *ptr_self;
@@ -543,6 +575,7 @@ static VALUE r_mpfi_nan_p (VALUE self)
543
575
  }
544
576
  }
545
577
 
578
+ /* Return true if mpfi_inf_p(self) != 0. Otherwise, nil. */
546
579
  static VALUE r_mpfi_inf_p (VALUE self)
547
580
  {
548
581
  MPFI *ptr_self;
@@ -554,6 +587,7 @@ static VALUE r_mpfi_inf_p (VALUE self)
554
587
  }
555
588
  }
556
589
 
590
+ /* Return true if mpfi_bounded_p(self) != 0. Otherwise, nil. */
557
591
  static VALUE r_mpfi_bounded_p (VALUE self)
558
592
  {
559
593
  MPFI *ptr_self;
@@ -586,6 +620,7 @@ static VALUE r_mpfi_equal_p (VALUE self, VALUE other)
586
620
 
587
621
  /* ------------------------------ Interval Functions with Floating-point Results start ------------------------------ */
588
622
 
623
+ /* mpfi_diam_abs(ret, self) */
589
624
  static VALUE r_mpfi_diam_abs (int argc, VALUE *argv, VALUE self)
590
625
  {
591
626
  MPFI *ptr_self;
@@ -597,6 +632,7 @@ static VALUE r_mpfi_diam_abs (int argc, VALUE *argv, VALUE self)
597
632
  return val_ret;
598
633
  }
599
634
 
635
+ /* mpfi_diam_rel(ret, self) */
600
636
  static VALUE r_mpfi_diam_rel (int argc, VALUE *argv, VALUE self)
601
637
  {
602
638
  MPFI *ptr_self;
@@ -608,6 +644,7 @@ static VALUE r_mpfi_diam_rel (int argc, VALUE *argv, VALUE self)
608
644
  return val_ret;
609
645
  }
610
646
 
647
+ /* mpfi_diam(ret, self) */
611
648
  static VALUE r_mpfi_diam (int argc, VALUE *argv, VALUE self)
612
649
  {
613
650
  MPFI *ptr_self;
@@ -619,6 +656,7 @@ static VALUE r_mpfi_diam (int argc, VALUE *argv, VALUE self)
619
656
  return val_ret;
620
657
  }
621
658
 
659
+ /* mpfi_mag(ret, self) */
622
660
  static VALUE r_mpfi_mag (int argc, VALUE *argv, VALUE self)
623
661
  {
624
662
  MPFI *ptr_self;
@@ -630,6 +668,7 @@ static VALUE r_mpfi_mag (int argc, VALUE *argv, VALUE self)
630
668
  return val_ret;
631
669
  }
632
670
 
671
+ /* mpfi_mig(ret, self) */
633
672
  static VALUE r_mpfi_mig (int argc, VALUE *argv, VALUE self)
634
673
  {
635
674
  MPFI *ptr_self;
@@ -641,6 +680,7 @@ static VALUE r_mpfi_mig (int argc, VALUE *argv, VALUE self)
641
680
  return val_ret;
642
681
  }
643
682
 
683
+ /* mpfi_mid(ret, self) */
644
684
  static VALUE r_mpfi_mid (int argc, VALUE *argv, VALUE self)
645
685
  {
646
686
  MPFI *ptr_self;
@@ -652,6 +692,7 @@ static VALUE r_mpfi_mid (int argc, VALUE *argv, VALUE self)
652
692
  return val_ret;
653
693
  }
654
694
 
695
+ /* Return MPFI instance of which value is middle of self. */
655
696
  static VALUE r_mpfi_mid_interval (int argc, VALUE *argv, VALUE self)
656
697
  {
657
698
  MPFI *ptr_self, *ptr_ret;
@@ -662,6 +703,7 @@ static VALUE r_mpfi_mid_interval (int argc, VALUE *argv, VALUE self)
662
703
  return val_ret;
663
704
  }
664
705
 
706
+ /* mpfi_alea(ret, self) */
665
707
  static VALUE r_mpfi_alea (int argc, VALUE *argv, VALUE self)
666
708
  {
667
709
  MPFI *ptr_self;
@@ -677,6 +719,7 @@ static VALUE r_mpfi_alea (int argc, VALUE *argv, VALUE self)
677
719
 
678
720
  /* ------------------------------ Conversion Functions start ------------------------------ */
679
721
 
722
+ /* Return float by mpfi_get_d(self). */
680
723
  static VALUE r_mpfi_get_d(VALUE self)
681
724
  {
682
725
  MPFI *ptr_self;
@@ -684,6 +727,7 @@ static VALUE r_mpfi_get_d(VALUE self)
684
727
  return rb_float_new(mpfi_get_d(ptr_self));
685
728
  }
686
729
 
730
+ /* Return MPFR by mpfi_get_fr(ret, self). */
687
731
  static VALUE r_mpfi_get_fr(VALUE self)
688
732
  {
689
733
  MPFI *ptr_self;
@@ -698,6 +742,7 @@ static VALUE r_mpfi_get_fr(VALUE self)
698
742
 
699
743
  /* ------------------------------ Functions Operating on Endpoints start ------------------------------ */
700
744
 
745
+ /* mpfi_get_left(ret, self) */
701
746
  static VALUE r_mpfi_get_left (VALUE self)
702
747
  {
703
748
  VALUE val_ret;
@@ -709,6 +754,7 @@ static VALUE r_mpfi_get_left (VALUE self)
709
754
  return val_ret;
710
755
  }
711
756
 
757
+ /* mpfi_get_right(ret, self) */
712
758
  static VALUE r_mpfi_get_right (VALUE self)
713
759
  {
714
760
  VALUE val_ret;
@@ -720,6 +766,7 @@ static VALUE r_mpfi_get_right (VALUE self)
720
766
  return val_ret;
721
767
  }
722
768
 
769
+ /* Return true if mpfi_revert_if_needed(self) != 0. Otherwise, nil. */
723
770
  static VALUE r_mpfi_revert_if_needed (VALUE self)
724
771
  {
725
772
  MPFI *ptr_self;
@@ -731,6 +778,7 @@ static VALUE r_mpfi_revert_if_needed (VALUE self)
731
778
  };
732
779
  }
733
780
 
781
+ /* Extend the interval so that it contains other. */
734
782
  static VALUE r_mpfi_put (VALUE self, VALUE other)
735
783
  {
736
784
  MPFI *ptr_self;
@@ -757,6 +805,7 @@ static VALUE r_mpfi_put (VALUE self, VALUE other)
757
805
  return self;
758
806
  }
759
807
 
808
+ /* Change two endpoints so that it are the same as a1 and a2. */
760
809
  static VALUE r_mpfi_interv (VALUE self, VALUE a1, VALUE a2)
761
810
  {
762
811
  MPFI *ptr_self;
@@ -782,6 +831,7 @@ static VALUE r_mpfi_interv (VALUE self, VALUE a1, VALUE a2)
782
831
  return self;
783
832
  }
784
833
 
834
+ /* Return new MPFI of which endpoints are the same as p1 and p2. */
785
835
  static VALUE r_mpfi_interval (int argc, VALUE *argv, VALUE self)
786
836
  {
787
837
  VALUE val_ret;
@@ -813,6 +863,7 @@ static VALUE r_mpfi_interval (int argc, VALUE *argv, VALUE self)
813
863
  return val_ret;
814
864
  }
815
865
 
866
+ /* Return array having two MPFR numbers which are endpoints. */
816
867
  static VALUE r_mpfi_endpoints (VALUE self)
817
868
  {
818
869
  VALUE val_left, val_right;
@@ -874,6 +925,7 @@ static VALUE r_mpfi_include (VALUE self, VALUE other)
874
925
  }
875
926
  }
876
927
 
928
+ /* Return true if mpfi_is_empty(self) > 0. Otherwise, nil. */
877
929
  static VALUE r_mpfi_is_empty (VALUE self)
878
930
  {
879
931
  MPFI *ptr_self;
@@ -885,8 +937,10 @@ static VALUE r_mpfi_is_empty (VALUE self)
885
937
  }
886
938
  }
887
939
 
888
- /* If the intersection of two intervals is empty, this method returns nil.
889
- Otherwise, it returns the intersection. */
940
+ /*
941
+ If the intersection of two intervals is empty, this method returns nil.
942
+ Otherwise, it returns the intersection.
943
+ */
890
944
  static VALUE r_mpfi_intersect (int argc, VALUE *argv, VALUE self)
891
945
  {
892
946
  MPFI *ptr_self, *ptr_a0, *ptr_ret;
@@ -902,8 +956,10 @@ static VALUE r_mpfi_intersect (int argc, VALUE *argv, VALUE self)
902
956
  }
903
957
  }
904
958
 
905
- /* This method returns the intersection of two intervals.
906
- The returned value may be empty interval. */
959
+ /*
960
+ This method returns the intersection of two intervals.
961
+ The returned value may be empty interval.
962
+ */
907
963
  static VALUE r_mpfi_intersect2 (int argc, VALUE *argv, VALUE self)
908
964
  {
909
965
  MPFI *ptr_self, *ptr_a0, *ptr_ret;
@@ -915,6 +971,7 @@ static VALUE r_mpfi_intersect2 (int argc, VALUE *argv, VALUE self)
915
971
  return val_ret;
916
972
  }
917
973
 
974
+ /* mpfi_union(ret, self, p1) */
918
975
  static VALUE r_mpfi_union (int argc, VALUE *argv, VALUE self)
919
976
  {
920
977
  MPFI *ptr_self, *ptr_a0, *ptr_ret;
@@ -930,6 +987,7 @@ static VALUE r_mpfi_union (int argc, VALUE *argv, VALUE self)
930
987
 
931
988
  /* ------------------------------ Miscellaneous Interval Functions start ------------------------------ */
932
989
 
990
+ /* mpfi_increase(self, p1) */
933
991
  static VALUE r_mpfi_increase (VALUE self, VALUE a0)
934
992
  {
935
993
  MPFI *ptr_self;
@@ -941,6 +999,7 @@ static VALUE r_mpfi_increase (VALUE self, VALUE a0)
941
999
  return self;
942
1000
  }
943
1001
 
1002
+ /* mpfi_blow(ret, self, p1) */
944
1003
  static VALUE r_mpfi_blow (int argc, VALUE *argv, VALUE self)
945
1004
  {
946
1005
  MPFI *ptr_self, *ptr_ret;
@@ -951,6 +1010,7 @@ static VALUE r_mpfi_blow (int argc, VALUE *argv, VALUE self)
951
1010
  return val_ret;
952
1011
  }
953
1012
 
1013
+ /* Return array [ret1, ret2] by mpfi_bisect(ret1, ret2, self). */
954
1014
  static VALUE r_mpfi_bisect (int argc, VALUE *argv, VALUE self)
955
1015
  {
956
1016
  MPFI *ptr_self, *ptr_ret1, *ptr_ret2;
@@ -994,6 +1054,7 @@ void r_mpfi_subdivision_func(int num, MPFI *ret[], mpfi_t x)
994
1054
  mpfr_clear(l);
995
1055
  }
996
1056
 
1057
+ /* Return array having MPFI instances by subdividing. */
997
1058
  static VALUE r_mpfi_subdivision (int argc, VALUE *argv, VALUE self)
998
1059
  {
999
1060
  MPFI *ptr_self;
@@ -1012,6 +1073,7 @@ static VALUE r_mpfi_subdivision (int argc, VALUE *argv, VALUE self)
1012
1073
 
1013
1074
  /* ------------------------------ Mathematical Basic Arithmetic Functions start ------------------------------ */
1014
1075
 
1076
+ /* Addition. */
1015
1077
  static VALUE r_mpfi_math_add (int argc, VALUE *argv, VALUE self)
1016
1078
  {
1017
1079
  VALUE val_ret;
@@ -1040,6 +1102,7 @@ static VALUE r_mpfi_math_add (int argc, VALUE *argv, VALUE self)
1040
1102
  return val_ret;
1041
1103
  }
1042
1104
 
1105
+ /* Subtraction. */
1043
1106
  static VALUE r_mpfi_math_sub (int argc, VALUE *argv, VALUE self)
1044
1107
  {
1045
1108
  VALUE val_ret;
@@ -1068,6 +1131,7 @@ static VALUE r_mpfi_math_sub (int argc, VALUE *argv, VALUE self)
1068
1131
  return val_ret;
1069
1132
  }
1070
1133
 
1134
+ /* Multiplication. */
1071
1135
  static VALUE r_mpfi_math_mul (int argc, VALUE *argv, VALUE self)
1072
1136
  {
1073
1137
  VALUE val_ret;
@@ -1096,6 +1160,7 @@ static VALUE r_mpfi_math_mul (int argc, VALUE *argv, VALUE self)
1096
1160
  return val_ret;
1097
1161
  }
1098
1162
 
1163
+ /* Division. */
1099
1164
  static VALUE r_mpfi_math_div (int argc, VALUE *argv, VALUE self)
1100
1165
  {
1101
1166
  VALUE val_ret;
@@ -90,7 +90,7 @@ static VALUE r_mpfi_matrix_global_new(int argc, VALUE *argv, VALUE self)
90
90
  {
91
91
  MPFIMatrix *ptr;
92
92
  VALUE val;
93
- r_mpfi_make_matrix_struct(val, ptr);
93
+ r_mpfi_make_col_vector_struct(val, ptr);
94
94
  r_mpfi_matrix_set_initial_value(ptr, argc, argv);
95
95
  return val;
96
96
  }
@@ -149,7 +149,7 @@ static VALUE r_mpfi_square_matrix_global_new(int argc, VALUE arg)
149
149
  {
150
150
  MPFIMatrix *ptr;
151
151
  VALUE val;
152
- r_mpfi_make_matrix_struct(val, ptr);
152
+ r_mpfi_make_square_matrix_struct(val, ptr);
153
153
  r_mpfi_square_matrix_set_initial_value(ptr, arg);
154
154
  return val;
155
155
  }
@@ -257,7 +257,7 @@ static VALUE r_mpfi_row_vector_global_new(int argc, VALUE arg)
257
257
  {
258
258
  MPFIMatrix *ptr;
259
259
  VALUE val;
260
- r_mpfi_make_matrix_struct(val, ptr);
260
+ r_mpfi_make_row_vector_struct(val, ptr);
261
261
  r_mpfi_row_vector_set_initial_value(ptr, arg);
262
262
  return val;
263
263
  }
@@ -365,7 +365,7 @@ static VALUE r_mpfi_matrix_each_element_with_index (VALUE self){
365
365
  return ret;
366
366
  }
367
367
 
368
- /* Return array which has strings converted elements to. */
368
+ /* Return one dimensinal array which has strings converted elements to. */
369
369
  static VALUE r_mpfi_matrix_str_ary_for_inspect(VALUE self){
370
370
  MPFIMatrix *ptr_self;
371
371
  r_mpfi_get_matrix_struct(ptr_self, self);
@@ -381,6 +381,7 @@ static VALUE r_mpfi_matrix_str_ary_for_inspect(VALUE self){
381
381
  return rb_ary_new4(ptr_self->size, ret_val);
382
382
  }
383
383
 
384
+ /* Return two dimensinal array which has strings converted elements to. */
384
385
  static VALUE r_mpfi_matrix_str_ary_for_inspect2(VALUE self){
385
386
  MPFIMatrix *ptr_self;
386
387
  r_mpfi_get_matrix_struct(ptr_self, self);
data/lib/mpfi/version.rb CHANGED
@@ -1 +1 @@
1
- RUBY_MPFI_VERSION = '0.0.3'
1
+ RUBY_MPFI_VERSION = '0.0.4'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-mpfi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takayuki YAMAGUCHI
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-12-19 00:00:00 +09:00
12
+ date: 2010-02-06 00:00:00 +09:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -22,6 +22,26 @@ dependencies:
22
22
  - !ruby/object:Gem::Version
23
23
  version: 0.0.4
24
24
  version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: rubyforge
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 2.0.3
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: gemcutter
37
+ type: :development
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 0.3.0
44
+ version:
25
45
  - !ruby/object:Gem::Dependency
26
46
  name: hoe
27
47
  type: :development
@@ -30,9 +50,11 @@ dependencies:
30
50
  requirements:
31
51
  - - ">="
32
52
  - !ruby/object:Gem::Version
33
- version: 2.4.0
53
+ version: 2.5.0
34
54
  version:
35
- description: FIX (describe your package)
55
+ description: |-
56
+ ruby-mpfi is an extended C library to use MPFI[http://gforge.inria.fr/projects/mpfi/]
57
+ which is the library of the interval arithmetic with multiprecision.
36
58
  email:
37
59
  - d@ytak.info
38
60
  executables: []
@@ -134,6 +156,6 @@ rubyforge_project: ruby-mpfi
134
156
  rubygems_version: 1.3.5
135
157
  signing_key:
136
158
  specification_version: 3
137
- summary: FIX (describe your package)
159
+ summary: ruby-mpfi is an extended C library to use MPFI[http://gforge.inria.fr/projects/mpfi/] which is the library of the interval arithmetic with multiprecision.
138
160
  test_files: []
139
161