#ifndef XLSPROTO_H
#define XLSPROTO_H

#include "xlsdef.h"

extern LVAL apply_send(LVAL,LVAL,LVAL),
            argset2(LVAL,LVAL,LVAL),
            array_to_nested_list(LVAL),
            arraydata(LVAL),
            binary(int),
            ccompare(int),
            checkcompound(LVAL),
            checknonnegint(LVAL),
            clanswer(void),
            clisnew(void),
            clnew(void),
            coerce_to_list(LVAL),
            coerce_to_vector(LVAL),
            compounddataseq(LVAL),
            concatenate(LVAL,LVAL),
            copyarray(LVAL),
            copylist(LVAL),
            copyvector(LVAL),
            cvcomplex(Complex),
            defsym(int),
            diagonal(LVAL),
            displacedarraydim(LVAL),
            double_list_2(double,double),
            double_to_matrix(double *,int,int),
            double_to_sequence(double *,int,int),
            elementseq(LVAL),
            facelist(int),
            getnextarg(LVAL *,int),
            getnextelement(LVAL *,int),
            gnulineplot(void),
            gnupointplot(void),
            identitymatrix(int),
            imagpart(LVAL),
            init_root_object(void),
            innerproduct(LVAL,LVAL),
            integer_list_2(int,int),
            integer_list_3(int,int,int),
            integer_list_4(int,int,int,int),
            inverse(LVAL),
            iseq(int,int),
            list2(LVAL,LVAL),
            list3(LVAL,LVAL,LVAL),
            logbinary(int),
            lrepeat(LVAL,int),
            lsort(void),
            make_string(char *),
            makearglist(),
            makecompound(LVAL,LVAL),
            makedisplacedarray(LVAL,LVAL),
            map(LVAL,LVAL,LVAL,int),
            mklist(int,LVAL),
            nested_list_to_array(LVAL,int),
            nested_list_to_list(LVAL,int),
            newarray(LVAL,LVAL,LVAL),
            newcomplex(LVAL,LVAL),
            newdcomplex(double,double),
            newicomplex(FIXTYPE,FIXTYPE),
            newrandomstate(void),
            obclass(void),
            obisnew(void),
            obshow(void),
            peekarg(int),
            realpart(LVAL),
            recursive_subr_map_elements(LVAL (*)(void),LVAL (*)(void)),
            reduce(LVAL,LVAL,int,LVAL),
            rem_mod(int),
            send_message_1L(LVAL,LVAL,LVAL),
            send_message_stk(LVAL,LVAL),
            send_message(LVAL,LVAL),
            send_message1(LVAL,LVAL,int),
            send_message2(LVAL,LVAL,int,int),
            send_message4(LVAL,LVAL,int,int,int,int),
            set_slot_value(LVAL,LVAL,LVAL),
            slot_value(LVAL,LVAL),
            splitlist(LVAL,int),
            subarray(LVAL,LVAL,int,LVAL),
            subr_map_elements(LVAL (*)(void)),
            subsequence(LVAL,LVAL,int,LVAL),
            xabs(void),
            xacos(void),
            xadd(void),
            xadd1(void),
            xasin(void),
            xatan(void),
            xceil(void),
            xcos(void),
            xdiv(void),
            xequ(void),
            xevenp(void),
            xexp(void),
            xexpt(void),
            xfix(void),
            xfloat(void),
            xfloor(void),
            xsfft(void),
            xgcd(void),
            xgeq(void),
            xgtr(void),
            xleq(void),
            xlgetarray(),
            xlog(void),
            xlogand(void),
            xlogior(void),
            xlognot(void),
            xlogxor(void),
            xlss(void),
            xmax(void),
            xmin(void),
            xminusp(void),
            xmsend(void),
            xmsendsuper(void),
            xmul(void),
            xneq(void),
            xoddp(void),
            xphase(void),
            xplusp(void),
            xrand(void),
            xrem(void),
            xround(void),
            xs_get_internal_real_time(void),
            xs_get_internal_run_time(void),
            xsadd_method(void),
            xsadd_slot(void),
            xsadjoin(void),
            xsallocated_p(void),
            xsapply(void),
            xsapplysubr(LVAL (*)(void),LVAL),
            xsapropos(void),
            xsaproposlist(void),
            xsaref(void),
            xsarraydimension(void),
            xsarraydimensions(void),
            xsarrayinboundsp(void),
            xsarrayp(void),
            xsarrayrank(void),
            xsarrayrowmajorindex(void),
            xsarraytotalsize(void),
            xsaxpy(void),
            xsbase_lowess(void),
            xsbindcols(void),
            xsbindfaces(int),
            xsbindrows(void),
            xsbracket_search(void),
            xsbreak(void),
            xsbutlast(void),
            xscall_method(void),
            xscall_next(void),
            xscallsubrvec(LVAL (*)(void),int,LVAL *),
            xscallsubr1(LVAL (*)(void),LVAL),
            xscallsubr2(LVAL (*)(void),LVAL,LVAL),
            xschol_decomp(void),
            xscolumnlist(void),
            xscoerce(void),
            xscomplexp(void),
            xscompound_length(void),
            xscompound_seq(void),
            xscompoundp(void),
            xsconcatenate(void),
            xscopyarray(void),
            xscopylist(void),
            xscopyseq(void),
            xscopyvector(void),
            xscount(void),
            xscrossproduct(void),
            xsdefconstant(void),
            xsdefmeth(void),
            xsdefparameter(void),
            xsdefproto(void),
            xsdefvar(void),
            xsdelete_method(void),
            xsdelete_slot(void),
            xsdeterminant(void),
            xsdiagonal(void),
            xselement_seq(void),
            xselt(void),
            xsend(void),
            xsendsuper(void),
            xsequal(void),
            xseql(void),
            xserror(void),
            xseval(void),
            xsevery(void),
            xsfileposition(void),
            xsfind(void),
            xsflush_graphics(void),
            xsfmakunbound(void),
            xsforce_output(void),
            xsformat(void),
            xsfuncall1(LVAL,LVAL),
            xsfuncall2(LVAL,LVAL,LVAL),
            xsgetarray(void),
            xsgetdisplacedarray(void),
            xsgetenv(void),
            xsgetmatrix(void),
            xsgetmobject(void),
            xsgetreal(void),
            xsgetsequence(void),
            xsgolden_search(void),
            xshas_method(void),
            xshas_slot(void),
            xshidewindow(void),
            xsidentity(void),
            xsidentitymatrix(void),
            xsifelse(void),
            xsin(void),
            xsinstalled_p(void),
            xsintersection(void),
            xsinverse(void),
            xsiseq(void),
            xskernel_dens(void),
            xskernel_smooth(void),
            xskind_of_p(void),
            xsload(void),
            xslu_decomp(void),
            xslu_determinant(void),
            xslu_inverse(void),
            xslu_solve(void),
            xsmake_random_state(void),
            xsmake_rotation(void),
            xsmake_string(void),
            xsmakearray(void),
            xsmake_object(void),
            xsmakeproto(void),
            xsmakesweepmatrix(void),
            xsmakunbound(void),
            xsmap(void),
            xsmap_elements(void),
            xsmatmult(void),
            xsmax(void),
            xsmean(void),
            xsmessage_method(void),
            xsmin(void),
            xsminfo(void),
            xsminfo_isnew(void),
            xsminfo_loglap(void),
            xsminfo_maximize(void),
            xsmklist(void),
            xsnewproto(char *,LVAL),
            xsnotany(void),
            xsnotevery(void),
            xsnumgrad(void),
            xsnumhess(void),
            xsnumtostring(void),
            xsobject_documentation(void),
            xsobject_isnew(void),
            xsobject_methods(void),
            xsobject_null_method(void),
            xsobject_slots(void),
            xsorder(void),
            xsouterproduct(void),
            xsparabolic_search(void),
            xsparents(void),
            xspermutearray(void),
            xsposition(void),
            xsprecedence_list(void),
            xsprod(void),
            xsquantile(void),
            xsqr_decomp(void),
            xsqrt(void),
            xsrabs(void),
            xsracos(void),
            xsradd(void),
            xsradd1(void),
            xsrandom_state_p(void),
            xsrank(void),
            xsrasin(void),
            xsratan(void),
            xsrbetacdf(void),
            xsrbetadens(void),
            xsrbetaquant(void),
            xsrbetarand(void),
            xsrbinomialcdf(void),
            xsrbinomialpmf(void),
            xsrbinomialquant(void),
            xsrbinomialrand(void),
            xsrbnormcdf(void),
            xsrcauchycdf(void),
            xsrcauchydens(void),
            xsrcauchyquant(void),
            xsrcauchyrand(void),
            xsrceil(void),
            xsrchisqcdf(void),
            xsrchisqdens(void),
            xsrchisqquant(void),
            xsrchisqrand(void),
            xsrcomplex(void),
            xsrcondest(void),
            xsrconjugate(void),
            xsrcos(void),
            xsrdiv(void),
            xsreduce(void),
            xsremove_duplicates(void),
            xsreparent_object(void),
            xsrepeat(void),
            xsrequ(void),
            xsrestore(void),
            xsrevenp(void),
            xsrexp(void),
            xsrexpt(void),
            xsrfcdf(void),
            xsrfdens(void),
            xsrfix(void),
            xsrfloat(void),
            xsrfloor(void),
            xsrfquant(void),
            xsrfrand(void),
            xsrgammacdf(void),
            xsrgammadens(void),
            xsrgammaquant(void),
            xsrgammarand(void),
            xsrgeq(void),
            xsrgtr(void),
            xsrimagpart(void),
            xsrleq(void),
            xsrlog(void),
            xsrlogand(void),
            xsrloggamma(void),
            xsrloggammacdf(void),
            xsrlogior(void),
            xsrlognot(void),
            xsrlogxor(void),
            xsrlss(void),
            xsrmax(void),
            xsrmin(void),
            xsrminp(void),
            xsrminusp(void),
            xsrmul(void),
            xsrneq(void),
            xsrnormalcdf(void),
            xsrnormaldens(void),
            xsrnormalquant(void),
            xsrnormalrand(void),
            xsroddp(void),
            xsrowlist(void),
            xsrphase(void),
            xsrplusp(void),
            xsrpoissoncdf(void),
            xsrpoissonpmf(void),
            xsrpoissonquant(void),
            xsrpoissonrand(void),
            xsrrand(void),
            xsrrealpart(void),
            xsrrem(void),
            xsrround(void),
            xsrsin(void),
            xsrsqrt(void),
            xsrsub(void),
            xsrsub1(void),
            xsrtan(void),
            xsrtcdf(void),
            xsrtdens(void),
            xsrtquant(void),
            xsrtrand(void),
            xsruniformrand(void),
            xsrzerop(void),
            xssample(void),
