%%HP: T(3)A(R)F(.);

\<<
\-> fs ll rl a    
  \<<             
      0
      'tstk'
      STO         
      0
      'pt'
      STO
      DO
         ll
         rl
         -
         2
         /
         'hs'   
         STO

         hs
         rl
         +
         'tp'
         STO    
         hs
         2
         /
         tp
         +
         'tp1'
         STO    
         tp1
         'S'
         STO
         'fs' EVAL
         ABS
         MINV
         'tp1k'
         STO    
         hs
         2
         /
         rl
         +
         'tp2'
         STO    
         tp2
         'S'
         STO
         'fs'  EVAL
         ABS
         MINV
         'tp2k'
         STO    
         IF 'tp1k > tp2k' 
             THEN  tp
                   'rl'
                   STO    
                   tstk
                   'oldk' 
                   STO
                   tp1k   
                   'tstk'
                   STO    
                   pt
                   'opt'  
                   STO
                   tp1    
                   'pt'   
                   STO
             ELSE  tp 
                   'll'
                   STO
                   tstk
                   'oldk'   
                   STO
                   tp2k
                   'tstk'
                   STO      
                   pt
                   'opt'    
                   STO
                   tp2      
                   'pt'
                   STO
         END
      tstk        
      oldk
      -
      'dif'       
      STO
      UNTIL  dif 0 <  dif a \<= OR     
      END                              
IF 'dif < 0 '                      
    THEN opt                       
         'loc'                     
         STO
         oldk
         'val'
         STO
    ELSE pt                        
         'loc'                      
         STO
         tstk
         'val'
         STO
END

CLLCD
"Breakaway Point = "
1 DISP
loc \->STR
2 DISP
"K at Breakaway Point"
4 DISP
val \->STR
5 DISP
7 FREEZE

{val loc dif opt pt oldk tp2k tp2 tp1k tp1 tp hs tstk S}
PURGE
CLEAR                              
fs                                 
\>>                                
\>>                                
