.\" Manual page for the RPL/2 language .\" 04.19.2006 .TH RPL/2 1 "@DATE@" JKB-Labs "RPL/2 user manual" .SH NAME Reverse Polish Lisp/2 release @VERSION@, .br half-compiled high-level language using shared libaries and mainly aiming at scientific calculations and complex algorithms .SH SYNOPSIS .B rpl [\-acdDhilnpPsv] [\-A data] [\-S script] [\-t level] [program] .SH DESCRIPTION The .B rpl sequencer allows either the execution of a RPL/2 program or the opening of an interactive session to enter commands directly .SH OPTIONS .TP .B -a analyzes program and sends preprocessor output to standard output .br .TP .B -A sends parameters to main program .br .TP .B -c allows creation of a .I rpl-core file, providing a way to debug a program .br .TP .B -d debugs memory allocations inside RPL/2. Do not use if you do not know what you do! .br .TP .B -D launches RPL/2 in daemon mode .br .TP .B -h shows a summary of available options .br .TP .B -i runs the RPL/2 sequencer in interactive mode. This option can't be used with a program name as argument .br .TP .B -l prints the user licence of the software .br .TP .B -n ignores HUP signal .br .TP .B -p precompiles scripts before execution .br .TP .B -P or -PP computes profile data .br .TP .B -s disables splash screen .br .TP .B -S executes script on command line .br .TP .B -t enables tracing mode. Each internal operation is echoed on standard output .br .TP .B -v prints the version number .br .RE .SH "EXIT STATUS" The sequencer returns a value of 0 if no error occurs when running a program, else it returns a nonzero value. .SH "PREREQUISITES AND VARIOUS ADVICES" RPL_TMP_PATH env variable is used to specify the location of tempfiles. If this variable is not set, RPL/2 tries to use /tmp, /var/tmp or ./. It is also recommended to use \fIgnuplot\fR, \fITeX/LaTeX\fR, \fIdvips\fR and \fIgv\fR in association with RPL/2, to get advanced graphical capabilities .SH "RELATED STANDARDS" The RPL/2 sequencer is compliant with the HP-28S calculator user manual, and with the HP-28S itself, in its 2BB version (C) HP 1986-1987. Some operations dealing with complex numbers are not following the definitions from HP, because they are bogus. The main such operations are transposition and scalar product. .SH "DELIMITERS" .br .TP .B "none" scalar, integer or real number, coded with at least 64 bits; .br .TP .B "( )" complex number, coded with at least 128 bits; .br .TP .B "#" binary integer, 64 bits of length; .TP .B "<< >>" user-defined function, or equation (expressed in RPN); .br .TP .B "' '" algebraic equation or variable name; .br .TP .B "[ ]" scalar vector; .br .TP .B "[[ ]]" scalar matrix; .br .TP .B "<[ ]>" table; .br .TP .B """ """ character string; .br .TP .B "{ }" list containing various objects. A list might contain other lists; .TP .br .B "/* */" comment; .br .TP .B "//" comment running to the end of a line; .br .SH "INSTRUCTIONS" We list in this section the build-in instructions of the language. Some might be written in several ways; the alternatives ways are listed between parenthesis. Definitions between parenthesis in a structure are optional. Instructions written in upper case are not case-sensitive. .br .TP .B "CONTROL STRUCTURES" IF/THEN/(ELSEIF/THEN)/(ELSE)/END, IFT, IFTE, SELECT/CASE/THEN/END/(DEFAULT)/END .br .TP .B "ERROR HANDLING" CLRERR, ERRM, ERRN, IFERR/THEN/(ELSE)/END .br .TP .B "LOOPS PROVIDING A COUNT" FOR/(CYCLE)/(EXIT)/NEXT, FOR/(CYCLE)/(EXIT)/STEP, FORALL/(CYCLE)/(EXIT)/NEXT .br .TP .B "LOOPS WITHOUT COUNT" START/(CYCLE)/(EXIT)/NEXT, START/(CYCLE)/(EXIT)/STEP .br .TP .B "UNDEFINED LOOPS" DO/(EXIT)/UNTIL/(EXIT)/END, WHILE/(EXIT)/REPEAT/(EXIT)/END .br .TP .B "INPUT/OUTPUT" BEEP, CLMF, DISP, INPUT, KEY, PROMPT .br .TP .B "DEBUGGING" CONT, HALT, SST .br .TP .B "STACK HANDLING" CLEAR, COPY, DEPTH, DROP, DROP2, DROPN, DUP, DUP2, DUPN, EDIT, OVER, PICK, ROLL, ROLLD, ROT, SWAP .br .TP .B "WORKING WITH VARIABLES" ->, CLUSR, PARAMETER, PRIVATE, PROTECT, PURGE, RCEQ, RCL, RECALL, SAVE, SCONJ, SHARED, SINV, SNEG, STATIC, STEQ, STO, STO+, STO-, STO*, STO/, STORE, UNPROTECT, VARIABLE, VARS, VISIT, VOLATILE .br .TP .B "ARITHMETICAL OPERATIONS AND ELEMENTARY CALCULUS" +, -, *, /, ^ (**), =, %, %CH, %T, ABS, ARG, C->R, CEIL, CONJ, DECR, DER, DFT, EVAL, EXP, EXPM, FACT, FFT, FLOOR, FP, IDFT, IFFT, IM, INCR, INT, INV, IP, MANT, MAX, MCLRIN, MIN, MOD, NEG, ->NUM, P->R, ->Q, R->C, R->P, RE, RELAX, SIGN, SQ, SQRT, TAYLR, XPON, XROOT .br .TP .B "CONSTANTS" e, FALSE, i, infinity, PI, TRUE .br .TP .B "FORMATTING" ENG, FIX, RND, SCI, STD, TRNC .br .TP .B "LOGICAL AND BINARY OPERATIONS" <, <= (=<), <>, >, >= (=>), ==, AND, ASL, ASR, B->R, BIN, CF, DEC, EQV, FC?, FC?C, FC?S, FS?, FS?C, FS?S, HEX, IN, NOT, OCT, OR, R->B, RCLF, RCWS, RL, RLB, RR, RRB, SAME, SF, SL, SLB, SR, SRB, STOF, STWS, XOR .br .TP .B "TRIGONOMETRY" ACOS, ASIN, ATAN, COS, D->R, DEG, ->HMS, HMS->, HMS-, HMS+, R->D, RAD, SIN, TAN .br .TP .B "LOGARITHMS" ACOSH, ALOG, ASINH, ATANH, COSH, LN, LNP1, LOG, SINH, TANH .br .TP .B "SPECIAL FUNCTIONS" BESSEL, GAMMA .br .TP .B "STATISTICS" CLS, COLS, COMB, CORR, COV, DRWS, MAXS, MEAN, MINS, NRAND, NS, PCOV, PERM, PSDEV, PVAR, RAND, RCLS, RDGN, RDZ, S-, S+, SCLS, SDEV, SPAR, STOS, SX, SX2, SXY, SY, SY2, TOT, UTPC, UTPF, UTPN, UTPT, VAR, XCOL, YCOL .br .TP .B "DEALING WITH MATRIX AND VECTOR" ->ARRAY (->ARRY), ARRAY-> (ARRY->), CNRM, COL+, COL-, COL->, ->COL, CON, COND, CROSS, CSWP, DET, DOT, DIAG->, ->DIAG, EGV, EGVL, GEGV, GEGVL, GET, GETC, GETI, GETR, GLEGV, GREGV, IDN, LCHOL, LEGV, LQ, LSQ, LU, MAX, MIN, PUT, PUTC, PUTI, PUTR, QR, RANK, RCI, RCIJ, RDM, REGV, RNRM, ROW+, ROW-, ROW->, ->ROW, RSD, RSWP, SCHUR, SIZE, SQ, SVD, SVL, TRN, UCHOL .br .TP .B "DEALING WITH TABLES" CRTAB, GET, L->T, PUT, RECORD, T->L, ->TABLE, TABLE-> .br .TP .B "LISTS" GET, GETI, HEAD, L->T, ->LIST, LIST->, POS, PUT, PUTI, REPL, REVLIST, SIZE, SORT, SUB, T->L, TAIL .br .TP .B "STRINGS" CHR, CURRENC, LCASE, NUM, POS, RECODE, REGEX, REPL, RGDL, RGDR, SIZE, SREV, ->STR, STR->, SUB, TOKENIZE, TRIM, UCASE .br .TP .B "EXPRESSIONS HANDLING" OBGET, OBSUB, EXGET, EXSUB .br .TP .B "FILE AND SOCKET HANDLING" APPEND, BACKSPACE, CLOSE, CREATE, DELETE, FORMAT, INQUIRE, LOCK, OPEN, POLL, READ, REWIND, SYNC, TARGET, UNLOCK, WFLOCK, WFSOCK, WRITE .br .TP .B "GRAPHICAL OUTPUT AND PRINTING" *D, *H, *S, *W, AUTOSCALE, AXES, CENTR, CLLCD, CR, DEPND, DGTIZ, DRAW, DRAX, ERASE, EYEPT, FUNCTION, HISTOGRAM, INDEP, LABEL, LCD->, ->LCD, LINE, LOGSCALE, MARK, NEWPLANE, PAPER, PARAMETRIC, PERSIST, PLOT, PLOTTER, PMAX, PMIN, POLAR, PPAR, PR1, PRINT, PRLCD, PRMD, PRST, PRSTC, PRUSR, PRVAR, REDRAW, RES, SCATTER, SCALE, SLICE, SLICESCALE, TITLE, WIREFRAME .br .TP .B "LIBRARIES" EXTERNALS, REMOVE, USE .br .TP .B "PROCESS" ATEXIT, ATPOKE, CLRATEXIT, CLRATPOKE, CLRFUSE, CLRMTX, CLRSMPHR, CLRSWI, CONTINUE, CRITICAL/END, CRMTX, CRSMPHR, CSTOP, DAEMONIZE, DETACH, FUSE, ISWI, MTXLOCK, MTXSTATUS, MTXTRYLOCK, MTXUNLOCK, NBRCPUS, NRPROC, PEEK, POKE, PROCID, RCLSWI, RECV, RFUSE, RSTOP, SCHED, SEND, SMPHRDECR, SMPHRGETV, SMPHRINCR, SMPHRTRYDECR, SPAWN, STOP, STOSWI, SUSPEND, SWI, SWILOCK, SWIQUEUE, SWISTATUS, SWIUNLOCK, WFACK, WFDATA, WFPOKE, WFPROC, WFSWI, YIELD .br .TP .B "MISC" <<, >>, ABORT, ALARM, BACKTRACE, CIPHER, CLRCNTXT, COMPRESS, CONVERT, COPYRIGHT, DATE, DIGEST, DROPCNTXT, DUPCNTXT, HELP, IMPLICIT, ITRACE, JDATE, KILL, LAST, LOCALIZATION, LOGGER, MEM, MEMLOCK, MEMUNLOCK, PSHCNTXT, PSHPRFL, PULCNTXT, PULPRFL, RDATE, RESTART, RETURN, SPLASH, SWAPCNTXT, SYSEVAL, TIME, TYPE, UNCOMPRESS, VERIFY, VERSION, WAIT, WARRANTY, WORKDIR .br .TP .B "DATABASES" SQLCONNECT, SQLDISCONNECT, SQLQUERY .br .TP .B "PREPROSSESSING" #date, #define, #defeval, #else, #endif, #error, #eval, #file, #if, #ifdef, #ifeq, #ifndef, #ifneq, #include, #line, #mode, #undef, #warning .br .RE .SH "USEFUL LINKS" .TP .B http://www.rpl2.net official WWW page of RPL/2; .br .TP .B jkb@systella.fr the author's email address; .br .TP .B rpl2@rayleigh.systella.fr RPL/2 mailing-list, useful to ask some advice, report bugs and talk about new features