This is an announcement of the release of rubygems ‘roots-1.0.0’.
The ‘roots’ gem provides two methods ‘root’ and ‘roots’ which will
compute all n roots of a real or complex number.
The paper describing the math/operation of it can be read/downloaded
here:
The use syntax for ‘root’ and ‘roots’ is shown below.
Use syntax: val.root(n,{k})
root(n,k=0) n is root 1/n exponent, integer > 0
k is nth ccw root 1…n , integer >=0
If k not given default root returned, which are:
for +val => real root |val**(1.0/n)|
for -val => real root -|val**(1.0/n)| when n is odd
for -val => first ccw complex root when n is even
9.root(2); -32.root(5,3); (-100.43).root 6,6
Use syntax: val.roots(n,{opt})
roots(n,opt=0) n is root 1/n exponent, integer > 0
opt, optional string input, are:
0 : default (no input), return array of n ccw roots
‘c’|‘C’: complex, return array of complex roots
‘e’|‘E’: even, return array even numbered roots
‘o’|‘O’: odd , return array odd numbered roots
‘i’|‘I’: imag, return array of imaginary roots
‘r’|‘R’: real, return array of real roots
An empty array is returned for an opt with no members.
9348134943.roots(9); -89.roots(4,‘real’); 2.2.roots 3,‘Im’
Can ask: How many real roots of x: x.roots(n,‘real’).size
What’s the 3rd 5th root of (4+9i): Complex(4,9).root(5,3)