Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Bernard A. Galler is active.

Publication


Featured researches published by Bernard A. Galler.


Communications of The ACM | 1964

An improved equivalence algorithm

Bernard A. Galler; Michael J. Fisher

An algorithm for assigning storage on the basis of EQUIVALENCE, DIMENSION and COMMON declarations is presented. The algorithm is based on a tree structure, and has reduced computation time by 40 percent over a previously published algorithm by identifying all equivalence classes with one scan of the EQUIVALENCE declarations. The method is applicable in any problem in which it is necessary to identify equivalence classes, given the element pairs defining the equivalence relation.


Journal of the Acoustical Society of America | 1979

Predicting musical pitch from component frequency ratios

Martin Piszczalski; Bernard A. Galler

A computer algorithm has been developed for music applications that automatically estimates pitch from any small number of frequencies, not necessarily of equal amplitude. Low‐integer ratios are sought for each pair of frequencies. If an actual frequency‐pair ratio closely approximates a low‐integer ratio, the matching integers of this latter ’’ideal harmonic ratio’’ are accepted as possible harmonic numbers of the two actual frequencies in the tone. Hence, by comparing components to each other we can infer their likely harmonic numbers; if this is done successfully, then estimating the fundamental becomes a straightforward task. Therefore, the efficacy of the method lies in the cumulative effect of several component pair evaluations, all substantiating consistent harmonic assignments to the participating components. The method has proven to be useful in extracting pitch from spectral peaks taken from natural musical sounds, and it closely approximates some results of earlier experimental measurements of ...


Journal of the ACM | 1966

Program and Addressing Structure in a Time-Sharing Environment

Bruce W. Arden; Bernard A. Galler; T. C. O'Brien; F. H. Westervelt

The problem studied is the effect of a time-sharing environment on the structure of programs and on the addressing strategies which may be employed in the hardware. An account is given of some very recent developments toward reduction in the system overhead needed to facilitate time-sharing. One hardware-software scheme designed to implement this reduction is described in some detail.


Journal of the ACM | 1962

An Algorithm for Translating Boolean Expressions

Bruce W. Arden; Bernard A. Galler; Robert M. Graham

Abstract. This paper describes an algorithm for scanning Boolean expressions. Such an algori thm takes a complex, relational expression and transforms it into an opt imal set of computing steps. The result is opt imal in the sense tha t no redundant evaluat ions are made. The par t icular algori thm described is advantageous in that , as a var iant of a well-known arithmetic scan, it fits into a general scheme for the translation of statements to machine language. Consistent with this arithmetic expression scan, which is included as a starting point for the development, this Boolean scan does not require the re-ordering of subexpressions.


Communications of The ACM | 1961

An algorithm for equivalence declarations

Bruce W. Arden; Bernard A. Galler; Robert M. Graham

Many algebraic translators provide the programmer with a limited ability to allocate storage. Of course one of the most desirable features of these translators is the extent to which they remove the burden of storage allocation from the programmer. Nevertheless, there are situations in which one wishes to make certain vectors and arrays contiguous, coincident, or overlapping. This is made possible in FORTRAN by the use of COMMON and EQUIVALENCE statements, in MAD by the use of PROGRAM COMMON, ERASABLE, and EQUIVALENCE statements, etc.


Computers and The Humanities | 1979

Computer Analysis and Transcription of Performed Music: A Project Report

Martin Piszczalski; Bernard A. Galler

The purpose of this project was to create a system that would automatically transcribe musical sounds into their equivalent music notation. In other words, the system could automatically detect the notes in a played melody and write out the note patterns just as a human transcriber would. For this task, a computer system was proposed that would work solely from tape recordings of a wide class of musical instruments.


Journal of the ACM | 1957

The Method of Reduced Matrices for a General Transportation Problem

Paul S. Dyer; Bernard A. Galler

