Gary Knott

Gary Knott
civilized software · mathematics

PhD

About

121
Publications
30,181
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
1,841
Citations
Additional affiliations
January 1985 - present
Civilized Software (www.civilized.com)
Position
  • CEO
Description
  • Mathematical/Statistical Modeling Software
Education
January 1968 - June 1972
Stanford University
Field of study
  • Computer Science
September 1967 - June 1968
California Institute of Technology
Field of study
  • Information Science
January 1960 - June 1965
American University
Field of study
  • Mathematics

Publications

Publications (121)
Conference Paper
Full-text available
Let Z denote the set of integers {.. . , −2, −1, 0, 1, 2,. . .} and let Z + denote the set of positive integers {1, 2,. . .}. Also let R denote the set of real numbers (specified as all the numbers in the interval (−∞, ∞)). For a ∈ Z + ∪ {0}, let N a = {1, 2,. .. , a}; when a = 0, N a is empty, i.e., N 0 = ∅ where ∅ denotes the empty set. Let S a b...
Conference Paper
Full-text available
Around 1740, Daniel Bernoulli, Jean D'Alembert, and Leonhard Euler separately realized that, under poorly-understood conditions, a real-valued periodic period-p function, y(t) = y(t + p), for t ∈ R with p a fixed constant in R + , could be expressed as the sum of sinusoidal oscillations of various frequencies, amplitudes, and phaseshifts, so that y...
Article
Full-text available
An algorithm for computing a monotonic non-parametric regession curve for given data is presented.
Technical Report
Full-text available
Let Z denote the set of integers {.. . , −2, −1, 0, 1, 2,. . .} and let Z + denote the set of positive integers {1, 2,. . .}. Also let R denote the set of real numbers (specified as all the numbers in the open interval (−∞, ∞)). For a ∈ Z + ∪ {0}, let N a = {1, 2,. .. , a}; when a = 0, N a is empty, i.e., N 0 = ∅ where ∅ denotes the empty set. Let...
Preprint
Full-text available
Excerpt from book Exercise 0.1: Let a, c ∈ Z and b, d ∈ Z + with a b < c d. Show that a b < a + c b + d < c d. The fraction a + c b + d is called the mediant of a b and c d. Solution 0.1: Given a b < c d with b, d ∈ Z + , we have ad < bc. But then ad 2 < bcd, so bad + ad 2 < bad + bcd. And ad < bc implies bad < b 2 c, so bad + bcd < b 2 c + bcd. Th...
Preprint
Full-text available
Excerpt from book Exercise 0.1: Let a, c ∈ Z and b, d ∈ Z + with a b < c d. Show that a b < a + c b + d < c d. The fraction a + c b + d is called the mediant of a b and c d. Solution 0.1: Given a b < c d with b, d ∈ Z + , we have ad < bc. But then ad 2 < bcd, so bad + ad 2 < bad + bcd. And ad < bc implies bad < b 2 c, so bad + bcd < b 2 c + bcd. Th...
Preprint
Full-text available
Excerpt from book Exercise 0.1: Let a, c ∈ Z and b, d ∈ Z + with a b < c d. Show that a b < a + c b + d < c d. The fraction a + c b + d is called the mediant of a b and c d. Solution 0.1: Given a b < c d with b, d ∈ Z + , we have ad < bc. But then ad 2 < bcd, so bad + ad 2 < bad + bcd. And ad < bc implies bad < b 2 c, so bad + bcd < b 2 c + bcd. Th...
Preprint
The Stern-Brocot tree is an explicit recursive mediant construction of the rational numbers. It was written about (as a sequence of sequences) by Moritz Stern in 1858 and in a book by Achille Brocot in 1861 concerning its application to gear train optimization in clock-building. The Stern-Brocot tree and other related trees expose interesting st...
Conference Paper
Full-text available
A one-input linear system is an operator, H, which maps an input function, x, to a corresponding output function, y. Thus y(t) = (Hx)(t). H is a linear operator, so that H(ax + bz) = a(Hx) + b(Hz). A shift-invariant linear system has the property that H(x(t − s)) = (Hx)(t − s). A shift-invariant linear system, H, must be frequency-preserving, so th...
Article
Full-text available
Article
Full-text available
Conference Paper
Full-text available
(This paper replaces the earlier (undeletable?) version) Let Z denote the set of integers {.. . , −2, −1, 0, 1, 2,. . .} and let Z + denote the set of positive integers {1, 2,. . .}. Also let R denote the set of real numbers (specified as all the numbers in the open interval (−∞, ∞)). For a ∈ Z + ∪ {0}, let N a = {1, 2,. .. , a}; when a = 0, N a...
Chapter
Let’s denote the value of an atom or function call expression, x, by v[x] from now on. The evaluation operator, v, defined here, is essentially embodied in the LISP Interpreter program.
Chapter
In order to handle number atoms efficiently as values within the LISP Interpreter, we have used pointers to numbers in sketching the working of the v operator. This use of pointers is also required to allow functions to be treated as values. The guiding idea is that the LISP Interpreter needs to know, at least potentially, the name or lexical expre...
Chapter
when performing the Boolean operation of logical negation.
Chapter
AND: special form with a varying number of arguments
Chapter
There are many built-in functions in LISP that are not logically required to be built in. They are there for convenience, and in some cases because they are faster that way. The three functions presented below are built-in functions that have definitions in terms of other more basic functions and special forms.
Chapter
Here we present some basic functions in LISP that operate on nonatomic, as well as atomic, S-expressions.
Chapter
Internally, that is, inside the computer, an ordinary atom in LISP is represented by an integer index into the atom table, that is, by a pointer. I use the terms index and pointer interchangeably as seems fit; the term address is sometimes used as well. By knowing a pointer to an ordinary atom, we can access both the name and the value of the atom....
Chapter
Full-text available
The special form QUOTE is used so frequently that a special notation is provided. The single quote or apostrophe symbol is used to denote a unary prefix operator, defined so that ’e = (QUOTE e). Thus for example, the SET function can be defined by the input:
Chapter
Full-text available
In order to be able to specify a LISP function that behaves like an interactive program, we need a mechanism for printing messages to a user and for reading user-supplied input. The functions READ and PRINT satisfy these requirements.
Chapter
We can now state a few built-in LISP functions and special forms. We do not describe the results obtained when “illegal” input of various kinds is evaluated. Such behavior varies according to the implementation of the LISP Interpreter. Following is a list of special forms and functions in LISP:
Chapter
Internally in the LISP Interpreter program, callable LISP functions and special forms take typed-pointers to S-expressions as input and return a typed-pointer to an S-expression as output. The only (apparent) exceptions are those functions and special forms that accept or return functions or special forms, that is, conceptually sets of ordered pair...
Chapter
We can use the LISP Interpreter to compute the value of combinations of built-in functions and special forms applied to arguments, but to use LISP as a programming language rather than as a curious kind of calculator, we must have a way to define functions of our own choosing and use them, rather than just use unnamed compositions of preexisting fu...
Chapter
The quick answer to the question “What is LISP good for?” is (1) ideas and (2) experimental programs.
Chapter
As input S-expressions are provided to the LISP Interpreter to evaluate, various list structures in the list area are constructed, both from the input and during the process of evaluation. Many of these list structures have no use after they have been initially used. Such useless data objects are called garbage data objects. In the case of list are...
Chapter
Some forms of nonatomic S-expressions arise so frequently there is a special notation for them. A dotted-pair of the form (S1 . (S2 . (· · · . (Sk . NIL)· · ·))) where S1, S2, . . . , Sk are all S-expressions is called a list and is written as (S1 S2 … Sk), which is the sequence of S-expressions S1, S2, . . . , Sk written with intervening blanks an...
Chapter
Let us suppose the atom table and the number table are loaded as follows:
Chapter
The rules for differentiation are explicitly recursive, so it is easy to use LISP to compute the symbolic derivative of a real-valued function of real-number arguments. The biggest difficulty is the problem of input and output notation. If we agree to accept the LISP prefix notation for algebraic expressions, so that we enter 1 + sin(x + y)/x as (P...
Chapter
A typed-pointer to this S-expression is returned. If the input S-expression is not an atom, a corresponding list structure will be created in the list area.
Chapter
User-defined special forms are created by applying the special form SPECIAL, which is completely analogous to the special form LAMBDA, except that an unnamed-special-form-typed-pointer to the dotted-pair of the input arguments is returned, so that the result will, upon later use, be interpreted as a special form rather than a function. An unnamed-s...
Chapter
Full-text available
Recursive functions or special forms can be named and defined in LISP using SETQ. This is convenient, and we almost always define functions and special forms this way in practice. But this leaves a theoretical difficulty about the LAMBDA operator, namely, we must use SETQ and assign a name in order to define a recursive function. Thus not every des...
Chapter
This chapter discusses more functions and special forms.
Chapter
In order to implement the e operator for evaluating λ-expression bodies within the LISP Interpreter, we must devise a mechanistic way to bind actual arguments to formal arguments and to honor the contexts thus established during the time that a related λ-expression is being evaluated. There are several ways to do this. The earliest approach, which...
Chapter
This chapter will discuss writing a LISP program to play a zero-sum, perfect-information game. A perfect-information game is a game such as chess where the entire state of the game (i.e., the current position and its history) is known to all players. Poker is not a perfect-information game. A zero-sum game is just a game where if the game were play...
Chapter
Ordinary atoms have values, and it is often convenient to imagine that an ordinary atom has several values. This can be accomplished by making a list of these values and using this list as the value whose elements are the desired several values. Frequently, however, these multiple values are used to encode properties. This is so common that LISP pr...
Chapter
LISP has built-in functions that deal with certain composite data objects constructed out of atoms. These data objects are called nonatomic S-expressions. They are binary trees whose terminal nodes are atoms. Some of these trees can be interpreted as lists, and these are a very popular form in LISP. Indeed, as mentioned earlier, LISP derives its na...
Chapter
Let the set of basic S-expressions be the set of ordinary atoms (with nonnumeric names) and non-atomic S-expressions formed from these. The following nine functions and special forms constitute a set of functions and special forms that are universal in the sense that, with these, any computable function of basic S-expression arguments can be expres...
Chapter
The LISP Interpreter program maintains several general data structures. The first data structure is a symbol table with an entry for every named data object. These named data objects are called ordinary atoms, and the symbol table of ordinary atoms is called the atom table. (The term atom is historical; that is the term John McCarthy, the designer...
Chapter
Below is the lispinit file used by the LISP Interpreter program.
Conference Paper
Full-text available
Several proofs of the Inclusion-Exclusion formula and ancillary identities, plus a few applications. See the later version (Aug 11, 2017 -- I can't see how to delete this old copy.
Conference Paper
Full-text available
Permutations - combinatorial and group-theoretic aspects of permutations.
Article
A little story about Permutations
Article
Full-text available
A flexible springy wire of length h lying in the xy-plane pinned at the end-points (a 1 , a 2) and (b 1 , b 2) with or without specified directions at these end-points is physically determined to have one of several stable shapes, each corresponding to a locally-minimal energy value. We may seek these minimal energy shapes; such a curve will be cal...
Research
Full-text available
The Hodgkin-Huxley Circuit Model for the ionic current across a nerve cell membrane.
Data
Full-text available
Technical Report
Full-text available
Mathematical Modeling for Simple Binding. The latest text for this paper is at www.civilized.com
Article
Full-text available
The practical issues involved in parameter estimation via weighted least-squares minimization are reviewed, with emphasis on fitting compartmental models. An example is given and solved using the MLAB mathematical and statistical modeling package. The problems of weight generation and of guessing an initial starting point are discussed and various...
Article
Full-text available
: The practical issues involved in parameter estimation via weighted least-squares min-imization are reviewed, with emphasis on fitting compartmental models. An example is given and solved using the MLAB mathematical and statistical modeling package. The problems of weight generation and of guessing an initial starting point are discussed and vario...
Article
Full-text available
This technical note shows the use of the MLAB mathematical and statistical modelling system for solving the Hodgkin-Huxley differential equations for arbitrary initial conditions. The prevailing model of a nerve axon membrane is a pair of theories concerning the nature of the axon membrane with respect to active ("pumping") and passive (diffusion)...
Article
Full-text available
The MLAB advanced mathematical and statistical modeling system is a useful tool for mathemat-ical modeling as is demonstrated by the following example. MLAB is a general-purpose system which can be applied to model enzyme kinetics, multiple site binding equilibrium, or any of a wide variety of other situations. Many such examples are given at the w...
Article
Full-text available
Solving a set of linear equations arises in many contexts in applied mathematics. At least until recently, a claim could be made that solving sets of linear equations (generally as a component of dealing with larger problems like partial-differential-equation solving, or optimization, consumes more computer time than any other computational procedu...
Article
Full-text available
Ruminants (cattle, sheep, etc.) “ferment” their ingested food in their “first stomach,” the rumen. There, food is partially digested due to mastication and microbial action. As a result of this “pre-processing,” the animal is able to extract more nutrient substances from its food than would otherwise be the case. A mathematical description for the...
Article
Full-text available
Motivation: Obtaining accurate estimates of the numbers of protein-coding genes and protein domains in a proteome, and the number of protein domains in nature is a daunting challenge. Computational analysis of the protein domain sets in the proteomes of many species allows us to estimate these numbers and to find their evolution relationships. Resu...
Article
Full-text available
Thousands of genes are expressed at such very low levels (< or =1 copy per cell) that global gene expression analysis of rarer transcripts remains problematic. Ambiguity in identification of rarer transcripts creates considerable uncertainty in fundamental questions such as the total number of genes expressed in an organism and the biological signi...
Article
The review above clearly indicates the reviewer's displeasure with the discursive style of this text. However, almost none of the topics of substance therein are discussed. I do not treat non-interpolatory approximation in depth in some places, because this sub-topic is the main content of the books of Farin and of Bartels, Beatty, and Barsky. Neve...
Article
Full-text available
Deterministic models describing mechanisms underlying tumor growth, suppression, and regrowth are proposed and fit to kinetic data on B cell lymphoma in mice. It is demonstrated that either a modest change in the effectiveness of killer cell suppression, or the existence of a variant nonimmunogenic clone of the tumor cells, can explain the regrowth...
Conference Paper
In many clinical trials, the prediction of patient outcome following therapy requires the analysis of two or more small groups of responders having a large number of simultaneously measured covariates, some of whose values may be absent. Prediction of individual outcomes in these groups is a severe statistical problem. This has motivated us to deve...
Article
Full-text available
We have evaluated several lumped parameter analog models for the early chick embryonic vascular system that may be used to infer loading characteristics of the developing heart. We measured dorsal aortic pressure and flow simultaneously with a servo-null pressure system and a pulsed Doppler velocimeter. Four different analog circuit models were cho...
Chapter
A curve in either 2-space or 3-space may be given parametrically by specifying coordinate functions. For example, a circle x in the plane is defined by x 1(t) = cos(t) and x 2(t) = sin(t) for −π t ≤ π; the argument t is called the parameter of the curve mapping x. The graph of x is thus (x 1(t),x 2(t)) | x 1(t) = cos(t), x 2(t) = sin(t), −π plane c...
Chapter
The first general problem we wish to consider below is how to construct an interpolatory space curve which passes, in order, through given points p 1, p 2,…,p n in R 2 or R 3, perhaps along given associated directions m 1, m 2,…, m n , with |m i | ≠ 0 for i = 1, 2,…, n. Indeed, we could elaborate the interpretation of the direction vectors, m 1…, m...
Chapter
We may construct interpolating cubic splines for points in 3-space by using a parametric representation for such splines.
Chapter
The device of sweeping a cubic polynomial space curve through space while simultaneously deforming it so as to match a second cubic polynomial space curve at the end of the sweep can be generalized so that we can sweep and deform any given initial boundary curve so that it matches any given final boundary curve at the end of the sweeping process. T...
Chapter
This initial chapter contains a reminder of some basic vector algebra used in the book. The focus is on a geometric view of vector spaces, and on the inner product (also known as the dot product) and vector cross product operations. Although this episodic material is no substitute for previous exposure, it may be helpful to have some basic results...
Chapter
Show that a quadratic space curve q(t) = a + bt + ct2 is a planar curve, and thus prove that a cubic is the lowest degree polynomial space curve which has non-zero torsion.
Chapter
A 2D-function is a function whose domain and range are both included in R, and whose graph thus lies in R2. The initial interpolation problem we will consider is that of 2D-functional interpolation: given points of the graph of an otherwise unknown 2D-function g, we are interested in constructing another 2D-function which interpolates the given poi...
Chapter
Let f1, f2,… , fn be real values. Suppose we consider the data points (r0, f1), (r1, f2),…, (rn−1fn ), with r0 ≤ r1 ≤ … ≤ rn−1, to be points of R2 sampled with error from the graph of some unknown function f : R → R such that fj = f(rj−1) + ∈j for j = 1,… , n. If the form of the function f were known, except for some unknown parameter values, we co...
Chapter
Finding a basis 〈φ1,… ,φd 〉 for a d-dimensional vector space of cubic splines allows us to express any element x of the vector space as x = α1φ1 +… +αd φd where α1,… , αd ∈ R. For the case of a vector space of cubic spline functions, some basis sets can be developed by focusing on a representation of the cubic polynomial spline segments as componen...
Chapter
A cubic polynomial curve in the xy-plane, (x1 (t), x2(t)), whose cubic term has a coefficient of 0 reduces to a parabola in this special case; but a cubic polynomial cannot represent other conic section curves such as a circular arc, an elliptic arc, or a segment of an hyperbola. It is an interesting fact, however, that an elliptic or hyperbolic ar...
Chapter
A surface in R3 can be defined in several ways in terms of functions of several variables. For a surface S, we may have a real-valued function f : R3 → R, such that S = (x,y,z) | f (x,y,z) = 0. Alternatively, we may have a vector-valued function p : Q , R2 → R3, such that S = p(u, v) | (u, v) ∈ Q , R2. The component functions of p are identified se...
Chapter
We may construct a more general class of cubic space curve splines called double tangent splines by introducing two tangent vectors at each point pi . Let m1,…, mn be the exit tangent vectors at p1,…, pn , and let l1,…,ln be the entry tangent vectors at p1,…, pn . We intend that our double tangent spline will asymptotically enter the point pi along...
Chapter
As we have seen, a cubic spline that interpolates given points p1,… , pn is determined by choosing associated tangent vectors m1,… , mn , together with particular parameter limit values t1… , tn−1. Instead of determining each tangent vector mi locally in terms of pi and its immediate neighbors, we may choose the tangent vectors m1… , mn in a global...
Chapter
Let p1,…, pn ∈ R3. A flexible springy wire of length h pinned at the end points p1 and pn , and passing through the points p2, … , pn−1 with or without specified directions is physically determined to have one of several stable shapes, each corresponding to a locally minimal energy value. We may seek these minimal energy shapes; such a curve will b...
Chapter
Two packages of C functions are given below. The first package is contained in a file entitled gsplinec and provides a routine called cinterpolate that can be used to compute a variety of different interpolating cubic spline curves (or their derivatives or integrals) which differ in the choice used of the tangent estimation method. The second packa...
Chapter
In this section we will construct various parametric functions piecewise-composed of bicubic functions that map from R2 to R3. These functions are bicubic surface splines analogous to the cubic space curve splines that we studied above. Again we want to construct spline surfaces that contain given points in 3-space, and, generally, that have specif...
Chapter
All forms of splines we shall consider for 2D-functions and 3D-space curves will be Λ-splines as now introduced. Let Λ be a class of vector- valued functions which mapRto Rd , such that no two functions in Λ are identical on [r 0, r n−1]. Given the real values r0 ≤ r1 ≤ … ≤ rn −1, the parametric function s(t) defined on the interval [r0, rn −1] is...
Chapter
Recall that we can construct a double tangent cubic spline which is tangent-vector geometrically continuous at its join points by choosing pairs of entry and exit tangent vectors at each point pi , where each pair may have differing magnitudes, but the same direction. It is common to call a tangent vector geometrically continuous curve a G1 curve,...
Book
The study of spline functions is an outgrowth of basic mathematical concepts arising from calculus, analysis and numerical analysis. Spline modelling affects a number of fields: statistics; computer graphics; CAD programming, and other areas of applied mathematics.
Article
features must finally be defined in terms of concrete features. The selection of features is often difficult. The problem of having a program automatically discover good features which "span" the description of a position is completely unsolved, although much interest in this and other related issues exists. Machine learning, as pioneered by Arthur...
Conference Paper
How can one make a prediction for an individual outcome, given ill-structured and multi-scaled data about a small group of other similar individuals? To answer this question, we develop a robust combinatorial-statistical optimization method for doing pattern recognition based on such data. This method is based on the simulation of recognition proce...
Book
Preface I wrote this book to help teach LISP to students in a course on data structures. Consequently it contains a careful description of the data structures manipulated by LISP functions, and also the data structures used in constructing a LISP interpreter. I wish to acknowledge the help of my students in shaping and debugging this material. The...
Article
Situations where nonparametric models are needed often arise with economic time-series data or other phenomenological data, and a variety of methods exist for obtaining them. They include kernel estimation, polynomial fitting with moving weights, smoothing splines, moving means and moving medians. This article focuses on kernel estimation and movin...
Article
Full-text available
Spiral hashing is an interesting extendible hashing method. Only one approximate analysis of its performance was given, which was based on a heuristic approach and did not specify the error. In this paper, we present a discrete analysis of the expected search cost and the expected amortized rehashing cost in spiral hashing for which a big-O term ca...
Article
When a program is executed in a caching environment, the caching algorithm can be modeled by an associated finite-state automaton. It is assumed that the finite automaton will reach a steady state after processing a long string. By considering the finite automaton, a formula is obtained for the expected page-fault rate in terms of the steady-state...
Chapter
MLAB, (for Modeling LABoratory), is a program for interactive mathematical modeling. MLAB was originally developed at the National Institutes of Health and has been enhanced for use on PC’s. It includes curve-fitting, differential equations, statistics and graphics as some of its major capabilities. MLAB provides more than thirty command types and...
Article
An efficient and numerically correct program called FastHull for computing the convex hulls of finite point sets in the plane is presented. It is based on the Akl-Toussaint algorithm and the MergeHull algorithm. Numerical correctness of the FastHull procedure is ensured by using special routines for interval arithmetic and multiple precision arithm...
Article
Full-text available
An algorithm for set operations on pairs of polygons is presented. The algorithm uses a boundary representation for the input and output polygons. Its domain includes simple polygons as well as polygons with dangling edges, vertices of degree greater than 2, and holes within the area of the polygon. A partial proof of the correctness of the algorit...
Article
B-trees and their variants, B∗-trees, B+-trees, and B∗+-trees are described and the storage utilization and mean path length in such trees are studied. A new method to find the approximate operation costs and storage utilization in a B-tree and in B-tree variants is presented and the results are verified experimentally. This paper simultaneously se...
Article
The hash table method called direct chaining, wherein chains of items with the same hash function value are kept in a single table without recourse to an index table or a separate overflow area, is described. An explicitly linked free-space list is used which allows arbitrary insertion and deletion sequences to be done indefinitely with no performa...
Article
Linear open addressing is a venerable hashing collision resolution method which exhibits primary clustering when items are stored. Linear open addressing is a 1-successor method as defined herein, but such methods do not exhaust the class of primary clustering methods. Being a primary clustering method does not, therefore, characterize linear open...
Article
An algorithm for computing the intersection of a polygon with a raster of parallel lines is presented. Each edge of the polygon is processed just once, and then the fill-line end-points are sorted into the correct order. One of the main contributions of this paper is an explicit, carefully programmed procedure, saving the reader the need for a labo...

Network

Cited By