@@ -69,6 +69,42 @@ void Init_symengine() {
6969 //Functions Class
7070 c_function = rb_define_class_under (m_symengine , "Function" , c_basic );
7171
72+ //Function SubClasses
73+ c_trig_function = rb_define_class_under (m_symengine , "TrigFunction" , c_function );
74+ c_hyperbolic_function = rb_define_class_under (m_symengine , "HyperbolicFunction" , c_function );
75+ c_lambertw = rb_define_class_under (m_symengine , "LambertW" , c_function );
76+ c_dirichlet_eta = rb_define_class_under (m_symengine , "Dirichlet_eta" , c_function );
77+ c_zeta = rb_define_class_under (m_symengine , "Zeta" , c_function );
78+ c_gamma = rb_define_class_under (m_symengine , "Gamma" , c_function );
79+
80+ //TrigFunction SubClasses
81+ c_sin = rb_define_class_under (m_symengine , "Sin" , c_trig_function );
82+ c_cos = rb_define_class_under (m_symengine , "Cos" , c_trig_function );
83+ c_tan = rb_define_class_under (m_symengine , "Tan" , c_trig_function );
84+ c_csc = rb_define_class_under (m_symengine , "Csc" , c_trig_function );
85+ c_sec = rb_define_class_under (m_symengine , "Sec" , c_trig_function );
86+ c_cot = rb_define_class_under (m_symengine , "Cot" , c_trig_function );
87+ c_asin = rb_define_class_under (m_symengine , "ASin" , c_trig_function );
88+ c_acos = rb_define_class_under (m_symengine , "ACos" , c_trig_function );
89+ c_atan = rb_define_class_under (m_symengine , "ATan" , c_trig_function );
90+ c_acsc = rb_define_class_under (m_symengine , "ACsc" , c_trig_function );
91+ c_asec = rb_define_class_under (m_symengine , "ASec" , c_trig_function );
92+ c_acot = rb_define_class_under (m_symengine , "ACot" , c_trig_function );
93+
94+ //HyperbolicFunction SubClasses
95+ c_sinh = rb_define_class_under (m_symengine , "Sinh" , c_hyperbolic_function );
96+ c_cosh = rb_define_class_under (m_symengine , "Cosh" , c_hyperbolic_function );
97+ c_tanh = rb_define_class_under (m_symengine , "Tanh" , c_hyperbolic_function );
98+ c_csch = rb_define_class_under (m_symengine , "Csch" , c_hyperbolic_function );
99+ c_sech = rb_define_class_under (m_symengine , "Sech" , c_hyperbolic_function );
100+ c_coth = rb_define_class_under (m_symengine , "Coth" , c_hyperbolic_function );
101+ c_asinh = rb_define_class_under (m_symengine , "ASinh" , c_hyperbolic_function );
102+ c_acosh = rb_define_class_under (m_symengine , "ACosh" , c_hyperbolic_function );
103+ c_atanh = rb_define_class_under (m_symengine , "ATanh" , c_hyperbolic_function );
104+ c_acsch = rb_define_class_under (m_symengine , "ACsch" , c_hyperbolic_function );
105+ c_asech = rb_define_class_under (m_symengine , "ASech" , c_hyperbolic_function );
106+ c_acoth = rb_define_class_under (m_symengine , "ACoth" , c_hyperbolic_function );
107+
72108 //SymEngine Functions as Module Level Funcions
73109 rb_define_module_function (m_symengine , "abs" , cfunction_abs , 1 );
74110 rb_define_module_function (m_symengine , "sin" , cfunction_sin , 1 );
0 commit comments