From: Kevin M. Rosenberg Date: Fri, 8 Nov 2002 06:43:34 +0000 (+0000) Subject: r3343: *** empty log message *** X-Git-Tag: v1.96~296 X-Git-Url: http://git.kpe.io/?p=kmrcl.git;a=commitdiff_plain;h=d78955696cc7e6fa8c50a880085c019f506c8bd9 r3343: *** empty log message *** --- diff --git a/genutils.lisp b/genutils.lisp index be156cc..09d595d 100644 --- a/genutils.lisp +++ b/genutils.lisp @@ -7,7 +7,7 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Apr 2000 ;;;; -;;;; $Id: genutils.lisp,v 1.9 2002/11/07 22:08:41 kevin Exp $ +;;;; $Id: genutils.lisp,v 1.10 2002/11/08 06:43:34 kevin Exp $ ;;;; ;;;; This file, part of KMRCL, is Copyright (c) 2002 by Kevin M. Rosenberg ;;;; @@ -222,15 +222,15 @@ (strm (gensym))) `(let ((,strm ,stream) (,eof ',eof-value)) - (do ((,var (read-line ,strm nil ,eof) (read-line ,strm nil ,eof))) - ((eql ,var ,eof)) - ,@body)))) + (do ((,var (read-line ,strm nil ,eof) (read-line ,strm nil ,eof))) + ((eql ,var ,eof)) + ,@body)))) (defmacro with-each-file-line ((var file) &body body) (let ((stream (gensym))) `(with-open-file (,stream ,file :direction :input) - (with-each-stream-line (,var ,stream) - ,@body)))) + (with-each-stream-line (,var ,stream) + ,@body)))) ;;; Keyword functions @@ -385,9 +385,9 @@ (defun file-subst (old new file1 file2) (with-open-file (in file1 :direction :input) - (with-open-file (out file2 :direction :output - :if-exists :supersede) - (stream-subst old new in out)))) + (with-open-file (out file2 :direction :output + :if-exists :supersede) + (stream-subst old new in out)))) (defun stream-subst (old new in out) (declare (string old new)) diff --git a/kmrcl.asd b/kmrcl.asd index 9a6606d..cc98090 100644 --- a/kmrcl.asd +++ b/kmrcl.asd @@ -7,7 +7,7 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Apr 2000 ;;;; -;;;; $Id: kmrcl.asd,v 1.19 2002/11/03 20:10:48 kevin Exp $ +;;;; $Id: kmrcl.asd,v 1.20 2002/11/08 06:43:34 kevin Exp $ ;;;; ;;;; This file, part of KMRCL, is Copyright (c) 2002 by Kevin M. Rosenberg ;;;; @@ -34,6 +34,7 @@ (:file "telnet-server" :depends-on ("genutils")) (:file "random" :depends-on ("package")) (:file "cl-symbols" :depends-on ("package")) + (:file "math" :depends-on ("package")) #+allegro (:file "attrib-class" :depends-on ("package")) (:file "web-utils" :depends-on ("package")) (:file "xml-utils" :depends-on ("package")) diff --git a/math.lisp b/math.lisp new file mode 100644 index 0000000..9772b7a --- /dev/null +++ b/math.lisp @@ -0,0 +1,31 @@ +;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*- +;;;; ************************************************************************* +;;;; FILE IDENTIFICATION +;;;; +;;;; Name: math.lisp +;;;; Purpose: General purpose math functions +;;;; Programmer: Kevin M. Rosenberg +;;;; Date Started: Nov 2002 +;;;; +;;;; $Id: math.lisp,v 1.1 2002/11/08 06:43:34 kevin Exp $ +;;;; +;;;; This file, part of KMRCL, is Copyright (c) 2002 by Kevin M. Rosenberg +;;;; +;;;; KMRCL users are granted the rights to distribute and use this software +;;;; as governed by the terms of the Lisp Lesser GNU Public License +;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL. +;;;; ************************************************************************* + + +(in-package :kmrcl) +(declaim (optimize (speed 3) (safety 1) (compilation-speed 0) (debug 3))) + +(defun deriv (f dx) + #'(lambda (x) + (/ (- (funcall f (+ x dx)) (funcall f x)) + dx))) + +(defun sin^ (x) + (funcall (deriv #'sin 1d-8) x)) + +;;; (sin^ pi)