divz
Prev | Orchestra Opcodes and Operators | Next

## divz

divz — Safely divides two numbers.

## Syntax

    ares divz xa, xb, ksubst

    ires divz ia, ib, isubst

    kres divz ka, kb, ksubst

    ...divz(ka, kb, ksubst)... (no rate restriction)

## Description

Safely divides two numbers.

## Initialization

Whenever b is not zero, set the result to the value a / b; when b is zero, set it to the value of subst instead.

## Examples

Here is an example of the divz opcode. It uses the file divz.csd.

Example 243. Example of the divz opcode.

See the sections Real-time Audio and Command Line Flags for more information on using command line flags.

    <CsoundSynthesizer>
    <CsOptions>
    ; Select audio/midi flags here according to platform
    ; Audio out   Audio in
    -n   ; no sound
    ; For Non-realtime ouput leave only the line below:
    ; -o divz.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

    sr = 44100
    ksmps = 32
    nchnls = 2
    0dbfs  = 1

    instr 1

    ka init 200                                         ; Define the numbers to be divided.
    kb line 0, p3, 200                                  ; Linearly change the value of kb from 200 to 0.
    ksubst init -1                                      ; If a "divide by zero" error occurs, substitute -1.
    kresults divz ka, kb, ksubst                        ; Safely divide the numbers.
    printks "%f / %f = %f\\n", 0.1, ka, kb, kresults    ; Print out the results.

    endin

    </CsInstruments>
    <CsScore>
    i 1 0 .3
    e
    </CsScore>
    </CsoundSynthesizer>

Its output should include lines like:

    200.000000 / 0.000000 = -1.000000
    200.000000 / 66.757370 = 2.995924
    200.000000 / 133.514739 = 1.497962

## See Also

=, init, tival

## Credits

Author: John ffitch after an idea by Barry L. Vercoe

Example written by Kevin Conder.

Functional form available in csound Version 6.00

Prev | Up | Next
distort1 | Home | doppler