Patch title: Release 93 bulk changes
Abstract:
File: /math/curven.pli
Key:
    Removed line
    Added line
   
module "/pliant/language/unsafe.pli"
module "/pliant/math/functions.pli"


method c in i d -> f
  arg Curven c ; arg Int i d ; arg Float f
  var Int index := (i\c:factors:d)%c:grid:d:size
module "/pliant/language/unsafe.pli"
module "/pliant/math/functions.pli"


method c in i d -> f
  arg Curven c ; arg Int i d ; arg Float f
  var Int index := (i\c:factors:d)%c:grid:d:size
  check index<>0 and index=c:grid:d:size-1
  check index>0 and index<c:grid:d:size-1
  var Float slope := ((c:points i+c:factors:d)-(c:points i-c
  f := ((c:grid:d index-1)-(c:grid:d index))*slope

method c out i d -> f
  arg Curven c ; arg Int i d ; arg Float f
  var Int index := (i\c:factors:d)%c:grid:d:size
  var Float slope := ((c:points i+c:factors:d)-(c:points i-c
  f := ((c:grid:d index-1)-(c:grid:d index))*slope

method c out i d -> f
  arg Curven c ; arg Int i d ; arg Float f
  var Int index := (i\c:factors:d)%c:grid:d:size
  check index<>0 and index=c:grid:d:size-1
  check index>0 and index<c:grid:d:size-1
  var Float slope := ((c:points i+c:factors:d)-(c:points i-c
  f := ((c:grid:d index+1)-(c:grid:d index))*slope


if false
  function test
    var (Array Array:Float) grid
    grid size := 1
    grid:0 size := 5
    for (var Int i) 0 grid:0:size-1
      grid:0 i := i/(grid:0:size-1)*pi/2
    var Curven c
    c resize 2 1 grid
    var Array:Float params
    params size := 1
    var Array:Float point
    point size := 2
    for (var Int i) 0 grid:0:size-1
      params 0 := grid:0:i
      point 0 := sin grid:0:i
      point 1 := cos grid:0:i
      c define params point
    var Float m := 0
    for (var Int i) 0 100
      params 0 := i/100*pi/2
      point := c apply params
      var Float d0 := abs point:0-(sin params:0)
      var Float d1 := abs point:1-(cos params:0)
      console i " -> " d0 " " d1 " (" point:0 " " point:1 ")
      m := max m (max d0 d1)
    console "maximum delta is " m eol
  test
  var Float slope := ((c:points i+c:factors:d)-(c:points i-c
  f := ((c:grid:d index+1)-(c:grid:d index))*slope


if false
  function test
    var (Array Array:Float) grid
    grid size := 1
    grid:0 size := 5
    for (var Int i) 0 grid:0:size-1
      grid:0 i := i/(grid:0:size-1)*pi/2
    var Curven c
    c resize 2 1 grid
    var Array:Float params
    params size := 1
    var Array:Float point
    point size := 2
    for (var Int i) 0 grid:0:size-1
      params 0 := grid:0:i
      point 0 := sin grid:0:i
      point 1 := cos grid:0:i
      c define params point
    var Float m := 0
    for (var Int i) 0 100
      params 0 := i/100*pi/2
      point := c apply params
      var Float d0 := abs point:0-(sin params:0)
      var Float d1 := abs point:1-(cos params:0)
      console i " -> " d0 " " d1 " (" point:0 " " point:1 ")
      m := max m (max d0 d1)
    console "maximum delta is " m eol
  test