;;; NUCLEIC -- 3D structure determination of a nucleic acid. ; Author: Marc Feeley (feeley@iro.umontreal.ca) ; ; Last modified: January 27, 1996 ; ; This program is a modified version of the program described in the paper: ; ; M. Feeley, M. Turcotte, G. Lapalme, "Using Multilisp for Solving ; Constraint Satisfaction Problems: an Application to Nucleic Acid 3D ; Structure Determination" published in the journal "Lisp and Symbolic ; Computation". ; ; The differences between this program and the original are described in ; the paper: ; ; "???" published in the "Journal of Functional Programming". ; -- MATH UTILITIES ----------------------------------------------------------- (library (rnrs-benchmarks nucleic) (export main) (import (rnrs) (rnrs arithmetic flonums) (rnrs-benchmarks)) (define FLOATatan flatan) (define FLOATcos flcos) (define FLOATsin flsin) (define-syntax nuc-const (syntax-rules () [(_ x* ...) '#(x* ...)])) (define constant-pi 3.14159265358979323846) (define constant-minus-pi -3.14159265358979323846) (define constant-pi/2 1.57079632679489661923) (define constant-minus-pi/2 -1.57079632679489661923) (define (math-atan2 y x) (cond ((fl>? x 0.0) (FLOATatan (fl/ y x))) ((fl? x m) x m) (cdr l)))))) (define (run) (most-distant-atom (pseudoknot))) (define (main . args) (run-benchmark "nucleic" nucleic-iters (lambda (result) (and (number? result) (let ((x (fl/ result 33.797594890762724))) (and (fl>? x 0.999999) (fl