symengine 0.0.0 → 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +76 -1
  3. data/README.md +11 -29
  4. data/lib/symengine/CMakeFiles/CMakeDirectoryInformation.cmake +16 -0
  5. data/lib/symengine/CMakeFiles/progress.marks +1 -0
  6. data/lib/symengine/CMakeFiles/symengine_ruby.dir/C.includecache +138 -0
  7. data/lib/symengine/CMakeFiles/symengine_ruby.dir/DependInfo.cmake +33 -0
  8. data/lib/symengine/CMakeFiles/symengine_ruby.dir/__/__/ext/symengine/ruby_basic.c.o +0 -0
  9. data/lib/symengine/CMakeFiles/symengine_ruby.dir/__/__/ext/symengine/ruby_integer.c.o +0 -0
  10. data/lib/symengine/CMakeFiles/symengine_ruby.dir/__/__/ext/symengine/ruby_rational.c.o +0 -0
  11. data/lib/symengine/CMakeFiles/symengine_ruby.dir/__/__/ext/symengine/ruby_symbol.c.o +0 -0
  12. data/lib/symengine/CMakeFiles/symengine_ruby.dir/__/__/ext/symengine/symengine.c.o +0 -0
  13. data/lib/symengine/CMakeFiles/symengine_ruby.dir/__/__/ext/symengine/symengine_macros.c.o +0 -0
  14. data/lib/symengine/CMakeFiles/symengine_ruby.dir/build.make +241 -0
  15. data/lib/symengine/CMakeFiles/symengine_ruby.dir/cmake_clean.cmake +15 -0
  16. data/lib/symengine/CMakeFiles/symengine_ruby.dir/depend.internal +94 -0
  17. data/lib/symengine/CMakeFiles/symengine_ruby.dir/depend.make +94 -0
  18. data/lib/symengine/CMakeFiles/symengine_ruby.dir/flags.make +8 -0
  19. data/lib/symengine/CMakeFiles/symengine_ruby.dir/link.txt +1 -0
  20. data/lib/symengine/CMakeFiles/symengine_ruby.dir/progress.make +7 -0
  21. data/lib/symengine/CTestTestfile.cmake +6 -0
  22. data/lib/symengine/Makefile +347 -0
  23. data/lib/symengine/cmake_install.cmake +34 -0
  24. data/lib/symengine/symengine.so +0 -0
  25. metadata +24 -19
  26. data/CMakeLists.txt +0 -15
  27. data/ext/symengine/CMakeLists.txt +0 -25
  28. data/ext/symengine/extconf.rb +0 -1
  29. data/ext/symengine/ruby_basic.c +0 -254
  30. data/ext/symengine/ruby_basic.h +0 -53
  31. data/ext/symengine/ruby_integer.c +0 -8
  32. data/ext/symengine/ruby_integer.h +0 -8
  33. data/ext/symengine/ruby_rational.c +0 -23
  34. data/ext/symengine/ruby_rational.h +0 -8
  35. data/ext/symengine/ruby_symbol.c +0 -13
  36. data/ext/symengine/ruby_symbol.h +0 -8
  37. data/ext/symengine/symengine.c +0 -49
  38. data/ext/symengine/symengine.h +0 -15
  39. data/ext/symengine/symengine_macros.c +0 -49
  40. data/ext/symengine/symengine_macros.h +0 -21