#ifdef DODO
            xsscaled_c2_eval(void),
            xsscaled_c2_grad(void),
            xsscaled_c2_hess(void),
#endif DODO
            xsscreen_has_color(void),
            xsscreen_size(void),
            xsselect(void),
            xssequencep(void),
            xsset_difference(void),
            xssetselect(void),
            xsshow_object(void),
            xsshowwindow(void),
            xsslot_value(void),
            xssolve(void),
            xssome(void),
            xssortdata(void),
            xsspline(void),
            xssplitlist(void),
            xssubsetp(void),
            xssum(void),
            xssurface_contour(void),
            xssv_decomp(void),
            xssweepoperator(void),
            xssysbeep(void),
            xssystem(void),
            xstime(void),
            xstranspose(void),
            xsub(void),
            xsub1(void),
            xsunion(void),
            xswhich(void),
            xswindow_frame_location(void),
            xswindow_frame_size(void),
            xswindow_location(void),
            xswindow_size(void),
            xswindow_title(void),
            xtan(void),
            xzerop(void);
extern int arrayp(LVAL),
           arrayrank(LVAL),
           cfft(int,double *,double *,int),
           check_point_list(LVAL),
           checkarrayp(LVAL),
           checkdims(LVAL),
           checkfeatures(LVAL,int),
           compounddatalen(LVAL),
           compoundp(LVAL),
           crlubksb(Matrix,int,IVector,Vector,int),
           crludcmp(Matrix,int,IVector,int,double *),
           displacedarrayp(LVAL),
           do_plot(struct curve_points *,int,double,double,double,double),
           draw_key_arg(int),
           fit_spline(int,RVector,RVector,int,RVector,RVector,RVector),
           inboundsp(LVAL,LVAL,int),
           keep_doc_strings(void),
           kernel_smooth(RVector,RVector,int,double,RVector,RVector,
                         RVector, RVector,int,int),
           kind_of_p(LVAL,LVAL),
           lex_set_slot_value(LVAL,LVAL,LVAL),
           lex_slot_value(LVAL,LVAL,LVAL *),
           llength(LVAL),
           lowess(RVector,RVector,int,double,int,double,RVector,RVector,RVector),
           matrixp(LVAL),
