blob: 7a8b455cad009fb42092fbce927d5443d202e622 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
(load "lizfcm.asd")
(ql:quickload :lizfcm)
;; this is a collection showcasing the library developed for math4610, required
;; from the Shared Library definition
(defun smaceps ()
(cadar (last (lizfcm.approx:compute-maceps
(lambda (x) x) 1.0 1.0))))
(defun dmaceps ()
(cadar (last (lizfcm.approx:compute-maceps
(lambda (x) x) 1.0d0 1.0d0))))
(defun l2-norm (v)
(let ((2-norm (lizfcm.vector:p-norm 2)))
(funcall 2-norm v)))
(defun l1-norm (v)
(let ((1-norm (lizfcm.vector:p-norm 1)))
(funcall 1-norm v)))
(defun linf-norm (v)
(lizfcm.vector:max-norm v))
(defun l2-distance (v1 v2)
(let ((2-norm (lizfcm.vector:p-norm 2)))
(lizfcm.vector:distance v1 v2 2-norm)))
(defun l1-distance (v1 v2)
(let ((1-norm (lizfcm.vector:p-norm 1)))
(lizfcm.vector:distance v1 v2 1-norm)))
(defun linf-distance (v1 v2)
(lizfcm.vector:distance v1 v2 'lizfcm.vector:max-norm))
(defun f (x)
(/ (- x 1) (+ x 1)))
(defun fprime (x)
(/ 2 (expt (+ x 1) 2)))
(defmacro showcase (s-expr)
`(format t "~a = ~a~%" ,(format nil "~a" s-expr) ,s-expr))
(defun main ()
(showcase (smaceps))
(showcase (dmaceps))
(showcase (l2-norm '(1 2)))
(showcase (l1-norm '(1 2)))
(showcase (linf-norm '(1 2)))
(showcase (l1-distance '(1 2) '(-3 4)))
(showcase (l2-distance '(1 2) '(-3 4)))
(showcase (linf-distance '(1 2) '(-3 4)))
(showcase (lizfcm.vector:least-squares-reg '(1 2 3 4 5 6 7)
'(0.5 3 2 3.5 5 6 7.5)))
(showcase (lizfcm.approx:forward-derivative-at 'f 1 0.00001))
(showcase (lizfcm.approx:central-derivative-at 'f 1 0.00001))
(showcase (lizfcm.approx:backward-derivative-at 'f 1 0.00001)))
|