.PS cct_init # Usual defs... qrt=dimen_/4; hlf=dimen_/2; dim=dimen_; Op1:opamp(,,,,P) line from Op1.In1 left_ qrt resistor(left_); rlabel(,100k,) Rjoin:dot; line left_ qrt; dot; "$V_i$ " ljust_ line from Op1.In2 left_ qrt then down_ qrt; ground; move from Op1.In1 left_ qrt; dot; line up_ 0.6*dim; right_ Mid:dot I1:line invis to (Op1.Out,Here) move to I1.center then left_ hlf D1:diode(right_); llabel(,D_1,) line from D1.end to I1.end; line to Op1.Out line from I1.start to D1.start dot(at Op1.Out) D2:diode(right_); llabel(,D_2,); dot Vout:Here line from Mid up_ 0.6*dim I2:line invis to (D2.end,Here) move to I2.center then left_ hlf R1:resistor(right_); llabel(,100k,); line from I2.start to R1.start line from R1.end to I2.end then to D2.end; dot resistor(from Vout right_); llabel(,50k,) Joint:dot line right_ qrt;dot Joint2:Here line right_ qrt Op2:opamp(right_,,,,P) with .In1 at Here line from Joint2 up_ 0.6*dim then right_ qrt resistor(right_); llabel(,100k,); line right_ qrt line to (Here,Op2.Out); dot line from Op2.Out right_ hlf; dot; " $V_\mathrm{out}$" ljust_ line from Op2.In2 left_ qrt then down_ qrt; ground line from Joint down_ 1.5*dim I1:line invis to (Rjoin,Here) move to I1.center then left_ hlf R:resistor(right_); llabel(,100k,) line from R.start to I1.end line from R.end to I1.start line from I1.end to Rjoin "\tiny PrecisionFull" at Op2.center-(0,dim) ljust_ .PE