# Symbolic math in pure ruby

**URL:** <https://www.ruby-forum.com/t/symbolic-math-in-pure-ruby/180294>\
**Category:** Ruby\
**Created:** [December 16, 2009, 8:06pm UTC](https://www.ruby-forum.com/t/symbolic-math-in-pure-ruby/180294 "2009-12-16T20:06:26Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![ral](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/f04885/32.png) [@ral](https://www.ruby-forum.com/u/ral)\
**Post date:** [December 16, 2009, 8:06pm UTC](https://www.ruby-forum.com/t/symbolic-math-in-pure-ruby/180294/1 "2009-12-16T20:06:26Z")

</div>

[GitHub - brainopia/symbolic: Symbolic math for ruby](http://github.com/brainopia/symbolic) - for people interested in symbolic  
math in pure ruby, i would love contribution from community.

---

<div class="post-metadata">

**Author:** ![ral](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/f04885/32.png) [@ral](https://www.ruby-forum.com/u/ral)\
**Post date:** [December 16, 2009, 11:11pm UTC](https://www.ruby-forum.com/t/symbolic-math-in-pure-ruby/180294/2 "2009-12-16T23:11:26Z")

</div>

That looks really cool, thanks!

I began something like that some time ago.

Remembering I had some awful:  
module MathExp  
class Function  
def self.sq(x = nil) Function.new(:sq, x, ‘2x’, ‘x^3/3’) end

I was using String for functions, as I didn’t know yet the power of  
coerce.  
But that was quite easy to get derivative and integral.

Great job !

2009/12/16 Ravil B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![ral](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/f04885/32.png) [@ral](https://www.ruby-forum.com/u/ral)\
**Post date:** [December 17, 2009, 12:09am UTC](https://www.ruby-forum.com/t/symbolic-math-in-pure-ruby/180294/3 "2009-12-17T00:09:57Z")

</div>

You should maybe try with -w:

> ruby -vw symbolic.rb  
> ruby 1.9.2dev (2009-12-11 trunk 26067) [x86\_64-darwin10.2.0]

/symbolic/summand.rb:73: warning: private attribute?  
/symbolic/factor.rb:71: warning: shadowing outer local variable - base  
/symbolic/factor.rb:117: warning: private attribute?

The second is easy, but the others reveal strange use of attr\_reader.

Why do you use attr\_reader in private context? This is only usefull in a  
public context I think, as instance variables can be directly accessed  
by  
@var (even when it is a variable from the superclass)

It correctly pass all the tests, with one warning about drb(circular  
require) and these 3. Putting the attr\_reader before the “private”  
actually  
remove the warnings.

2009/12/16 Benoit D. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![ral](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/f04885/32.png) [@ral](https://www.ruby-forum.com/u/ral)\
**Post date:** [December 17, 2009, 12:39am UTC](https://www.ruby-forum.com/t/symbolic-math-in-pure-ruby/180294/4 "2009-12-17T00:39:48Z")

</div>

On Wednesday 16 December 2009 01:06:31 pm Ravil B. wrote:

> [GitHub - brainopia/symbolic: Symbolic math for ruby · GitHub](http://github.com/brainopia/symbolic) - for people interested in symbolic  
> math in pure ruby, i would love contribution from community.

Looks like it would’ve been pretty useful for an idea I had awhile  
ago…

I ended up writing my own library. It’s a mess, too, but if you find  
anything  
useful, go for it:

> **[GitHub - masover/math: Random mathematical tools built for a calculus...](https://github.com/masover/math)**
>
> Random mathematical tools built for a calculus class

It’s even got a gemspec all ready to go, though I haven’t published a  
gem for  
it.

---

<div class="post-metadata">

**Author:** ![ral](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/f04885/32.png) [@ral](https://www.ruby-forum.com/u/ral)\
**Post date:** [December 17, 2009, 9:32am UTC](https://www.ruby-forum.com/t/symbolic-math-in-pure-ruby/180294/5 "2009-12-17T09:32:23Z")

</div>

2009/12/16 Ravil B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> [GitHub - brainopia/symbolic: Symbolic math for ruby · GitHub](http://github.com/brainopia/symbolic) - for people interested in symbolic  
> math in pure ruby, i would love contribution from community.

Thanks! That looks good.

Kind regards

robert

---

<div class="post-metadata">

**Author:** ![ral](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/f04885/32.png) [@ral](https://www.ruby-forum.com/u/ral)\
**Post date:** [December 19, 2009, 3:41am UTC](https://www.ruby-forum.com/t/symbolic-math-in-pure-ruby/180294/6 "2009-12-19T03:41:51Z")

</div>

Wonderful!

---

<div class="post-metadata">

**Author:** ![ral](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/f04885/32.png) [@ral](https://www.ruby-forum.com/u/ral)\
**Post date:** [December 17, 2009, 5:41pm UTC](https://www.ruby-forum.com/t/symbolic-math-in-pure-ruby/180294/7 "2009-12-17T17:41:04Z")

</div>

On Dec 16, 2:06 pm, Ravil B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> [http://github.com/brainopia/symbolic-](http://github.com/brainopia/symbolic-) for people interested in symbolic  
> math in pure ruby, i would love contribution from community.

Cool beans. Your notation is very intuitive.

I wonder if the same can be done for symbolic logic.
