Patch title: Release 84 bulk changes
Abstract:
File: /pliant/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
  if y=s:y
    void
  eif y=s:y+1
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
  if y=s:y
    void
  eif y=s:y+1
    memory_move (s:buffer translate Byte s:line_size+2*s:pix
    memory_move (s:buffer translate Byte s:line_size+2*s:pixel_size) s:buffer 2*(s:line_size+2*s:pixel_size)
    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
  while src<>stop
    var Int v
    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
    var Float f := remain+(src map uInt8)+v*s:intensity
    v := bound (cast 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
  s random_bits := bits
  s random_available := available



    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
  while src<>stop
    var Int v
    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
    var Float f := remain+(src map uInt8)+v*s:intensity
    v := bound (cast 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
  s random_bits := bits
  s random_available := available