The HP 34C is a scientific programmable calculator. HP 34c has a full complement of scientific and math functions, it was the first to offer root finding and numerical integration.

### HP 34c Solve (Root Finding)

The Solve function could find real roots for any equation which could be expressed in the form f(x) = 0. To use the Solve function, the user keyed in a subroutine to evaluate f(x) which left the value in the X register. The user then entered two initial guesses to give the calculator a starting range and then pressed Solve and the label of the subroutine. The HP 34c calculator would then evaluate f(x) until it found the first root. Additional roots could be found by entering different initial guesses. The calculator would display an error if there were no roots. Before calling the subroutine, Solve would fill the entire stack with the value of X. Because pops copied the top of the stack down, this allowed X, to be retrieved from the stack as many times as the subroutine required.

### HP 34c Numerical Integration

Numerical integration was also found on the HP 34c. As with the Solve function, the user keyed in a subroutine to evaluate f(x) which left the value in the X register. The user entered the lower and then upper limit of integration and then pressed the integrate key followed by the subroutine label.

### HP 34c Other Functions

The factorial function (x!) had appeared on many previous HP calculators, but on the HP 34c, for the first time, the factorial key really calculated Gamma(x+1). For positive integers, this was the same as a factorial, but the Gamma of any number could also be calculated by subtracting 1 and pressing x!. The HP-34C also included a full complement of scientific and mathematical functions.

### HP 34c Programming

The HP 34c had 70 lines of permanent program space. As programs grew larger than 70 lines, registers were converted into additional program space starting at R.9 and ending at R0. There were 20 registers (not including the I register) and each register converted into 7 lines of program space. Thus with all registers (except I) converted to program space, there were 210 program line.