[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

short-circuit logical operators for Octave

From: John Eaton
Subject: short-circuit logical operators for Octave
Date: Fri, 20 May 1994 01:09:37 -0500

[This was also posted to comp.soft-sys.matlab, but I'm also posting
here since some people on this list may not read that newsgroup. --jwe]

Based on the discussion of the past few days in comp.soft-sys.matlab,
I've implemented short-circuit logical operators for Octave.  An
experimental patch is available via anonymous ftp from in the file /pub/octave/short-circuit-diffs.  It
seems to work, but I have not done extensive testing.

The changes alter the behavior of Octave's logical `&&' and `||'
operators so that they are no longer simply different forms of the
logical `&' and `|' operators.  Instead, they have the following

  * The value of the expressions formed with these operators is either
    1 (true) or 0 (false).

  * The operands can be matrices, but an implicit all(all()) is
    applied to each operand before it is used.

  * Evaluation is performed in a short-circuit fashion.

      a || b  returns true if either a or b is determined to be true,
              but only evaluates b if a is determined to be false.

      a && b  returns true if both a and b are determined to be true,
              but only evaluates b if a is determined to be true. 

  * `&&' and `||' have the same precedence, now just below that
    of `&' and `|'.

The behavior of the logical `&' and `|' operators is not changed.

These changes will probably break some of Octave's functions as they
are currently implemented because they use only the `&&' and `||'
forms, but some of the functions may actually need to use the `&' and
`|' operators.  These problems will be fixed if this change is
adopted, but no patches are currently available.  If you would like to
volunteer to help, please contact address@hidden

If you have other comments, suggestions, or bug reports, please send
them to address@hidden as well.


Virtually all of the programs obtained by our sampling | John W. Eaton
procedure were written in FORTRAN.  -- Donald E. Knuth | address@hidden

reply via email to

[Prev in Thread] Current Thread [Next in Thread]