#ifndef max
           max(int,int),
           min(int,int),
#endif max
           minworkspacesize(int,int),
           mobject_p(LVAL),
           numcols(LVAL),
           numrows(LVAL),
           old_rowmajor_index(int,LVAL,LVAL,LVAL),
           osrand(unsigned),
           rowmajorindex(LVAL,LVAL,int),
           simplevectorp(LVAL),
           svdcmp(RMatrix,int,int,RVector,RMatrix);
           sweep_in_place(LVAL,int,double),
           xlobgetvalue(LVAL,LVAL,LVAL *),
           xlobsetvalue(LVAL,LVAL,LVAL),
           xsboolkey(LVAL,int);
extern void backsolve(Matrix,Vector,int,int),
            betabase(double *,double *,double *,int *,int *,double *),
            call_S(LVAL,long,char **,char **,long *,char **,long,char **),
            check_hooks(LVAL,LVAL,int),
            checkfzero(FLOTYPE),
            checkizero(FIXTYPE),
            choldecomp(RMatrix,int,double,double *),
            constfunc(RVector,RVector,RMatrix,RMatrix),
            copy_column(LVAL,int,LVAL),
            copy_row(LVAL,int,LVAL),
            defconstant(LVAL,LVAL),
            derivescalefront(char **,int *,double *,double *,double *,double *,
                      double *,double *),
            do_point(int,int,int),
            evalfront(LVAL *,int *,double *,double *,double *,double *,
                      double *,double *),
            evsetarrayelement(LVAL,LVAL),
            free_matrix(Matrix,int),
            free_vector(Vector),
            gammabase(double *,double *,double *),
            get_window_bounds(LVAL,int *,int *,int *,int *),
            gevalfront(char **,int *,double *,double *,double *,double *,
                      double *,double *),
            init_objects(void),
            lapmar1front(char **,char **,double *,double *,double *,MaxIPars *,
                         MaxDPars *,double *,double *,int *),
            line_and_point(int,int,int),
            loglapdet(double *,double *,MaxIPars *,MaxDPars *,double *,int *),
            loglapfront(double *,double *,MaxIPars *,MaxDPars *,double *),
            make_rotation(int,RMatrix,RVector,RVector,int,double),
            maxfront(LVAL *,LVAL *,LVAL *,RVector,RVector,double *,
                     double *,double *,double *,MaxIPars *,MaxDPars *,
                     double *,char **),
            minimize(void),
            minresults(RVector,double *,double *,RVector,RMatrix,RVector,
                       RMatrix,int *,int *,double *),
            minsetoptions(double,double,double,int,int,int,int),
            minsetup(int,int,int (*)(),int (*)(),RVector,double,RVector,char *),
            minsupplyvalues(double,RVector,RMatrix,RVector,RMatrix),
            moms1front(char *,int *,int *,double *,double *,double *,double *,
                       double *,double *,double *),
            moms2front(char **,char **,int *,double *,double *,double *,double *,
                       MomIPars *,MomDPars *,double *,double *,double *),
            normbase(double *,double *),
            numergrad(int,RVector,RVector,RVector,int (*)(),double,RVector),
            numerhess(int,RVector,RMatrix,double,RVector,int (*)(),double,RVector),
            num2str(double,char []),
            object_isnew(LVAL),
            obsymbols(void),
            print_mobject(LVAL,LVAL),
            pushargvec(LVAL,int,LVAL *),
            putarray(LVAL,LVAL,int),
            qrdecomp(RMatrix,int,int,RMatrix,IVector,int),
            Recover(char *,char *),
            samplefront(char **,char **,char **,double *,int *,double *,
                        double *,int *,double *,double *),
            set_elt(LVAL,LVAL,LVAL),
            set_function_docstring(LVAL,LVAL),
            set_variable_docstring(LVAL,LVAL),
            setfixnum(LVAL,FIXTYPE),
            setnextelement(LVAL *,int,LVAL),
            standard_hardware_clobber(LVAL),
            statfinit(void),
            statobsymbols(void),
            statsymbols(void),
            studentbase(double *,double *,double *),
            xloinit(void),
            xsaddinstanceslot(LVAL,char *),
            xsaddmsg(LVAL,char *),
            xsaddslot(LVAL,char *),
            xssetslotval(LVAL,char *,LVAL),
            xstfree(void *);