@@ -1,8 +0,0 @@
1
- #include "ruby_integer.h"
2
-
3
- VALUE cinteger_init(VALUE self, VALUE num_value) {
4
- basic_struct *this;
5
- Data_Get_Struct(self, basic_struct, this);
6
- GET_SYMINTFROMVAL(num_value, this);
7
- return self;
8
- }
@@ -1,8 +0,0 @@
1
- #ifndef RUBY_INTEGER_H_
2
- #define RUBY_INTEGER_H_
3
-
4
- #include "ruby_basic.h"
5
-
6
- VALUE cinteger_init(VALUE self, VALUE num_value);
7
-
8
- #endif //RUBY_INTEGER_H_
@@ -1,23 +0,0 @@
1
- #include "ruby_rational.h"
2
-
3
- VALUE crational_init(VALUE self, VALUE rat_value) {
4
- basic_struct *this;
5
- basic num_basic, den_basic;
6
-
7
- basic_new_stack(num_basic);
8
- basic_new_stack(den_basic);
9
-
10
- Data_Get_Struct(self, basic_struct, this);
11
-
12
- VALUE num, den;
13
- num = rb_funcall(rat_value, rb_intern("numerator"), 0, NULL);
14
- den = rb_funcall(rat_value, rb_intern("denominator"), 0, NULL);
15
-
16
- GET_SYMINTFROMVAL(num, num_basic);
17
- GET_SYMINTFROMVAL(den, den_basic);
18
-
19
- rational_set(this, num_basic, den_basic);
20
- basic_free_stack(num_basic);
21
- basic_free_stack(den_basic);
22
- return self;
23
- }
@@ -1,8 +0,0 @@
1
- #ifndef RUBY_RATIONAL_H_
2
- #define RUBY_RATIONAL_H_
3
-
4
- #include "ruby_basic.h"
5
-
6
- VALUE crational_init(VALUE self, VALUE rat_value);
7
-
8
- #endif //RUBY_RATIONAL_H_
@@ -1,13 +0,0 @@
1
- #include "ruby_symbol.h"
2
-
3
- VALUE csymbol_init(VALUE self, VALUE name) {
4
- Check_Type(name, T_STRING);
5
- basic_struct *this;
6
- char *str_ptr = StringValueCStr(name);
7
-
8
- Data_Get_Struct(self, basic_struct, this);
9
-
10
- symbol_set(this, str_ptr);
11
-
12
- return self;
13
- }
@@ -1,8 +0,0 @@
1
- #ifndef RUBY_SYMBOL_H_
2
- #define RUBY_SYMBOL_H_
3
-
4
- #include "ruby_basic.h"
5
-
6
- VALUE csymbol_init(VALUE self, VALUE name);
7
-
8
- #endif //RUBY_SYMBOL_H_
@@ -1,49 +0,0 @@
1
- #include "ruby_basic.h"
2
- #include "ruby_symbol.h"
3
- #include "ruby_integer.h"
4
- #include "ruby_rational.h"
5
- #include "symengine.h"
6
-
7
- ///////////////////
8
- // Ruby Bindings //
9
- ///////////////////
10
-
11
- void Init_symengine() {
12
- m_symengine = rb_define_module("SymEngine");
13
-
14
- //Basic class
15
- c_basic = rb_define_class_under(m_symengine, "Basic", rb_cObject);
16
- rb_define_alloc_func(c_basic, cbasic_alloc);
17
- rb_define_method(c_basic, "+", cbasic_add, 1);
18
- rb_define_method(c_basic, "-", cbasic_sub, 1);
19
- rb_define_method(c_basic, "*", cbasic_mul, 1);
20
- rb_define_method(c_basic, "/", cbasic_div, 1);
21
- rb_define_method(c_basic, "**", cbasic_pow, 1);
22
- rb_define_method(c_basic, "diff", cbasic_diff, 1);
23
- rb_define_method(c_basic, "==", cbasic_eq, 1);
24
- rb_define_method(c_basic, "eql?", cbasic_eq, 1);
25
- rb_define_method(c_basic, "!=", cbasic_neq, 1);
26
- rb_define_method(c_basic, "-@", cbasic_neg, 0);
27
- rb_define_method(c_basic, "to_s", cbasic_to_str, 0);
28
- rb_define_method(c_basic, "expand", cbasic_expand, 0);
29
- rb_define_method(c_basic, "args", cbasic_get_args, 0);
30
- rb_define_protected_method(c_basic, "pr_free_symbols", cbasic_free_symbols, 0);
31
- rb_define_method(c_basic, "hash", cbasic_hash, 0);
32
- rb_define_method(c_basic, "subs", cbasic_subs, -1);
33
- rb_define_method(c_basic, "coerce", cbasic_coerce, 1);
34
-
35
- //Symbol class
36
- c_symbol = rb_define_class_under(m_symengine, "Symbol", c_basic);
37
- rb_define_alloc_func(c_symbol, cbasic_alloc);
38
- rb_define_method(c_symbol, "initialize", csymbol_init, 1);
39
-
40
- //Integer class
41
- c_integer = rb_define_class_under(m_symengine, "Integer", c_basic);
42
- rb_define_alloc_func(c_integer, cbasic_alloc);
43
- rb_define_method(c_integer, "initialize", cinteger_init, 1);
44
-
45
- //Rational class
46
- c_rational = rb_define_class_under(m_symengine, "Rational", c_basic);
47
- rb_define_alloc_func(c_rational, cbasic_alloc);
48
- rb_define_method(c_rational, "initialize", crational_init, 1);
49
- }
@@ -1,15 +0,0 @@
1
- #ifndef SYMENGINE_H_
2
- #define SYMENGINE_H_
3
-
4
- #include "ruby.h"
5
-
6
- //variable name for a module starts with m
7
- VALUE m_symengine;
8
-
9
- //variable names for classes begin with c
10
- VALUE c_basic;
11
- VALUE c_symbol;
12
- VALUE c_integer;
13
- VALUE c_rational;
14
-
15
- #endif //SYMENGINE_H_
@@ -1,49 +0,0 @@
1
- #include "symengine_macros.h"
2
- #include "symengine.h"
3
-
4
- void sympify(VALUE operand2, basic_struct *cbasic_operand2) {
5
- basic_struct *temp;
6
- VALUE new_operand2, num, den;
7
-
8
- switch(TYPE(operand2)) {
9
- case T_FIXNUM:
10
- case T_BIGNUM:
11
- GET_SYMINTFROMVAL(operand2, cbasic_operand2);
12
- break;
13
-
14
- case T_RATIONAL:
15
- num = rb_funcall(operand2, rb_intern("numerator"), 0, NULL);
16
- den = rb_funcall(operand2, rb_intern("denominator"), 0, NULL);
17
-
18
- basic num_basic, den_basic;
19
- basic_new_stack(num_basic);
20
- basic_new_stack(den_basic);
21
-
22
- GET_SYMINTFROMVAL(num, num_basic);
23
- GET_SYMINTFROMVAL(den, den_basic);
24
-
25
- rational_set(cbasic_operand2, num_basic, den_basic);
26
-
27
- basic_free_stack(num_basic);
28
- basic_free_stack(den_basic);
29
- break;
30
-
31
- case T_DATA:
32
- Data_Get_Struct(operand2, basic_struct, temp);
33
- basic_assign(cbasic_operand2, temp);
34
- break;
35
- }
36
- }
37
-
38
- VALUE Klass_of_Basic(const basic_struct *basic_ptr) {
39
- switch(basic_get_type(basic_ptr)) {
40
- case SYMENGINE_SYMBOL:
41
- return c_symbol;
42
- case SYMENGINE_INTEGER:
43
- return c_integer;
44
- case SYMENGINE_RATIONAL:
45
- return c_rational;
46
- default:
47
- return c_basic;
48
- }
49
- }
@@ -1,21 +0,0 @@
1
- #ifndef SYMENGINE_MACROS_H_
2
- #define SYMENGINE_MACROS_H_
3
-
4
- #include "ruby.h"
5
- #include "symengine/cwrapper.h"
6
-
7
- //Returns the pointer wrapped inside the Ruby VALUE
8
- void sympify(VALUE operand2, basic_struct *cbasic_operand2);
9
- //Returns the Ruby class of the corresponding basic_struct pointer
10
- VALUE Klass_of_Basic(const basic_struct *basic_ptr);
11
-
12
- //Obtains the value from Ruby Fixnum or Bignum to an already allocated basic_struct
13
- #define GET_SYMINTFROMVAL(num_value, this) { \
14
- if ( ! RB_TYPE_P(num_value, T_FIXNUM) && ! RB_TYPE_P(num_value, T_BIGNUM) ) { \
15
- rb_raise(rb_eTypeError, "Invalid Type: Fixnum or Bignum required"); \
16
- } \
17
- VALUE Rb_Temp_String = rb_funcall(num_value, rb_intern("to_s"), 0, NULL); \
18
- integer_set_str(this, StringValueCStr(Rb_Temp_String)); \
19
- }
20
-
21
- #endif //SYMENGINE_MACROS_H_