Patch title: Release 90 bulk changes
Abstract:
File: /graphic/image/sharpening.pli
Key:
    Removed line
    Added line
   
module "/pliant/language/compiler.pli"
submodule "prototype.pli"
module "/pliant/language/compiler/type/inherit.pli"
module "/pliant/graphic/color/gamut.pli"
module "/pliant/graphic/misc/int.pli"


method s read x y count adr
  oarg_rw ImageSharpening s ; arg Int x y count ; arg Addres
module "/pliant/language/compiler.pli"
submodule "prototype.pli"
module "/pliant/language/compiler/type/inherit.pli"
module "/pliant/graphic/color/gamut.pli"
module "/pliant/graphic/misc/int.pli"


method s read x y count adr
  oarg_rw ImageSharpening s ; arg Int x y count ; arg Addres
  var Int dim := s:gamut dimension
  var Int psize := s pixel_size
  if y=s:y
    void
  eif y=s:y+1
    memory_move (s:buffer translate Byte s:line_size+2*s:pix
    s read_line y+1 (s:buffer translate Byte 2*(s:line_size+
  else
    for (var Int i) 0 2
      s read_line y+i-1 (s:buffer translate Byte i*(s:line_s
  s y := y
  var Address src := s:buffer translate Byte s:line_size+(3+
  var Int step_x := s:pixel_size
  var Int step_y := s:line_size+2*s:pixel_size
  var Address stop := src translate uInt8 count*s:gamut:pixe
  var Address dest := adr
  var Pointer:Float32 remain :> s:remain x*s:gamut:pixel_siz
  if y=s:y
    void
  eif y=s:y+1
    memory_move (s:buffer translate Byte s:line_size+2*s:pix
    s read_line y+1 (s:buffer translate Byte 2*(s:line_size+
  else
    for (var Int i) 0 2
      s read_line y+i-1 (s:buffer translate Byte i*(s:line_s
  s y := y
  var Address src := s:buffer translate Byte s:line_size+(3+
  var Int step_x := s:pixel_size
  var Int step_y := s:line_size+2*s:pixel_size
  var Address stop := src translate uInt8 count*s:gamut:pixe
  var Address dest := adr
  var Pointer:Float32 remain :> s:remain x*s:gamut:pixel_siz
  var Int remain_step := s:gamut:pixel_size*Float32:size
  var uInt bits := s random_bits ; var Int available := s ra
  var Float intensity := s intensity
  while src<>stop
  var uInt bits := s random_bits ; var Int available := s ra
  var Float intensity := s intensity
  while src<>stop
    var Int v ; var Float f
    v := -2*(src map uInt8 -step_x-step_y) + -3*(src map uIn
    v += -3*(src map uInt8 -step_x) + 20*(src map uInt8 0) +
    v += -2*(src map uInt8 -step_x+step_y) + -3*(src map uIn
    f := (src map uInt8)+v*intensity
    v := bound (cast remain+f Int) 0 255
    dest map uInt8 := v
    f -= v
    if available=0
      memory_random addressof:bits uInt:size
      available := uInt:size*8
    if (bits .and. 1)<>0 # send to the right
      remain := 0
      (addressof:remain translate Byte remain_step) map Floa
    else # send to the bottom
      remain := f
    bits := bits\2 ; available -= 1
    src := src translate uInt8 1
    dest := dest translate uInt8 1
    remain :> (addressof:remain translate Float32 1) map Flo
    for (var Int i) 0 dim-1
      var Int v ; var Float f
      v := -2*(src map uInt8 -step_x-step_y) + -3*(src map uInt8 -step_y) + -2*(src map uInt8 step_x-step_y)
      v += -3*(src map uInt8 -step_x) + 20*(src map uInt8 0) + -3*(src map uInt8 step_x)
      v += -2*(src map uInt8 -step_x+step_y) + -3*(src map uInt8 step_y) + -2*(src map uInt8 step_x+step_y)
      f := remain+(src map uInt8)+v*intensity
      v := bound (cast f Int) 0 255
      dest map uInt8 := v
      f -= v
      if f<(-1)
        f := -1
      if f>1
        f := 1
      if available=0
        memory_random addressof:bits uInt:size
        available := uInt:size*8
      if (bits .and. 1)<>0 # send to the right
        remain := 0
        addressof:remain map Float32 psize += f
      else # send to the bottom
        remain := f
      bits := bits\2 ; available -= 1
      src := src translate uInt8 1
      dest := dest translate uInt8 1
      remain :> addressof:remain map Float32 1
    if psize>dim
      memory_copy src dest psize-dim
      src := src translate uInt8 psize-dim
      dest := dest translate uInt8 psize-dim
      remain :> addressof:remain map Float32 psize-dim
  s random_bits := bits
  s random_available := available



  s random_bits := bits
  s random_available := available