extern char *idx(char *,char),
            *minresultstring(int),
            *S_alloc(int,int),
            *xstcalloc(int,int);
extern double bivnor(double,double,double),
              *data_to_double(LVAL),
              f_divide(double,double),
              f_exp(double),
              f_expt(double,double),
              f_log(double),
              f_minus(double,double),
              f_plus(double,double),
              f_sqrt(double),
              f_times(double,double),
              gamma(double),
              logarithm(FLOTYPE,FLOTYPE,int),
              macheps(void),
              makedouble(LVAL),
              modulus(Complex),
              pdlogdet(int,RMatrix),
              phase(Complex),
              ppbeta(double,double,double,int *),
              ppgamma(double,double,int *),
              ppnd(double,int *),
              ppstudent(double,double,int *),
              raise(double,int),
              rcondest(RMatrix,int),
              uni(void);
extern Complex cacos(Complex),
               cadd(Complex,Complex),
               cart2complex(double,double),
               casin(Complex),
               catan(Complex),
               ccos(Complex),
               cdiv(Complex,Complex),
               cexp(Complex),
               cexpt(Complex,Complex),
               clog(Complex),
               cmul(Complex,Complex),
               csin(Complex),
               csqrt(Complex),
               csub(Complex,Complex),
               ctan(Complex),
               makecomplex(LVAL),
               polar2complex(double,double);
extern CMatrix cmatrix(unsigned,unsigned);
extern IMatrix imatrix(unsigned,unsigned);
extern RMatrix rmatrix(unsigned,unsigned);
extern CVector cvector(unsigned);
extern IVector ivector(unsigned);
extern RVector rvector(unsigned);

#endif XLSPROTO_H
