;;;; 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
;;;;
(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
(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))
;;;; 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
;;;;
(: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"))
--- /dev/null
+;;;; -*- 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)