proc SCHEMATIC_ich_w_noise {} {
make input -name in -origin {120 -600}
make output -name out -origin {540 -600}
make add2 -orient RY -name xi2 -origin {480 -600}
make ch_pump -name xi0 -ival i_val -origin {340 -600}
make mult_noise -name xi1 -var i_variance -origin {340 -720}
  make_wire 420 -600 450 -600
  make_wire 510 -600 540 -600
  make_wire 120 -600 210 -600
  make_wire 210 -720 300 -720
  make_wire 210 -600 270 -600
  make_wire 380 -720 480 -720
  make_wire 480 -720 480 -630
  make_wire 210 -720 210 -600
  make_text -origin {70 -650} -text {input is assumed to
alternate between
0 and 1}
}

proc ICON_ich_w_noise args {


  icon_setup $args {{origin {0 0}} {orient R0} {name x} {i_val {}} {i_variance {}}}
icon_term -type input -origin {-60 0} -name in
icon_term -type output -origin {50 0} -name out
  icon_property -origin {-60 110} -type user -name name -default x
  icon_line -60 -30 -60 40 50 40 50 -30 -60 -30
icon_property -origin {-50 0} -label in
icon_property -origin {40 0} -anchor e -label out
icon_property -origin {0 30} -anchor center -label ich_w_noise
  icon_property -origin {-60 130} -type user -name i_val
icon_property -origin {-60 50} -label {i_val=$i_val}
icon_property -origin {-60 -40} -label {$name}
icon_property -origin {-60 70} -label {i_variance=$i_variance}
  icon_property -origin {-60 150} -type user -name i_variance


}

