%%HP: T(3)A(R)F(.);
\<<
     IF 'a(r-1,1)==0'                    
               THEN
                   IF 'r-1 > coef'       
                           THEN 1 SF          
                            ELSE 0 'cnt' STO        
                            1 cols                  
                            FOR c
                                'a(r-1,c)' EVAL     
                                0 \=/              
                                'cnt' STO+      
                            NEXT
                            IF 'cnt==0'            
                                  THEN
                                     coef r 2 -  - 
                                     'pwr' STO     
                                     1 cols        
                                     FOR c
                                         'a(r-2,c)'
                                         EVAL    
                                         "*S^"
                                         +         
                                         pwr       
                                         +          
                                         "'"
                                         SWAP
                                         +        
                                         OBJ\->    
                                         1 'S' STO
                                         'S'        
                                         \.d        
                                         EVAL      
                                         a SWAP     
                                         r 1 - c 2 \->LIST 
                                         SWAP
                                         PUT        
                                         'a' STO    
                                         pwr 2 -    
                                         'pwr' STO  
                                         IF pwr 0 < 
                                            THEN cols 1 +
                                                 'c' STO
                                         END
                                     NEXT
                                     'S' PURGE      
                                ELSE 0 'cnt' STO    
                                     1 coef         
                                     FOR c
                                          'a(c,1)'   
                                          EVAL       
                                          0 <       
                                          'cnt' STO+ 
                                     NEXT
                                     coef 2 /     
                                     IP            
                                     'hc' STO        
                                     IF 'cnt > hc'   
                                                     
                                       THEN  a       
                                             r 1 - 1 2
                                             \->LIST    
                                             -1.E-50    
                                             PUT        
                                             'a' STO    
                                       ELSE  a          
                                             r 1 - 1 2  
                                             \->LIST
                                             1.E-50   
                                             PUT      
                                             'a' STO  
                                     END

                            END
                   END

     END
   \>>
