.PS
# fbfilter.m4
cct_init
#                                   `fbfilter( U|D|L|R|degrees, [R|L],
#                                              amp label, C label, R label )'
define(`fbfilter',
`[
  setdir_(ifelse(`$1',,0,`$1'))     # Process arg 1
  eleminit_                         # Assign rp_ang, rp_len
  tmpang = rp_ang                   # Save rp_ang 
  hunit = elen_                     # Dimension parameters
  vunit = ifinstr(`$2',R,-)dimen_
 Q: opamp(,,,,`$2')
  move to Q.In`'ifinstr(`$2',R,2,1); line to rvec_(-hunit/4,0)
 J: dot
 R: resistor(to rvec_(-elen_,0))    # Two-term elements change rp_ang
  point_(tmpang)                    # so reset it.
 In: Here
  move to Q.In`'ifinstr(`$2',R,1,2); line to rvec_(-hunit/4,0)
 G: Here
  dot(at Q.Out)
  { line to rvec_(hunit/4,0)
 Out: Here } 
  line to rvec_(0,vunit)
 C: capacitor(to rvec_(-distance(Q.Out,0.5 between J and G),0)); point_(tmpang)
  line to J
  ifelse(`$3',,,"$`$3'$" at Q.C)
  ifelse(`$4',,,"$`$4'$" at C+vec_(0,-vunit/3))
  ifelse(`$5',,,"$`$5'$" at R+vec_(0,-vunit/4))
  ]')

F1: fbfilter(,,K_3,C_{24},R_4)
  ground(at F1.G)
  dot(at F1.In); line up_ elen_/4
F2: fbfilter(L,R,K_2,C_{23},R_3) with .In at F1.In
  ground(at F2.G)
  resetdir_

.PE
