User:Spekkio: Difference between revisions

Content added Content deleted
No edit summary
No edit summary
Line 33: Line 33:
maclaurin series for different functions sin/cos/sqrt/pow etc... (see my recent post in [[Talk:Nth root]])
maclaurin series for different functions sin/cos/sqrt/pow etc... (see my recent post in [[Talk:Nth root]])


<lang lisp>(defun pie() 31415926535897932385/10000000000000000000)
<lang lisp>
(defun pie() 31415926535897932385/10000000000000000000)


(defun factorial (n)
(defun factorial (n)
Line 43: Line 42:
(defun powint (a b)
(defun powint (a b)
(if (= b 0)
(if (= b 0)
1
1
(* a (powint a (- b 1)))))
(if (> b 0)
(* a (powint a (- b 1)))
(* (/ 1 a) (powint a (+ b 1)))
)
)
)


(defun binom (alpha n)
(defun binom (alpha n)
Line 56: Line 60:
(+ (* (binom b n) (powint (- a 1) n)) (power a b (- n 1)))))
(+ (* (binom b n) (powint (- a 1) n)) (power a b (- n 1)))))


(defun powertest(a b n)
(defun powertest(a b n prev)
(let (( power10 (power a b (+ 10 n)) ))
(if
(if
(= (* (power a b (+ 10 n)) 1.0) (* (power a b n) 1.0))
(= (* power10 1.0) (* prev 1.0))
(power a b (+ 10 n))
power10
(powertest a b (+ 10 n))
(powertest a b (+ 10 n) power10)
)
)
)
)
)


(defun pow (a b) (powertest a b 1))
(defun pow (a b)
(if (< a 0)
(if (< b 1)
0
(powertest a b 1 1)
)
(if (< a 2)
(powertest a b 1 1)
0
)
)
)


(defun logS(x n) (if (= n 0) (* 2 x) (+ (* 2 (/ (powint x (+ (* 2 n) 1)) (+ (* 2 n) 1))) (logS x (- n 1)) ) ))
(defun logS(x n) (if (= n 0) (* 2 x) (+ (* 2 (/ (powint x (+ (* 2 n) 1)) (+ (* 2 n) 1))) (logS x (- n 1)) ) ))
Line 74: Line 91:
(defun squaren(x n) (expon (* 1/2 (loge x n)) n))
(defun squaren(x n) (expon (* 1/2 (loge x n)) n))


(defun squarentest(a n)
(defun squarentest(a n prev)
(let (( square10 (squaren a (+ 10 n)) ))
(if
(if
(= (* (squaren a (+ 10 n)) 1.0) (* (squaren a n) 1.0))
(= (* square10 1.0) (* prev 1.0))
(squaren a (+ 10 n))
square10
(squarentest a (+ 10 n))
(squarentest a (+ 10 n) square10)
)
)
)
)
)


(defun sqrtn (a) (squarentest a 1))
(defun sqrtn (a) (squarentest a 1 0))


(defun powern(x a n) (expon (* a (loge x n)) n))
(defun powern(x a n) (expon (* a (loge x n)) n))


(defun powerntest(a b n)
(defun powerntest(a b n prev)
(let ((n10 (+ 10 n)))
(let (( power10 (powern a b n10) ))
(if
(if
(= (* (powern a b (+ 10 n)) 1.0) (* (powern a b n) 1.0))
(= (* power10 1.0) (* prev 1.0))
(powern a b (+ 10 n))
power10
(powerntest a b (+ 10 n))
(powerntest a b n10 power10)
)
)
)
)
))


(defun pown (a b) (powerntest a b 1))
(defun pown (a b) (powerntest a b 1 0))


(defun sine(x n)
(defun sine(x n)
Line 121: Line 143:




(defun asinetest(x n)
(defun asinetest(x n prev)
(let (( asine10 (asine x (+ 10 n)) ))
(if
(if
(= (* (asine x (+ 10 n)) 1.0) (* (asine x n) 1.0))
(= (* asine10 1.0) (* prev 1.0))
(asine x (+ 10 n))
asine10
(asinetest x (+ 10 n))
(asinetest x (+ 10 n) asine10)
)
)
)
)
)


Line 132: Line 156:
(if (< x 1)
(if (< x 1)
(if (> x -1)
(if (> x -1)
(asinetest x 1)
(asinetest x 1 0)
(/ (pie) -2)
(/ (pie) -2)
)
)