%%HP: T(3)A(D)F(.);                        @ DELTAT: subtract two points on a
                                           @ temperature scale, and get a 
                                           @ temperature increment.
\<<                                        @ tpt2 tpt1 ->
  \-> tpt2 tpt1                            @ Save arguments (user-defined 
                                           @ function structure allows DELTAT
                                           @ to be used in an algebraic)
  \<<                                      @ ->
    tpt2 tpt1                              @ Restore arguments
                                           @ tpt2 tpt1 ->
    IF                                     @ Check for real arguments
      DUP2                                 @ tpt2 tpt1 tpt2 tpt1 ->
      TYPE                                 @ tpt2 tpt1 tpt2 TYPE(tpt1) ->
      SWAP TYPE                            @ tpt2 tpt1 TYPE(tpt1) TYPE(tpt2) ->
      +                                    @ Sum will be zero if both real ->
                                           @ tpt2 tpt1 0/nonzero ->
    THEN                                   @ Not 0: assume 2 pure temperatures
                                           @ tpt2 tpt1 ->
                                           @ To check for pure temperatures, 
                                           @ call VFTOBJ or VFTERR here
      OVER                                 @ tpt2 tpt1 tpt2 ->
      CONVERT                              @ Convert tpt1 to tpt2 units
                                           @ tpt2 tpt1' ->
      UVAL                                 @ tpt2 N(tpt1') ->
      SWAP                                 @ N(tpt1') tpt2 ->
      OBJ\->                               @ Decompose tpt2
                                           @ N(tpt1') N(tpt2) U(tpt2) ->
      SWAP                                 @ N(tpt1') U(tpt2) N(tpt2) ->
      ROT                                  @ U(tpt2) N(tpt2) N(tpt1') ->
      -                                    @ Compute value for tinc
                                           @ U(tpt2) N(tpt2)-N(tpt1') ->
      SWAP                                 @ N(tpt2)-N(tpt1') U(tpt2) ->
      \->UNIT                              @ Create unit object
                                           @ deltat ->
    ELSE                                   @ 0: 2 reals, so just subtract
                                           @ tpt2 tpt1 ->
      -                                    @ tpt2-tpt1 ->
                                           @ deltat ->
    END                                    
  \>>
\>>