In the usual statement of the transportation problem [A], one has N items to send from shipping points A1,...,Ap to receiving points B1,...,Bq. The amounts available for shipment from A1,...,Ap are a1,...,ap, respectively, where (equation) Given the cost cij of shipping one item from Ai to Bj, the problem is to allocate the shipments so as to minimize the total cost. Formally, the problem is to find a set of integers xij such that (1) (equation) (equation) (equation) (equation)


Communications of The ACM | 1969

The MAD definition facility

Bruce W. Arden; Bernard A. Galler; Robert M. Graham

One of the first definition facilities for higher level languages is described. Users of the language can define new operators and/or data types into the MAD language, so that their use appears as if they were predefined. Information is given on how one writes definitions, as well as on much of the motivation behind the form in which definitions are written. Some conclusions are drawn about future definitional facilities.


Journal of the ACM | 1960

A Generalization of a Theorem of Carr on Error Bounds for Rung-Kutta Procedures

Bernard A. Galler; D. P. Rozenberg

In [1] Carr established propagation error bounds for a particular Runge-Kutta (RK) procedure, and suggested that similar bounds could be established for other RK procedures obtained by choosing the parameters differently. More explicitly, a fourth-order Runge-Kutta procedure for the solution of the equation <italic>y</italic>′ = ƒ(<italic>x,y</italic>) is based on the computation: <italic>k</italic><subscrpt>1</subscrpt> = <italic>h</italic>ƒ(<italic>x<subscrpt>i</subscrpt></italic>, <italic>y<subscrpt>i</subscrpt></italic>) <italic>k</italic><subscrpt>2</subscrpt> = <italic>h</italic>ƒ(<italic>x<subscrpt>i</subscrpt></italic>, + <italic>mh</italic>, <italic>y<subscrpt>i</subscrpt></italic> + <italic>mk</italic><subscrpt>1</subscrpt>) <italic>k</italic><subscrpt>3</subscrpt> = <italic>h</italic>ƒ(<italic>x<subscrpt>i</subscrpt></italic>, + <italic>vh</italic>, <italic>y<subscrpt>i</subscrpt></italic> + (<italic>v</italic> - <italic>r</italic>)<italic>k</italic><subscrpt>1</subscrpt> + <italic>rk<subscrpt>2</subscrpt></italic>) <italic>k</italic><subscrpt>4</subscrpt> = <italic>h</italic>ƒ(<italic>x<subscrpt>i</subscrpt></italic>, + <italic>ph</italic>, <italic>y<subscrpt>i</subscrpt></italic> + (<italic>p</italic> - <italic>s</italic> - <italic>t</italic>)<italic>k</italic><subscrpt>1</subscrpt> + <italic>sk</italic><subscrpt>2</subscrpt> + <italic>tk</italic><subscrpt>3</subscrpt>) <italic>k</italic> = <italic>ak</italic><subscrpt>1</subscrpt> + <italic>bk</italic><subscrpt>2</subscrpt> + <italic>ck</italic><subscrpt>3</subscrpt> + <italic>dk</italic><subscrpt>4</subscrpt> <italic>y</italic><subscrpt><italic>i</italic>+1</subscrpt> = <italic>y<subscrpt>i</subscrpt></italic> + <italic>k</italic>, where <italic>h</italic> is the step size of the integration. Carr considered the case: <italic>k</italic><subscrpt>1</subscrpt> = <italic>h</italic>ƒ(<italic>x<subscrpt>i</subscrpt></italic>, <italic>y<subscrpt>i</subscrpt></italic>) <italic>k</italic><subscrpt>2</subscrpt> = <italic>h</italic>ƒ(<italic>x<subscrpt>i</subscrpt></italic> + 1/2<italic>h</italic>, <italic>y<subscrpt>i</subscrpt></italic> + 1/2 <italic>k</italic><subscrpt>1</subscrpt>) <italic>k</italic><subscrpt>3</subscrpt> = <italic>h</italic>ƒ(<italic>x<subscrpt>i</subscrpt></italic> + 1/2<italic>h</italic>, <italic>y<subscrpt>i</subscrpt></italic> + 1/2 <italic>k</italic><subscrpt>2</subscrpt>) <italic>k</italic><subscrpt>4</subscrpt> = <italic>h</italic>ƒ(<italic>x<subscrpt>i</subscrpt></italic> + <italic>h</italic>, <italic>y<subscrpt>i</subscrpt></italic> + <italic>k</italic><subscrpt>3</subscrpt>) <italic>k</italic> = 1/6 (<italic>k</italic><subscrpt>1</subscrpt> + 2<italic>k</italic><subscrpt>2</subscrpt> + 2<italic>k</italic><subscrpt>3</subscrpt> + <italic>k</italic><subscrpt>4</subscrpt>) <italic>y<subscrpt>i</italic>+1</subscrpt> = <italic>y<subscrpt>i</subscrpt></italic> + <italic>k</italic>, and established the following theorem (we shall use the notation of [1] without further explanation): THEOREM 1. <italic>If</italic> ∂ƒ/∂<italic>y is continuous, negative, and bounded from above and below throughout a region D in the (x, y)-plane,</italic> -<italic>M</italic><subscrpt>2</subscrpt> < ∂ƒ/∂<italic>y</italic> < - <italic>M</italic><subscrpt>1</subscrpt> < 0, <italic>where M</italic><subscrpt>2</subscrpt> > <italic>M</italic><subscrpt>1</subscrpt> > 0, <italic>then for a maximum error (truncation, or round-off, or both) E in absolute value at each step in the Kutta fourth-order numerical integration procedure has total error at the ith step, i arbitrary, in the region D</italic><supscrpt>*</supscrpt> <italic>of</italic> | ε<subscrpt><italic>i</italic></subscrpt> | ≦ 2<italic>E</italic>/<italic>hM</italic><subscrpt>1</subscrpt>, <italic>where the step size h is to be taken to be</italic> <italic>h</italic> < min (4<italic>M</italic><subscrpt>1</subscrpt><supscrpt>3</supscrpt>/<italic>M</italic><subscrpt>2</subscrpt><supscrpt>4</supscrpt> , <italic>M</italic><subscrpt>1</subscrpt>/<italic>M</italic><subscrpt>2</subscrpt><supscrpt>2</supscrpt> - 2 <italic>dsM</italic><subscrpt>2</subscrpt><supscrpt>2</supscrpt> - 2 <italic>dsmM</italic><subscrpt>1</subscrpt><italic>M</italic><subscrpt>2</subscrpt>) PROOF. Let <italic>y<subscrpt>i</italic>+1</subscrpt> be the value of the solution obtained at step <italic>i</italic> + 1. If there is no error at step <italic>i</italic>, let <italic>y<subscrpt>i</italic>+1</subscrpt><supscrpt>*</supscrpt> be the value of the solution obtained assuming an error of ε<subscrpt><italic>i</italic></subscrpt> introduced at the <italic>i</italic>th step. Then the propagated error at the (<italic>i</italic> + 1)- st step is &eegr;<subscrpt><italic>i</italic>+1</subscrpt> = <italic>y<subscrpt>i</italic>+1</subscrpt><supscrpt>*</supscrpt> - <italic>y<subscrpt>i</italic>+1</subscrpt>. The proof of theorem 1 as given in [1] is based on the inequality | &eegr; <subscrpt><italic>i</italic>+1</subscrpt> | ≦ | ε<subscrpt><italic>i</italic></subscrpt> || 1 - <italic>hM</italic><subscrpt>1</subscrpt>/2 |. We shall show that this inequality can be obtained under the hypotheses of theorem 2. In the determination of the parameters <italic>a, b, c, d, m, v, p, r, s, t</italic> for the Runge-Kutta procedure, certain coefficients of Taylor expansions of <italic>k</italic><subscrpt>1</subscrpt>, <italic>k</italic><subscrpt>2</subscrpt>, <italic>k</italic><subscrpt>3</subscrpt>, <italic>k</italic><subscrpt>4</subscrpt>, and <italic>k</italic> are equated, providing a set of eight equations: <italic>a</italic> + <italic>b</italic> + <italic>c</italic> + <italic>d</italic> = 1 <italic>bm</italic> + <italic>cv</italic> + <italic>dp</italic> = 1/2 <italic>bm</italic><supscrpt>2</supscrpt> + <italic>cv</italic><supscrpt>2</supscrpt> + <italic>dp</italic><supscrpt>2</supscrpt> = 1/3 <italic>bm</italic><supscrpt>3</supscrpt> + <italic>cv</italic><supscrpt>3</supscrpt> + <italic>dp</italic><supscrpt>3</supscrpt> = 1/4 <italic>crm</italic> + <italic>d</italic>(<italic>sm</italic> + <italic>tv</italic>) = 1/6 <italic>crm</italic><supscrpt>2</supscrpt> + <italic>d</italic>(<italic>sm</italic><supscrpt>2</supscrpt> + <italic>tv</italic><supscrpt>2</supscrpt>) = 1/12 <italic>crmv</italic> + <italic>dp</italic> (<italic>sm</italic> + <italic>tv</italic>) = 1/8 <italic>drtm</italic> = 1/24 Assuming, then, that we have a Runge-Kutta procedure obtained this way, we may use the equations (3) when necessary. If there is an error ε<subscrpt><italic>i</italic></subscrpt> at the <italic>i</italic>th step, the value of <italic>k</italic><subscrpt>1</subscrpt> (at the (<italic>i</italic> + 1)-st step) will be (by a simple application of the Mean Value Theorem): <italic>k</italic><subscrpt>1</subscrpt><supscrpt>*</supscrpt> = <italic>h</italic>ƒ(<italic>x<subscrpt>i</subscrpt></italic>, <italic>y<subscrpt>i</subscrpt></italic> + ε<subscrpt><italic>i</italic></subscrpt>) = <italic>h</italic>ƒ(<italic>x<subscrpt>i</subscrpt></italic>, <italic>y<subscrpt>i</subscrpt></italic>) + <italic>h</italic> ∂ƒ/∂<italic>y</italic> ε<subscrpt><italic>i</italic></subscrpt> = <italic>k</italic><subscrpt>1</subscrpt> + <italic>h</italic>ƒ<subscrpt><italic>y</italic></subscrpt>ε<subscrpt><italic>i</italic></subscrpt>, where the partial derivative ƒ<subscrpt><italic>y</italic></subscrpt> = ∂ƒ∂<italic>y</italic> is evaluated in a suitable rectangle. Similarly, (remembering that each occurrence of ƒ<subscrpt><italic>y</italic></subscrpt> is to be evaluated at a possibly different point): <italic>k</italic><subscrpt>2</subscrpt><supscrpt>*</supscrpt> = <italic>k</italic><subscrpt>2</subscrpt> + <italic>h</italic>ƒ<subscrpt><italic>y</italic></subscrpt>ε<subscrpt><italic>i</italic></subscrpt>[1 + <italic>mh</italic>ƒ<subscrpt><italic>y</italic></subscrpt>] <italic>k</italic><subscrpt>3</subscrpt><supscrpt>*</supscrpt> = <italic>k</italic><subscrpt>3</subscrpt> + <italic>h</italic>ƒ<subscrpt><italic>y</italic></subscrpt>ε<subscrpt><italic>i</italic></subscrpt>[1 + (<italic>v</italic> - <italic>r</italic>)<italic>h</italic>ƒ<subscrpt><italic>y</italic></subscrpt> + <italic>rh</italic>ƒ<subscrpt><italic>y</italic></subscrpt>[1 + <italic>hm</italic>ƒ<subscrpt><italic>y</italic></subscrpt>]] <italic>k</italic><subscrpt>4</subscrpt><supscrpt>*</supscrpt> = <italic>k</italic><subscrpt>4</subscrpt> + <italic>h</italic>ƒ<subscrpt><italic>y</italic></subscrpt>ε<subscrpt><italic>i</italic></subscrpt>[1 + (<italic>p</italic> - <italic>s</italic> - <italic>t</italic>)<italic>h</italic>ƒ<subscrpt><italic>y</italic></subscrpt> + <italic>sh</italic>ƒ<subscrpt><italic>y</italic></subscrpt>[1 + <italic>hm</italic>ƒ<subscrpt><italic>y</italic></subscrpt>] + <italic>th</italic>ƒ<subscrpt><italic>y</italic></subscrpt>[1 + (<italic>v</italic> - <italic>r</italic>)<italic>h</italic>ƒ<subscrpt><italic>y</italic></subscrpt> + <italic>rh</italic>ƒ<subscrpt><italic>y</italic></subscrpt>[1 + <italic>hm</italic>ƒ<subscrpt> <italic>k</italic><subscrpt>4</subscrpt><supscrpt>*</supscrpt> = <italic>k</italic><subscrpt>4</subscrpt> + <italic>h</italic>ƒ<subscrpt><italic>y</italic></subscrpt>ε<subscrpt><italic>i</italic></subscrpt>[1 + (<italic>p</italic> - <italic>s</italic> - <italic>t</italic>)<italic>h</italic>ƒ<subscrpt><italic>y</italic></subscrpt> + <italic>sh</italic>ƒ<subscrpt><italic>y</italic></subscrpt>[1 + <italic>hm</italic>ƒ<subscrpt><italic>y</italic></subscrpt>] + <italic>th</italic>ƒ<subscrpt><italic>y</italic></subscrpt>[1 + (<italic>v</italic> - <italic>r</italic>)<italic>h</italic>ƒ<subscrpt><italic>y</italic></subscrpt> + <italic>rh</italic>ƒ<subscrpt><italic>y</italic></subscrpt>[1 + <italic>hm</italic>ƒ<subscrpt><italic>y</italic></subscrpt>]]] so that <italic>y</italic><subscrpt>1+1</subscrpt> = <italic>y<subscrpt>i</subscrpt></italic> + ε<subscrpt><italic>i</italic></subscrpt> + <italic>ak</italic><subscrpt>1</subscrpt><supscrpt>*</supscrpt> + <italic>bk</italic><subscrpt>2</subscrpt><su


Communications of The ACM | 1962

Compiling matrix operations

Bernard A. Galler; Alan J. Perlis

It is unfortunate that almost all of the presently used algebraic languages do not provide the capability of linear algebra. Operations such as the inner product of vectors, the product of two matrices, and the multiplication of a matrix by a scaler must inevitably be written out in detail in terms of the individual components. The reasons usually given for avoiding linear algebra in these languages are (1) the difficulties which would arise in scanning linear algebraic expressions, and (2) the uncertainty involved as to the amount of temporary storage needed during the evaluation of linear algebraic expressions when the program is executed. The purpose of this paper is to show how these two types of difficulties can be overcome. Although suggestions have been made for even further increasing the general capability of ALGOL such as including the ability to form a matrix from a collection of vectors, we shall be content here to consider the ordinary operations of linear algebra. Even if this much becomes available in algebraic languages, considerable progress will have been made. The following remarks constitute a suggestion for the addition to ALGOL of linear algebraic expressions.

Collaboration


Dive into the Bernard A. Galler's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Alan J. Perlis

Carnegie Institution for Science

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Kan Chen

University of Michigan

View shared research outputs
Top Co-Authors

Avatar

Aaron Finerman

California Institute of Technology

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Henry S. Tropp

Humboldt State University

View shared research outputs
Researchain Logo
Decentralizing Knowledge