? octave/Makeconf ? octave/Makefile ? octave/Makefrag.f77 ? octave/autom4te.cache ? octave/config.h ? octave/config.h.in ? octave/config.log ? octave/config.status ? octave/configure ? octave/install-octave ? octave/mkoctfile ? octave/octMakefile ? octave/octave-bug ? octave/octave-config ? octave/octave-core ? octave/dlfcn/Makefile ? octave/doc/Makefile ? octave/doc/faq/Makefile ? octave/doc/faq/Octave-FAQ.aux ? octave/doc/faq/Octave-FAQ.cp ? octave/doc/faq/Octave-FAQ.cps ? octave/doc/faq/Octave-FAQ.dvi ? octave/doc/faq/Octave-FAQ.fn ? octave/doc/faq/Octave-FAQ.html ? octave/doc/faq/Octave-FAQ.info ? octave/doc/faq/Octave-FAQ.ky ? octave/doc/faq/Octave-FAQ.log ? octave/doc/faq/Octave-FAQ.pg ? octave/doc/faq/Octave-FAQ.ps ? octave/doc/faq/Octave-FAQ.toc ? octave/doc/faq/Octave-FAQ.tp ? octave/doc/faq/Octave-FAQ.vr ? octave/doc/faq/Octave-FAQ_1.html ? octave/doc/faq/Octave-FAQ_10.html ? octave/doc/faq/Octave-FAQ_11.html ? octave/doc/faq/Octave-FAQ_12.html ? octave/doc/faq/Octave-FAQ_2.html ? octave/doc/faq/Octave-FAQ_3.html ? octave/doc/faq/Octave-FAQ_4.html ? octave/doc/faq/Octave-FAQ_5.html ? octave/doc/faq/Octave-FAQ_6.html ? octave/doc/faq/Octave-FAQ_7.html ? octave/doc/faq/Octave-FAQ_8.html ? octave/doc/faq/Octave-FAQ_9.html ? octave/doc/faq/Octave-FAQ_abt.html ? octave/doc/faq/Octave-FAQ_fot.html ? octave/doc/faq/Octave-FAQ_ovr.html ? octave/doc/faq/Octave-FAQ_toc.html ? octave/doc/interpreter/Makefile ? octave/doc/interpreter/arith.texi ? octave/doc/interpreter/audio.texi ? octave/doc/interpreter/basics.texi ? octave/doc/interpreter/bugs.texi ? octave/doc/interpreter/container.texi ? octave/doc/interpreter/control.texi ? octave/doc/interpreter/cp-idx.texi ? octave/doc/interpreter/data.texi ? octave/doc/interpreter/debug.texi ? octave/doc/interpreter/diffeq.texi ? octave/doc/interpreter/emacs.texi ? octave/doc/interpreter/errors.texi ? octave/doc/interpreter/eval.texi ? octave/doc/interpreter/expr.texi ? octave/doc/interpreter/finance.texi ? octave/doc/interpreter/fn-idx.texi ? octave/doc/interpreter/func.texi ? octave/doc/interpreter/gpl.texi ? octave/doc/interpreter/grammar.texi ? octave/doc/interpreter/image.texi ? octave/doc/interpreter/install.texi ? octave/doc/interpreter/intro.texi ? octave/doc/interpreter/io.texi ? octave/doc/interpreter/linalg.texi ? octave/doc/interpreter/matrix.texi ? octave/doc/interpreter/munge-texi ? octave/doc/interpreter/nonlin.texi ? octave/doc/interpreter/numbers.texi ? octave/doc/interpreter/octave.aux ? octave/doc/interpreter/octave.cp ? octave/doc/interpreter/octave.cps ? octave/doc/interpreter/octave.dvi ? octave/doc/interpreter/octave.fn ? octave/doc/interpreter/octave.fns ? octave/doc/interpreter/octave.html ? octave/doc/interpreter/octave.info ? octave/doc/interpreter/octave.info-1 ? octave/doc/interpreter/octave.info-10 ? octave/doc/interpreter/octave.info-11 ? octave/doc/interpreter/octave.info-12 ? octave/doc/interpreter/octave.info-13 ? octave/doc/interpreter/octave.info-14 ? octave/doc/interpreter/octave.info-15 ? octave/doc/interpreter/octave.info-16 ? octave/doc/interpreter/octave.info-2 ? octave/doc/interpreter/octave.info-3 ? octave/doc/interpreter/octave.info-4 ? octave/doc/interpreter/octave.info-5 ? octave/doc/interpreter/octave.info-6 ? octave/doc/interpreter/octave.info-7 ? octave/doc/interpreter/octave.info-8 ? octave/doc/interpreter/octave.info-9 ? octave/doc/interpreter/octave.ky ? octave/doc/interpreter/octave.log ? octave/doc/interpreter/octave.op ? octave/doc/interpreter/octave.ops ? octave/doc/interpreter/octave.pg ? octave/doc/interpreter/octave.ps ? octave/doc/interpreter/octave.toc ? octave/doc/interpreter/octave.tp ? octave/doc/interpreter/octave.vr ? octave/doc/interpreter/octave.vrs ? octave/doc/interpreter/octave_1.html ? octave/doc/interpreter/octave_10.html ? octave/doc/interpreter/octave_11.html ? octave/doc/interpreter/octave_12.html ? octave/doc/interpreter/octave_13.html ? octave/doc/interpreter/octave_14.html ? octave/doc/interpreter/octave_15.html ? octave/doc/interpreter/octave_16.html ? octave/doc/interpreter/octave_17.html ? octave/doc/interpreter/octave_18.html ? octave/doc/interpreter/octave_19.html ? octave/doc/interpreter/octave_2.html ? octave/doc/interpreter/octave_20.html ? octave/doc/interpreter/octave_21.html ? octave/doc/interpreter/octave_22.html ? octave/doc/interpreter/octave_23.html ? octave/doc/interpreter/octave_24.html ? octave/doc/interpreter/octave_25.html ? octave/doc/interpreter/octave_26.html ? octave/doc/interpreter/octave_27.html ? octave/doc/interpreter/octave_28.html ? octave/doc/interpreter/octave_29.html ? octave/doc/interpreter/octave_3.html ? octave/doc/interpreter/octave_30.html ? octave/doc/interpreter/octave_31.html ? octave/doc/interpreter/octave_32.html ? octave/doc/interpreter/octave_33.html ? octave/doc/interpreter/octave_34.html ? octave/doc/interpreter/octave_35.html ? octave/doc/interpreter/octave_36.html ? octave/doc/interpreter/octave_37.html ? octave/doc/interpreter/octave_38.html ? octave/doc/interpreter/octave_39.html ? octave/doc/interpreter/octave_4.html ? octave/doc/interpreter/octave_40.html ? octave/doc/interpreter/octave_41.html ? octave/doc/interpreter/octave_42.html ? octave/doc/interpreter/octave_43.html ? octave/doc/interpreter/octave_44.html ? octave/doc/interpreter/octave_45.html ? octave/doc/interpreter/octave_46.html ? octave/doc/interpreter/octave_47.html ? octave/doc/interpreter/octave_48.html ? octave/doc/interpreter/octave_49.html ? octave/doc/interpreter/octave_5.html ? octave/doc/interpreter/octave_50.html ? octave/doc/interpreter/octave_51.html ? octave/doc/interpreter/octave_52.html ? octave/doc/interpreter/octave_53.html ? octave/doc/interpreter/octave_54.html ? octave/doc/interpreter/octave_6.html ? octave/doc/interpreter/octave_7.html ? octave/doc/interpreter/octave_8.html ? octave/doc/interpreter/octave_9.html ? octave/doc/interpreter/octave_abt.html ? octave/doc/interpreter/octave_fot.html ? octave/doc/interpreter/octave_ovr.html ? octave/doc/interpreter/octave_toc.html ? octave/doc/interpreter/op-idx.texi ? octave/doc/interpreter/optim.texi ? octave/doc/interpreter/plot.texi ? octave/doc/interpreter/poly.texi ? octave/doc/interpreter/preface.texi ? octave/doc/interpreter/quad.texi ? octave/doc/interpreter/quaternion.texi ? octave/doc/interpreter/set.texi ? octave/doc/interpreter/signal.texi ? octave/doc/interpreter/stats.texi ? octave/doc/interpreter/stmt.texi ? octave/doc/interpreter/stream.texi ? octave/doc/interpreter/strings.texi ? octave/doc/interpreter/struct.texi ? octave/doc/interpreter/system.texi ? octave/doc/interpreter/tips.texi ? octave/doc/interpreter/var.texi ? octave/doc/interpreter/vr-idx.texi ? octave/doc/liboctave/Makefile ? octave/doc/liboctave/liboctave.aux ? octave/doc/liboctave/liboctave.cp ? octave/doc/liboctave/liboctave.cps ? octave/doc/liboctave/liboctave.dvi ? octave/doc/liboctave/liboctave.fn ? octave/doc/liboctave/liboctave.fns ? octave/doc/liboctave/liboctave.html ? octave/doc/liboctave/liboctave.info ? octave/doc/liboctave/liboctave.info-1 ? octave/doc/liboctave/liboctave.info-2 ? octave/doc/liboctave/liboctave.info-3 ? octave/doc/liboctave/liboctave.ky ? octave/doc/liboctave/liboctave.log ? octave/doc/liboctave/liboctave.op ? octave/doc/liboctave/liboctave.pg ? octave/doc/liboctave/liboctave.ps ? octave/doc/liboctave/liboctave.toc ? octave/doc/liboctave/liboctave.tp ? octave/doc/liboctave/liboctave.vr ? octave/doc/liboctave/liboctave_1.html ? octave/doc/liboctave/liboctave_10.html ? octave/doc/liboctave/liboctave_11.html ? octave/doc/liboctave/liboctave_12.html ? octave/doc/liboctave/liboctave_13.html ? octave/doc/liboctave/liboctave_14.html ? octave/doc/liboctave/liboctave_15.html ? octave/doc/liboctave/liboctave_16.html ? octave/doc/liboctave/liboctave_17.html ? octave/doc/liboctave/liboctave_18.html ? octave/doc/liboctave/liboctave_19.html ? octave/doc/liboctave/liboctave_2.html ? octave/doc/liboctave/liboctave_20.html ? octave/doc/liboctave/liboctave_21.html ? octave/doc/liboctave/liboctave_22.html ? octave/doc/liboctave/liboctave_23.html ? octave/doc/liboctave/liboctave_3.html ? octave/doc/liboctave/liboctave_4.html ? octave/doc/liboctave/liboctave_5.html ? octave/doc/liboctave/liboctave_6.html ? octave/doc/liboctave/liboctave_7.html ? octave/doc/liboctave/liboctave_8.html ? octave/doc/liboctave/liboctave_9.html ? octave/doc/liboctave/liboctave_abt.html ? octave/doc/liboctave/liboctave_ovr.html ? octave/doc/liboctave/liboctave_toc.html ? octave/doc/refcard/Makefile ? octave/doc/refcard/refcard-a4.dvi ? octave/doc/refcard/refcard-a4.log ? octave/doc/refcard/refcard-a4.pdf ? octave/doc/refcard/refcard-a4.ps ? octave/doc/refcard/refcard-legal.dvi ? octave/doc/refcard/refcard-legal.log ? octave/doc/refcard/refcard-legal.pdf ? octave/doc/refcard/refcard-legal.ps ? octave/doc/refcard/refcard-letter.dvi ? octave/doc/refcard/refcard-letter.log ? octave/doc/refcard/refcard-letter.pdf ? octave/doc/refcard/refcard-letter.ps ? octave/emacs/Makefile ? octave/examples/Makefile ? octave/glob/Makefile ? octave/glob/autom4te.cache ? octave/glob/config.h ? octave/glob/config.h.in ? octave/glob/config.log ? octave/glob/config.status ? octave/glob/configure ? octave/libcruft/Makefile ? octave/libcruft/Makerules ? octave/libcruft/amos/Makefile ? octave/libcruft/amos/pic ? octave/libcruft/blas/Makefile ? octave/libcruft/blas/pic ? octave/libcruft/blas-xtra/Makefile ? octave/libcruft/blas-xtra/pic ? octave/libcruft/daspk/Makefile ? octave/libcruft/daspk/pic ? octave/libcruft/dasrt/Makefile ? octave/libcruft/dasrt/pic ? octave/libcruft/dassl/Makefile ? octave/libcruft/dassl/pic ? octave/libcruft/fftpack/Makefile ? octave/libcruft/fftpack/pic ? octave/libcruft/lapack/Makefile ? octave/libcruft/lapack/pic ? octave/libcruft/lapack-xtra/Makefile ? octave/libcruft/lapack-xtra/pic ? octave/libcruft/minpack/Makefile ? octave/libcruft/minpack/pic ? octave/libcruft/misc/Makefile ? octave/libcruft/misc/cquit.d ? octave/libcruft/misc/f77-extern.d ? octave/libcruft/misc/f77-fcn.d ? octave/libcruft/misc/lo-error.d ? octave/libcruft/misc/machar.d ? octave/libcruft/misc/pic ? octave/libcruft/misc/quit.d ? octave/libcruft/odepack/Makefile ? octave/libcruft/odepack/pic ? octave/libcruft/odessa/Makefile ? octave/libcruft/odessa/pic ? octave/libcruft/ordered-qz/Makefile ? octave/libcruft/ordered-qz/pic ? octave/libcruft/quadpack/Makefile ? octave/libcruft/quadpack/pic ? octave/libcruft/ranlib/Makefile ? octave/libcruft/ranlib/pic ? octave/libcruft/slatec-err/Makefile ? octave/libcruft/slatec-err/pic ? octave/libcruft/slatec-fn/Makefile ? octave/libcruft/slatec-fn/pic ? octave/libcruft/villad/Makefile ? octave/libcruft/villad/pic ? octave/liboctave/Array-C.d ? octave/liboctave/Array-b.d ? octave/liboctave/Array-ch.d ? octave/liboctave/Array-d.d ? octave/liboctave/Array-flags.d ? octave/liboctave/Array-i.d ? octave/liboctave/Array-idx-vec.d ? octave/liboctave/Array-s.d ? octave/liboctave/Array-so.d ? octave/liboctave/Array-str.d ? octave/liboctave/Array-util.d ? octave/liboctave/Array.d ? octave/liboctave/ArrayN.d ? octave/liboctave/Bounds.d ? octave/liboctave/CColVector.d ? octave/liboctave/CDiagMatrix.d ? octave/liboctave/CMatrix.d ? octave/liboctave/CNDArray.d ? octave/liboctave/CRowVector.d ? octave/liboctave/CmplxAEPBAL.d ? octave/liboctave/CmplxCHOL.d ? octave/liboctave/CmplxDET.d ? octave/liboctave/CmplxHESS.d ? octave/liboctave/CmplxLU.d ? octave/liboctave/CmplxQR.d ? octave/liboctave/CmplxQRP.d ? octave/liboctave/CmplxSCHUR.d ? octave/liboctave/CmplxSVD.d ? octave/liboctave/CollocWt.d ? octave/liboctave/DASPK-opts.h ? octave/liboctave/DASPK.d ? octave/liboctave/DASRT-opts.h ? octave/liboctave/DASRT.d ? octave/liboctave/DASSL-opts.h ? octave/liboctave/DASSL.d ? octave/liboctave/DiagArray2.d ? octave/liboctave/EIG.d ? octave/liboctave/FEGrid.d ? octave/liboctave/LPsolve.d ? octave/liboctave/LSODE-opts.h ? octave/liboctave/LSODE.d ? octave/liboctave/LinConst.d ? octave/liboctave/MArray-C.d ? octave/liboctave/MArray-ch.d ? octave/liboctave/MArray-d.d ? octave/liboctave/MArray-i.d ? octave/liboctave/MArray-s.d ? octave/liboctave/MArray.d ? octave/liboctave/MArray2.d ? octave/liboctave/MArrayN.d ? octave/liboctave/MDiagArray2.d ? octave/liboctave/Makefile ? octave/liboctave/NLEqn-opts.h ? octave/liboctave/NLEqn.d ? octave/liboctave/ODES.d ? octave/liboctave/ODESSA-opts.h ? octave/liboctave/ODESSA.d ? octave/liboctave/Quad-opts.h ? octave/liboctave/Quad.d ? octave/liboctave/Range.d ? octave/liboctave/base-lu.d ? octave/liboctave/boolMatrix.d ? octave/liboctave/boolNDArray.d ? octave/liboctave/chMatrix.d ? octave/liboctave/chNDArray.d ? octave/liboctave/cmd-edit.d ? octave/liboctave/cmd-hist.d ? octave/liboctave/dColVector.d ? octave/liboctave/dDiagMatrix.d ? octave/liboctave/dMatrix.d ? octave/liboctave/dNDArray.d ? octave/liboctave/dRowVector.d ? octave/liboctave/data-conv.d ? octave/liboctave/dbleAEPBAL.d ? octave/liboctave/dbleCHOL.d ? octave/liboctave/dbleDET.d ? octave/liboctave/dbleHESS.d ? octave/liboctave/dbleLU.d ? octave/liboctave/dbleQR.d ? octave/liboctave/dbleQRP.d ? octave/liboctave/dbleSCHUR.d ? octave/liboctave/dbleSVD.d ? octave/liboctave/dir-ops.d ? octave/liboctave/f2c-main.d ? octave/liboctave/file-ops.d ? octave/liboctave/file-stat.d ? octave/liboctave/filemode.d ? octave/liboctave/getopt.d ? octave/liboctave/getopt1.d ? octave/liboctave/glob-match.d ? octave/liboctave/idx-vector.d ? octave/liboctave/kpse-xfns.d ? octave/liboctave/lo-cieee.d ? octave/liboctave/lo-cutils.d ? octave/liboctave/lo-ieee.d ? octave/liboctave/lo-mappers.d ? octave/liboctave/lo-specfun.d ? octave/liboctave/lo-sysdep.d ? octave/liboctave/lo-utils.d ? octave/liboctave/mach-info.d ? octave/liboctave/mkdir.d ? octave/liboctave/mx-cdm-cm.cc ? octave/liboctave/mx-cdm-cm.d ? octave/liboctave/mx-cdm-cm.h ? octave/liboctave/mx-cdm-cs.cc ? octave/liboctave/mx-cdm-cs.d ? octave/liboctave/mx-cdm-cs.h ? octave/liboctave/mx-cdm-dm.cc ? octave/liboctave/mx-cdm-dm.d ? octave/liboctave/mx-cdm-dm.h ? octave/liboctave/mx-cdm-m.cc ? octave/liboctave/mx-cdm-m.d ? octave/liboctave/mx-cdm-m.h ? octave/liboctave/mx-cdm-s.cc ? octave/liboctave/mx-cdm-s.d ? octave/liboctave/mx-cdm-s.h ? octave/liboctave/mx-cm-cdm.cc ? octave/liboctave/mx-cm-cdm.d ? octave/liboctave/mx-cm-cdm.h ? octave/liboctave/mx-cm-dm.cc ? octave/liboctave/mx-cm-dm.d ? octave/liboctave/mx-cm-dm.h ? octave/liboctave/mx-cm-m.cc ? octave/liboctave/mx-cm-m.d ? octave/liboctave/mx-cm-m.h ? octave/liboctave/mx-cm-s.cc ? octave/liboctave/mx-cm-s.d ? octave/liboctave/mx-cm-s.h ? octave/liboctave/mx-cnda-nda.cc ? octave/liboctave/mx-cnda-nda.d ? octave/liboctave/mx-cnda-nda.h ? octave/liboctave/mx-cnda-s.cc ? octave/liboctave/mx-cnda-s.d ? octave/liboctave/mx-cnda-s.h ? octave/liboctave/mx-cs-cdm.cc ? octave/liboctave/mx-cs-cdm.d ? octave/liboctave/mx-cs-cdm.h ? octave/liboctave/mx-cs-dm.cc ? octave/liboctave/mx-cs-dm.d ? octave/liboctave/mx-cs-dm.h ? octave/liboctave/mx-cs-m.cc ? octave/liboctave/mx-cs-m.d ? octave/liboctave/mx-cs-m.h ? octave/liboctave/mx-cs-nda.cc ? octave/liboctave/mx-cs-nda.d ? octave/liboctave/mx-cs-nda.h ? octave/liboctave/mx-dm-cdm.cc ? octave/liboctave/mx-dm-cdm.d ? octave/liboctave/mx-dm-cdm.h ? octave/liboctave/mx-dm-cm.cc ? octave/liboctave/mx-dm-cm.d ? octave/liboctave/mx-dm-cm.h ? octave/liboctave/mx-dm-cs.cc ? octave/liboctave/mx-dm-cs.d ? octave/liboctave/mx-dm-cs.h ? octave/liboctave/mx-dm-m.cc ? octave/liboctave/mx-dm-m.d ? octave/liboctave/mx-dm-m.h ? octave/liboctave/mx-dm-s.cc ? octave/liboctave/mx-dm-s.d ? octave/liboctave/mx-dm-s.h ? octave/liboctave/mx-m-cdm.cc ? octave/liboctave/mx-m-cdm.d ? octave/liboctave/mx-m-cdm.h ? octave/liboctave/mx-m-cm.cc ? octave/liboctave/mx-m-cm.d ? octave/liboctave/mx-m-cm.h ? octave/liboctave/mx-m-cs.cc ? octave/liboctave/mx-m-cs.d ? octave/liboctave/mx-m-cs.h ? octave/liboctave/mx-m-dm.cc ? octave/liboctave/mx-m-dm.d ? octave/liboctave/mx-m-dm.h ? octave/liboctave/mx-nda-cnda.cc ? octave/liboctave/mx-nda-cnda.d ? octave/liboctave/mx-nda-cnda.h ? octave/liboctave/mx-nda-cs.cc ? octave/liboctave/mx-nda-cs.d ? octave/liboctave/mx-nda-cs.h ? octave/liboctave/mx-ops.h ? octave/liboctave/mx-s-cdm.cc ? octave/liboctave/mx-s-cdm.d ? octave/liboctave/mx-s-cdm.h ? octave/liboctave/mx-s-cm.cc ? octave/liboctave/mx-s-cm.d ? octave/liboctave/mx-s-cm.h ? octave/liboctave/mx-s-cnda.cc ? octave/liboctave/mx-s-cnda.d ? octave/liboctave/mx-s-cnda.h ? octave/liboctave/mx-s-dm.cc ? octave/liboctave/mx-s-dm.d ? octave/liboctave/mx-s-dm.h ? octave/liboctave/oct-alloc.d ? octave/liboctave/oct-env.d ? octave/liboctave/oct-fftw.d ? octave/liboctave/oct-getopt.d ? octave/liboctave/oct-group.d ? octave/liboctave/oct-passwd.d ? octave/liboctave/oct-rand.d ? octave/liboctave/oct-rl-edit.d ? octave/liboctave/oct-rl-hist.d ? octave/liboctave/oct-shlib.d ? octave/liboctave/oct-syscalls.d ? octave/liboctave/oct-time.d ? octave/liboctave/pathsearch.d ? octave/liboctave/prog-args.d ? octave/liboctave/rename.d ? octave/liboctave/rmdir.d ? octave/liboctave/so-array.d ? octave/liboctave/stamp-prereq ? octave/liboctave/str-vec.d ? octave/liboctave/strftime.d ? octave/liboctave/strptime.d ? octave/liboctave/tempnam.d ? octave/liboctave/tempname.d ? octave/liboctave/vx-ccv-cv.cc ? octave/liboctave/vx-ccv-cv.d ? octave/liboctave/vx-ccv-cv.h ? octave/liboctave/vx-ccv-s.cc ? octave/liboctave/vx-ccv-s.d ? octave/liboctave/vx-ccv-s.h ? octave/liboctave/vx-crv-rv.cc ? octave/liboctave/vx-crv-rv.d ? octave/liboctave/vx-crv-rv.h ? octave/liboctave/vx-crv-s.cc ? octave/liboctave/vx-crv-s.d ? octave/liboctave/vx-crv-s.h ? octave/liboctave/vx-cs-cv.cc ? octave/liboctave/vx-cs-cv.d ? octave/liboctave/vx-cs-cv.h ? octave/liboctave/vx-cs-rv.cc ? octave/liboctave/vx-cs-rv.d ? octave/liboctave/vx-cs-rv.h ? octave/liboctave/vx-cv-ccv.cc ? octave/liboctave/vx-cv-ccv.d ? octave/liboctave/vx-cv-ccv.h ? octave/liboctave/vx-cv-cs.cc ? octave/liboctave/vx-cv-cs.d ? octave/liboctave/vx-cv-cs.h ? octave/liboctave/vx-rv-crv.cc ? octave/liboctave/vx-rv-crv.d ? octave/liboctave/vx-rv-crv.h ? octave/liboctave/vx-rv-cs.cc ? octave/liboctave/vx-rv-cs.d ? octave/liboctave/vx-rv-cs.h ? octave/liboctave/vx-s-ccv.cc ? octave/liboctave/vx-s-ccv.d ? octave/liboctave/vx-s-ccv.h ? octave/liboctave/vx-s-crv.cc ? octave/liboctave/vx-s-crv.d ? octave/liboctave/vx-s-crv.h ? octave/scripts/DOCSTRINGS ? octave/scripts/Makefile ? octave/scripts/autom4te.cache ? octave/scripts/config.log ? octave/scripts/config.status ? octave/scripts/configure ? octave/scripts/gethelp ? octave/scripts/audio/Makefile ? octave/scripts/control/Makefile ? octave/scripts/control/base/Makefile ? octave/scripts/control/hinf/Makefile ? octave/scripts/control/obsolete/Makefile ? octave/scripts/control/system/Makefile ? octave/scripts/control/util/Makefile ? octave/scripts/deprecated/Makefile ? octave/scripts/elfun/Makefile ? octave/scripts/finance/Makefile ? octave/scripts/general/Makefile ? octave/scripts/image/Makefile ? octave/scripts/io/Makefile ? octave/scripts/linear-algebra/Makefile ? octave/scripts/miscellaneous/Makefile ? octave/scripts/plot/Makefile ? octave/scripts/polynomial/Makefile ? octave/scripts/quaternion/Makefile ? octave/scripts/set/Makefile ? octave/scripts/signal/Makefile ? octave/scripts/specfun/Makefile ? octave/scripts/special-matrix/Makefile ? octave/scripts/startup/Makefile ? octave/scripts/statistics/Makefile ? octave/scripts/statistics/base/Makefile ? octave/scripts/statistics/distributions/Makefile ? octave/scripts/statistics/models/Makefile ? octave/scripts/statistics/tests/Makefile ? octave/scripts/strings/Makefile ? octave/scripts/time/Makefile ? octave/src/Array-oc.d ? octave/src/Array-os.d ? octave/src/Array-sym.d ? octave/src/Array-tc.d ? octave/src/Cell.d ? octave/src/DASPK-opts.cc ? octave/src/DASRT-opts.cc ? octave/src/DASSL-opts.cc ? octave/src/DOCSTRINGS ? octave/src/LSODE-opts.cc ? octave/src/Makefile ? octave/src/NLEqn-opts.cc ? octave/src/ODESSA-opts.cc ? octave/src/Quad-opts.cc ? octave/src/balance.d ? octave/src/balance.df ? octave/src/besselj.d ? octave/src/besselj.df ? octave/src/betainc.d ? octave/src/betainc.df ? octave/src/builtins.cc ? octave/src/builtins.d ? octave/src/c-file-ptr-stream.d ? octave/src/chol.d ? octave/src/chol.df ? octave/src/colloc.d ? octave/src/colloc.df ? octave/src/comment-list.d ? octave/src/cutils.d ? octave/src/daspk.d ? octave/src/daspk.df ? octave/src/dasrt.d ? octave/src/dasrt.df ? octave/src/dassl.d ? octave/src/dassl.df ? octave/src/data.d ? octave/src/data.df ? octave/src/debug.d ? octave/src/debug.df ? octave/src/def-files ? octave/src/defaults.d ? octave/src/defaults.df ? octave/src/defaults.h ? octave/src/defun.d ? octave/src/defun.df ? octave/src/det.d ? octave/src/det.df ? octave/src/dirfns.d ? octave/src/dirfns.df ? octave/src/doc-files ? octave/src/dynamic-ld.d ? octave/src/dynamic-ld.df ? octave/src/eig.d ? octave/src/eig.df ? octave/src/error.d ? octave/src/error.df ? octave/src/expm.d ? octave/src/expm.df ? octave/src/fft.d ? octave/src/fft.df ? octave/src/fft2.d ? octave/src/fft2.df ? octave/src/file-io.d ? octave/src/file-io.df ? octave/src/filter.d ? octave/src/filter.df ? octave/src/find.d ? octave/src/find.df ? octave/src/fn-cache.d ? octave/src/fsolve.d ? octave/src/fsolve.df ? octave/src/gammainc.d ? octave/src/gammainc.df ? octave/src/gendoc ? octave/src/gendoc.cc ? octave/src/getgrent.d ? octave/src/getgrent.df ? octave/src/getpwent.d ? octave/src/getpwent.df ? octave/src/getrusage.d ? octave/src/getrusage.df ? octave/src/givens.d ? octave/src/givens.df ? octave/src/gripes.d ? octave/src/help.d ? octave/src/help.df ? octave/src/hess.d ? octave/src/hess.df ? octave/src/ifft.d ? octave/src/ifft.df ? octave/src/ifft2.d ? octave/src/ifft2.df ? octave/src/input.d ? octave/src/input.df ? octave/src/inv.d ? octave/src/inv.df ? octave/src/kron.d ? octave/src/kron.df ? octave/src/lex.cc ? octave/src/lex.d ? octave/src/lex.df ? octave/src/load-save.d ? octave/src/load-save.df ? octave/src/lpsolve.d ? octave/src/lpsolve.df ? octave/src/ls-hdf5.d ? octave/src/ls-mat-ascii.d ? octave/src/ls-mat4.d ? octave/src/ls-mat5.d ? octave/src/ls-oct-ascii.d ? octave/src/ls-oct-ascii.df ? octave/src/ls-oct-binary.d ? octave/src/ls-utils.d ? octave/src/lsode.d ? octave/src/lsode.df ? octave/src/lu.d ? octave/src/lu.df ? octave/src/main.d ? octave/src/mappers.d ? octave/src/mappers.df ? octave/src/matherr.d ? octave/src/minmax.d ? octave/src/minmax.df ? octave/src/oct-conf.h ? octave/src/oct-fstrm.d ? octave/src/oct-gperf.h ? octave/src/oct-hist.d ? octave/src/oct-hist.df ? octave/src/oct-iostrm.d ? octave/src/oct-lvalue.d ? octave/src/oct-map.d ? octave/src/oct-obj.d ? octave/src/oct-prcstrm.d ? octave/src/oct-procbuf.d ? octave/src/oct-procbuf.df ? octave/src/oct-stdstrm.d ? octave/src/oct-stream.d ? octave/src/oct-strstrm.d ? octave/src/octave ? octave/src/octave.d ? octave/src/odessa.d ? octave/src/odessa.df ? octave/src/op-b-b.d ? octave/src/op-b-bm.d ? octave/src/op-bm-b.d ? octave/src/op-bm-bm.d ? octave/src/op-cell.d ? octave/src/op-chm.d ? octave/src/op-cm-cm.d ? octave/src/op-cm-cs.d ? octave/src/op-cm-m.d ? octave/src/op-cm-s.d ? octave/src/op-cs-cm.d ? octave/src/op-cs-cs.d ? octave/src/op-cs-m.d ? octave/src/op-cs-s.d ? octave/src/op-fcn-handle.d ? octave/src/op-fil-b.d ? octave/src/op-fil-bm.d ? octave/src/op-fil-cm.d ? octave/src/op-fil-cs.d ? octave/src/op-fil-lis.d ? octave/src/op-fil-m.d ? octave/src/op-fil-rec.d ? octave/src/op-fil-s.d ? octave/src/op-fil-str.d ? octave/src/op-list.d ? octave/src/op-m-cm.d ? octave/src/op-m-cs.d ? octave/src/op-m-m.d ? octave/src/op-m-s.d ? octave/src/op-range.d ? octave/src/op-s-cm.d ? octave/src/op-s-cs.d ? octave/src/op-s-m.d ? octave/src/op-s-s.d ? octave/src/op-str-m.d ? octave/src/op-str-s.d ? octave/src/op-str-str.d ? octave/src/op-streamoff.d ? octave/src/ops.cc ? octave/src/ops.d ? octave/src/ov-base-mat.d ? octave/src/ov-base-scalar.d ? octave/src/ov-base.d ? octave/src/ov-bool-mat.d ? octave/src/ov-bool.d ? octave/src/ov-builtin.d ? octave/src/ov-cell.d ? octave/src/ov-cell.df ? octave/src/ov-ch-mat.d ? octave/src/ov-colon.d ? octave/src/ov-complex.d ? octave/src/ov-cs-list.d ? octave/src/ov-cx-mat.d ? octave/src/ov-dld-fcn.d ? octave/src/ov-fcn-handle.d ? octave/src/ov-fcn-handle.df ? octave/src/ov-fcn.d ? octave/src/ov-file.d ? octave/src/ov-list.d ? octave/src/ov-list.df ? octave/src/ov-mapper.d ? octave/src/ov-range.d ? octave/src/ov-re-mat.d ? octave/src/ov-scalar.d ? octave/src/ov-str-mat.d ? octave/src/ov-streamoff.d ? octave/src/ov-streamoff.df ? octave/src/ov-struct.d ? octave/src/ov-struct.df ? octave/src/ov-typeinfo.d ? octave/src/ov-typeinfo.df ? octave/src/ov-usr-fcn.d ? octave/src/ov-usr-fcn.df ? octave/src/ov-va-args.d ? octave/src/ov.d ? octave/src/ov.df ? octave/src/pager.d ? octave/src/pager.df ? octave/src/parse.cc ? octave/src/parse.d ? octave/src/parse.df ? octave/src/pinv.d ? octave/src/pinv.df ? octave/src/pr-output.d ? octave/src/pr-output.df ? octave/src/procstream.d ? octave/src/pt-arg-list.d ? octave/src/pt-arg-list.df ? octave/src/pt-assign.d ? octave/src/pt-assign.df ? octave/src/pt-binop.d ? octave/src/pt-bp.d ? octave/src/pt-cell.d ? octave/src/pt-check.d ? octave/src/pt-cmd.d ? octave/src/pt-colon.d ? octave/src/pt-const.d ? octave/src/pt-decl.d ? octave/src/pt-except.d ? octave/src/pt-exp.d ? octave/src/pt-fcn-handle.d ? octave/src/pt-id.d ? octave/src/pt-idx.d ? octave/src/pt-jump.d ? octave/src/pt-loop.d ? octave/src/pt-mat.d ? octave/src/pt-mat.df ? octave/src/pt-misc.d ? octave/src/pt-misc.df ? octave/src/pt-plot.d ? octave/src/pt-plot.df ? octave/src/pt-pr-code.d ? octave/src/pt-select.d ? octave/src/pt-stmt.d ? octave/src/pt-unop.d ? octave/src/pt.d ? octave/src/qr.d ? octave/src/qr.df ? octave/src/quad.d ? octave/src/quad.df ? octave/src/qz.d ? octave/src/qz.df ? octave/src/rand.d ? octave/src/rand.df ? octave/src/schur.d ? octave/src/schur.df ? octave/src/sighandlers.d ? octave/src/sighandlers.df ? octave/src/siglist.d ? octave/src/sort.d ? octave/src/sort.df ? octave/src/sqrtm.d ? octave/src/sqrtm.df ? octave/src/stamp-liboctave-prereq ? octave/src/stamp-oct-links ? octave/src/stamp-prereq ? octave/src/strcasecmp.d ? octave/src/strfns.d ? octave/src/strfns.df ? octave/src/strncase.d ? octave/src/svd.d ? octave/src/svd.df ? octave/src/syl.d ? octave/src/syl.df ? octave/src/symtab.d ? octave/src/symtab.df ? octave/src/syscalls.d ? octave/src/syscalls.df ? octave/src/sysdep.d ? octave/src/sysdep.df ? octave/src/time.d ? octave/src/time.df ? octave/src/token.d ? octave/src/toplev.d ? octave/src/toplev.df ? octave/src/unwind-prot.d ? octave/src/utils.d ? octave/src/utils.df ? octave/src/var-files ? octave/src/variables.d ? octave/src/variables.df ? octave/src/xdiv.d ? octave/src/xpow.d ? octave/src/y.output ? octave/src/y.tab.h ? octave/test/Makefile Index: octave/ChangeLog =================================================================== RCS file: /cvs/octave/ChangeLog,v retrieving revision 1.396 diff -c -r1.396 ChangeLog *** octave/ChangeLog 2004/01/29 18:38:49 1.396 --- octave/ChangeLog 2004/02/04 04:03:42 *************** *** 1,3 **** --- 1,73 ---- + 2004-02-04 Øyvind Kristiansen + + * symtab.cc + New includes: gripes.h, lo-mappers.h,pr-output.h + (symbol_record::make_dimensions_string): New method + used by print_symbol_info_line and maybe_list + (symbol_record::print_symbol_info_line): Changes related to + built-in variables who_traditional and who_print_dims. + Affects output from who and whos. Dimensions of matrices are + written in any number of dimensions (controlled by who_print_dims). + (symbol_record::maybe_list): Ditto. + (who_traditional, Vwho_traditional): New built-in variable + (who_print_dims, Vwho_print_dims): New built-in variable + + * symtab.h + (is_matrix_type, compute_size): New methods in symbol_record and + symbol_record::symbol_def + (who_traditional, Vwho_traditional, who_print_dims, + Vwho_print_dims): See symtab.cc + + * Cell.cc, Cell.h + New includes: Array-util.h, dim-vector.h + (Cell::compute_size): New method + + * ov-base.h + (octave_base_value::compute_size): New method + + * ov-base-mat.cc, ov-base-mat.h + (octave_base_matrix::compute_size): New method + + * ov-base-nd-array.h + (octave_base_nd_array::compute_size): New method + + * ov-base-scalar.cc, ov-base_scalar.h + (octave_base_scalar::compute_size): New method + + * ov-cell.cc, ov-cell.h + New include: Array-util.h + (octave_cell::compute_size): New method + + * ov-colon.h + (octave_magic_colon::compute_size): New method + + * ov-cs-list.cc, ov-cs-list.h + (octave_cs_list::compute_size): New method + + * ov-fcn.h + (octave_function::compute_size): New method + + * ov-file.cc, ov-file.h + (octave_file::compute_size): New method + + * ov-range.h + (octave_range::compute_size): New method + + * ov-struct.cc, ov-struct.h + (octave_struct::compute_size): New method + + * ov-va-args.h + (octave_all_va_args::compute_size): New method + + * ov.cc, ov.h + (octave_value::compute_size): New method + + * variables.cc + (do_who): Modified. Option -global added to who and whos. + + * Array.h, Array.cc + (Array::compute_size): New method + 2004-01-29 John W. Eaton * emacs/octave-mod.el: If line-end-position is not defined, Index: octave/liboctave/Array.cc =================================================================== RCS file: /cvs/octave/liboctave/Array.cc,v retrieving revision 1.86 diff -c -r1.86 Array.cc *** octave/liboctave/Array.cc 2004/01/23 03:09:59 1.86 --- octave/liboctave/Array.cc 2004/02/04 04:03:43 *************** *** 237,242 **** --- 237,250 ---- #undef MALLOC_OVERHEAD template + void + Array::compute_size (long& elements, long& bytes) const + { + elements = nelem (); + bytes = sizeof (T) * elements; + } + + template int Array::compute_index (const Array& ra_idx) const { Index: octave/liboctave/Array.h =================================================================== RCS file: /cvs/octave/liboctave/Array.h,v retrieving revision 1.83 diff -c -r1.83 Array.h *** octave/liboctave/Array.h 2004/01/22 00:01:09 1.83 --- octave/liboctave/Array.h 2004/02/04 04:03:44 *************** *** 256,261 **** --- 256,263 ---- static int get_size (int r, int c, int p); static int get_size (const dim_vector& dv); + void compute_size (long& elements, long& bytes) const; + int compute_index (const Array& ra_idx) const; T range_error (const char *fcn, int n) const; Index: octave/src/Cell.cc =================================================================== RCS file: /cvs/octave/src/Cell.cc,v retrieving revision 1.10 diff -c -r1.10 Cell.cc *** octave/src/Cell.cc 2003/11/15 12:51:20 1.10 --- octave/src/Cell.cc 2004/02/04 04:03:44 *************** *** 29,36 **** --- 29,38 ---- #endif #include "idx-vector.h" + #include "Array-util.h" #include "Cell.h" + #include "dim-vector.h" Cell::Cell (const string_vector& sv) : ArrayN () *************** *** 85,90 **** --- 87,113 ---- } return retval; + } + + void + Cell::compute_size (long &elements, long &bytes) const + { + long elements1, bytes1; + int nr_elems = nelem (); + + elements = 0; + bytes = 0; + + for (int i = 0; i < nr_elems; i++) + { + // Compute size of every element in the array + + octave_value val; + val = elem (i); + val.compute_size (elements1, bytes1); + elements += elements1; + bytes += bytes1; + } } Cell& Index: octave/src/Cell.h =================================================================== RCS file: /cvs/octave/src/Cell.h,v retrieving revision 1.17 diff -c -r1.17 Cell.h *** octave/src/Cell.h 2004/01/21 19:55:36 1.17 --- octave/src/Cell.h 2004/02/04 04:03:44 *************** *** 96,101 **** --- 96,103 ---- // XXX FIXME XXX boolMatrix any (int dim = 0) const { return boolMatrix (); } + void compute_size (long &elements, long &bytes) const; + // XXX FIXME XXX bool is_true (void) const { return false; } Index: octave/src/ov-base-mat.cc =================================================================== RCS file: /cvs/octave/src/ov-base-mat.cc,v retrieving revision 1.25 diff -c -r1.25 ov-base-mat.cc *** octave/src/ov-base-mat.cc 2003/11/24 18:56:35 1.25 --- octave/src/ov-base-mat.cc 2004/02/04 04:03:44 *************** *** 202,207 **** --- 202,214 ---- } template + void + octave_base_matrix::compute_size (long &elements, long &bytes) const + { + matrix.compute_size (elements, bytes); + } + + template bool octave_base_matrix::print_as_scalar (void) const { Index: octave/src/ov-base-mat.h =================================================================== RCS file: /cvs/octave/src/ov-base-mat.h,v retrieving revision 1.29 diff -c -r1.29 ov-base-mat.h *** octave/src/ov-base-mat.h 2003/12/16 16:47:52 1.29 --- octave/src/ov-base-mat.h 2004/02/04 04:03:45 *************** *** 120,125 **** --- 120,127 ---- void print_info (std::ostream& os, const std::string& prefix) const; + void compute_size (long &elements, long &bytes) const; + protected: MT matrix; Index: octave/src/ov-base-nd-array.h =================================================================== RCS file: /cvs/octave/src/ov-base-nd-array.h,v retrieving revision 1.5 diff -c -r1.5 ov-base-nd-array.h *** octave/src/ov-base-nd-array.h 2002/11/20 16:56:48 1.5 --- octave/src/ov-base-nd-array.h 2004/02/04 04:03:45 *************** *** 80,85 **** --- 80,87 ---- virtual bool print_as_scalar (void) const; + void compute_size (long &elements, long& bytes) const { elements = 1; bytes = 0; } + void print (std::ostream& os, bool pr_as_read_syntax = false) const; void print_raw (std::ostream& os, bool pr_as_read_syntax = false) const; Index: octave/src/ov-base-scalar.cc =================================================================== RCS file: /cvs/octave/src/ov-base-scalar.cc,v retrieving revision 1.10 diff -c -r1.10 ov-base-scalar.cc *** octave/src/ov-base-scalar.cc 2002/12/30 23:05:27 1.10 --- octave/src/ov-base-scalar.cc 2004/02/04 04:03:45 *************** *** 112,117 **** --- 112,125 ---- template void + octave_base_scalar::compute_size (long& elements, long& bytes) const + { + elements = 1; + bytes = sizeof (ST); + } + + template + void octave_base_scalar::print (std::ostream& os, bool pr_as_read_syntax) const { print_raw (os, pr_as_read_syntax); *************** *** 134,140 **** { indent (os); os << name << " = "; ! return false; } /* --- 142,148 ---- { indent (os); os << name << " = "; ! return false; } /* Index: octave/src/ov-base-scalar.h =================================================================== RCS file: /cvs/octave/src/ov-base-scalar.h,v retrieving revision 1.16 diff -c -r1.16 ov-base-scalar.h *** octave/src/ov-base-scalar.h 2003/11/25 05:41:36 1.16 --- octave/src/ov-base-scalar.h 2004/02/04 04:03:45 *************** *** 89,94 **** --- 89,96 ---- bool is_true (void) const { return (scalar != 0.0); } + void compute_size (long& elements, long& bytes) const; + void print (std::ostream& os, bool pr_as_read_syntax = false) const; void print_raw (std::ostream& os, bool pr_as_read_syntax = false) const; Index: octave/src/ov-base.h =================================================================== RCS file: /cvs/octave/src/ov-base.h,v retrieving revision 1.66 diff -c -r1.66 ov-base.h *** octave/src/ov-base.h 2004/01/21 03:28:31 1.66 --- octave/src/ov-base.h 2004/02/04 04:03:45 *************** *** 254,259 **** --- 254,261 ---- void print_info (std::ostream& os, const std::string& prefix) const; + void compute_size (long& elements, long& bytes) const { elements = 1; bytes = 0; } + bool save_ascii (std::ostream& os, bool& infnan_warned, bool strip_nan_and_inf); Index: octave/src/ov-cell.cc =================================================================== RCS file: /cvs/octave/src/ov-cell.cc,v retrieving revision 1.35 diff -c -r1.35 ov-cell.cc *** octave/src/ov-cell.cc 2004/01/23 14:22:37 1.35 --- octave/src/ov-cell.cc 2004/02/04 04:03:45 *************** *** 51,56 **** --- 51,58 ---- #include "ls-hdf5.h" #include "ls-utils.h" + #include "Array-util.h" + template class octave_base_matrix; DEFINE_OCTAVE_ALLOCATOR (octave_cell); *************** *** 394,399 **** --- 396,407 ---- os << "{" << dv.str () << " Cell Array}"; newline (os); } + } + + void + octave_cell::compute_size (long& elements, long& bytes) const + { + matrix.compute_size (elements, bytes); } #define CELL_ELT_TAG "" Index: octave/src/ov-cell.h =================================================================== RCS file: /cvs/octave/src/ov-cell.h,v retrieving revision 1.23 diff -c -r1.23 ov-cell.h *** octave/src/ov-cell.h 2004/01/06 21:53:34 1.23 --- octave/src/ov-cell.h 2004/02/04 04:03:45 *************** *** 110,115 **** --- 110,116 ---- void print_raw (std::ostream& os, bool pr_as_read_syntax = false) const; + void compute_size (long &elements, long &bytes) const; bool save_ascii (std::ostream& os, bool& infnan_warned, bool strip_nan_and_inf); Index: octave/src/ov-colon.h =================================================================== RCS file: /cvs/octave/src/ov-colon.h,v retrieving revision 1.10 diff -c -r1.10 ov-colon.h *** octave/src/ov-colon.h 2002/05/15 03:21:00 1.10 --- octave/src/ov-colon.h 2004/02/04 04:03:45 *************** *** 70,75 **** --- 70,77 ---- bool valid_as_zero_index (void) const { return false; } + void compute_size (long& elements, long& bytes) const { elements = 1; bytes = 0; } + void print (std::ostream& os, bool pr_as_read_syntax = false) const; void print_raw (std::ostream& os, bool pr_as_read_syntax = false) const; Index: octave/src/ov-cs-list.cc =================================================================== RCS file: /cvs/octave/src/ov-cs-list.cc,v retrieving revision 1.13 diff -c -r1.13 ov-cs-list.cc *** octave/src/ov-cs-list.cc 2003/11/25 06:22:02 1.13 --- octave/src/ov-cs-list.cc 2004/02/04 04:03:45 *************** *** 60,65 **** --- 60,81 ---- } void + octave_cs_list::compute_size (long &elements, long &bytes) const + { + int n = lst.length (); + long elements1, bytes1; + + for (int i = 0; i < n; i++) + { + octave_value val = lst (i); + + val.compute_size(elements1, bytes1); + elements += elements1; + bytes += bytes1; + } + } + + void octave_cs_list::print_raw (std::ostream& os, bool) const { unwind_protect::begin_frame ("octave_cs_list_print"); Index: octave/src/ov-cs-list.h =================================================================== RCS file: /cvs/octave/src/ov-cs-list.h,v retrieving revision 1.13 diff -c -r1.13 ov-cs-list.h *** octave/src/ov-cs-list.h 2003/11/25 06:22:02 1.13 --- octave/src/ov-cs-list.h 2004/02/04 04:03:45 *************** *** 77,82 **** --- 77,84 ---- octave_value_list list_value (void) const { return lst; } + void compute_size (long &elements, long &bytes) const; + void print (std::ostream& os, bool) const; void print_raw (std::ostream& os, bool pr_as_read_syntax = false) const; Index: octave/src/ov-fcn.h =================================================================== RCS file: /cvs/octave/src/ov-fcn.h,v retrieving revision 1.17 diff -c -r1.17 ov-fcn.h *** octave/src/ov-fcn.h 2003/11/23 08:07:53 1.17 --- octave/src/ov-fcn.h 2004/02/04 04:03:46 *************** *** 80,85 **** --- 80,87 ---- virtual void accept (tree_walker&) { } + void compute_size (long& elements, long& bytes) const { elements = 1; bytes = 0; } + protected: octave_function (const std::string& nm, const std::string& ds) Index: octave/src/ov-file.cc =================================================================== RCS file: /cvs/octave/src/ov-file.cc,v retrieving revision 1.14 diff -c -r1.14 ov-file.cc *** octave/src/ov-file.cc 2003/11/22 12:25:44 1.14 --- octave/src/ov-file.cc 2004/02/04 04:03:46 *************** *** 63,68 **** --- 63,75 ---- } void + octave_file::compute_size (long& elements, long& bytes) const + { + elements = 1; + bytes = sizeof (int); // Size of number -- this could be more accurate + } + + void octave_file::print_raw (std::ostream& os, bool) const { indent (os); os << "{"; newline (os); Index: octave/src/ov-file.h =================================================================== RCS file: /cvs/octave/src/ov-file.h,v retrieving revision 1.14 diff -c -r1.14 ov-file.h *** octave/src/ov-file.h 2003/11/14 19:49:56 1.14 --- octave/src/ov-file.h 2004/02/04 04:03:46 *************** *** 93,98 **** --- 93,100 ---- octave_value any (int = 0) const { return (number != 0.0); } + void compute_size (long& elements, long& bytes) const; + void print (std::ostream& os, bool pr_as_read_syntax = false) const; void print_raw (std::ostream& os, bool pr_as_read_syntax = false) const; Index: octave/src/ov-range.h =================================================================== RCS file: /cvs/octave/src/ov-range.h,v retrieving revision 1.38 diff -c -r1.38 ov-range.h *** octave/src/ov-range.h 2004/01/06 21:53:34 1.38 --- octave/src/ov-range.h 2004/02/04 04:03:46 *************** *** 165,170 **** --- 165,175 ---- octave_value convert_to_str_internal (bool pad, bool force) const; + int size_of_element (void) const { return sizeof (Range); } + + void compute_size (long &elements, long &bytes) const + { bytes = size_of_element (); elements = 1; } + void print (std::ostream& os, bool pr_as_read_syntax = false) const; void print_raw (std::ostream& os, bool pr_as_read_syntax = false) const; Index: octave/src/ov-struct.cc =================================================================== RCS file: /cvs/octave/src/ov-struct.cc,v retrieving revision 1.39 diff -c -r1.39 ov-struct.cc *** octave/src/ov-struct.cc 2004/01/15 02:11:59 1.39 --- octave/src/ov-struct.cc 2004/02/04 04:03:46 *************** *** 352,357 **** --- 352,380 ---- } void + octave_struct::compute_size (long &elements, long &bytes) const + { + // Compute total size in bytes and elements of all the map + + long bytes1, elements1; + elements = 0; + bytes = 0; + + int n = map.numel (); + + for (Octave_map::const_iterator p = map.begin (); p != map.end (); p++) + { + Cell val = map.contents (p); + // Follow syntax is strange ... + octave_value tmp = (n == 1) ? octave_value (val, false) : octave_value (val, true); + + tmp.compute_size (elements1, bytes1); + elements += elements1; + bytes += bytes1; + } + } + + void octave_struct::print (std::ostream& os, bool) const { print_raw (os); Index: octave/src/ov-struct.h =================================================================== RCS file: /cvs/octave/src/ov-struct.h,v retrieving revision 1.27 diff -c -r1.27 ov-struct.h *** octave/src/ov-struct.h 2004/01/06 21:53:34 1.27 --- octave/src/ov-struct.h 2004/02/04 04:03:46 *************** *** 101,106 **** --- 101,108 ---- string_vector map_keys (void) const { return map.keys (); } + void compute_size (long &elements, long &bytes) const; + void print (std::ostream& os, bool pr_as_read_syntax = false) const; void print_raw (std::ostream& os, bool pr_as_read_syntax = false) const; Index: octave/src/ov-va-args.h =================================================================== RCS file: /cvs/octave/src/ov-va-args.h,v retrieving revision 1.9 diff -c -r1.9 ov-va-args.h *** octave/src/ov-va-args.h 2002/05/15 03:21:01 1.9 --- octave/src/ov-va-args.h 2004/02/04 04:03:46 *************** *** 62,67 **** --- 62,69 ---- bool is_all_va_args (void) const { return true; } + void compute_size (long& elements, long& bytes) const { elements = 1; bytes = 0; } + void print (std::ostream& os, bool pr_as_read_syntax = false) const; void print_raw (std::ostream& os, bool pr_as_read_syntax = false) const; Index: octave/src/ov.cc =================================================================== RCS file: /cvs/octave/src/ov.cc,v retrieving revision 1.103 diff -c -r1.103 ov.cc *** octave/src/ov.cc 2004/01/21 03:28:31 1.103 --- octave/src/ov.cc 2004/02/04 04:03:47 *************** *** 1888,1893 **** --- 1888,1907 ---- return retval; } + void + octave_value::compute_size (long &elements, long &bytes) const + { + if (rep && count > 1) + { + rep->compute_size (elements, bytes); + } + else + { + elements = 1; + bytes = sizeof (octave_value); + } + } + void install_types (void) { Index: octave/src/ov.h =================================================================== RCS file: /cvs/octave/src/ov.h,v retrieving revision 1.98 diff -c -r1.98 ov.h *** octave/src/ov.h 2004/01/21 03:28:31 1.98 --- octave/src/ov.h 2004/02/04 04:03:47 *************** *** 336,341 **** --- 336,343 ---- int ndims (void) const; + virtual void compute_size (long &elements, long &bytes) const; + int numel (void) const; virtual octave_value reshape (const dim_vector& dv) const Index: octave/src/symtab.cc =================================================================== RCS file: /cvs/octave/src/symtab.cc,v retrieving revision 1.99 diff -c -r1.99 symtab.cc *** octave/src/symtab.cc 2003/12/18 15:35:09 1.99 --- octave/src/symtab.cc 2004/02/04 04:03:48 *************** *** 47,52 **** --- 47,55 ---- #include "utils.h" #include "variables.h" + #include "gripes.h" + #include "lo-mappers.h" + unsigned long int symbol_table::symtab_count = 0; // Should variables be allowed to hide functions of the same name? A *************** *** 57,62 **** --- 60,75 ---- // Nonzero means we print debugging info about symbol table lookups. static int Vdebug_symtab_lookups; + // Sets the number of dimensions that are to be printed by who or whos + int Vwho_print_dims; + + // If true, set output of who and whos to print names at the + // start of the lines. + // If false, set output of who and whos to print names + // at the ends of the lines. + // It also effects other aspects of the printing of symbols. + bool Vwho_traditional; + octave_allocator symbol_record::symbol_def::allocator (sizeof (symbol_record::symbol_def)); *************** *** 410,442 **** } } ! void ! symbol_record::print_symbol_info_line (std::ostream& os) const { ! os << (is_read_only () ? " r-" : " rw") ! << (is_static () || is_eternal () ? "-" : "d") ! << " " ! << std::setiosflags (std::ios::left) << std::setw (24) ! << type_name () . c_str (); ! os << std::resetiosflags (std::ios::left); ! int nr = rows (); ! int nc = columns (); ! if (nr < 0) ! os << " -"; ! else ! os << std::setiosflags (std::ios::right) << std::setw (7) << nr; ! if (nc < 0) ! os << " -"; ! else ! os << std::setiosflags (std::ios::right) << std::setw (7) << nc; ! os << std::resetiosflags (std::ios::right); ! os << " " << name () << "\n"; } void --- 423,560 ---- } } ! std::string ! symbol_record::make_dimensions_string (unsigned int& first_param_space, ! unsigned int& total_space) const { ! // This method makes the dimensions-string, which is a string that ! // how large a object is, dimensionally. ! // Example: a is a 2x3 matrix ! long dim = 0; ! // Calculating dimensions ! std::string dim_str = ""; ! std::stringstream ss; ! dim_vector dimensions; ! if (is_variable ()) ! { ! if (is_matrix_type ()) ! { ! dimensions = dims (); ! dim = dimensions.length (); ! } ! } ! first_param_space = (first_param_space >= 1 ? first_param_space : 1); ! total_space = (total_space >= 1 ? total_space : 1); ! // Preparing dimension string ! if (dim <= Vwho_print_dims || Vwho_print_dims < 0) ! { ! // Only printing the dimension string as: axbxc... ! if (dim == 0) ! { ! if (Vwho_traditional) ! ss << setiosflags (std::ios::right) << std::setw (first_param_space) ! << "1" << resetiosflags (std::ios::right) << "x1"; ! else ss << "1"; ! } ! else ! { ! for (int i = 0; i < dim; i++) ! { ! if ((i == 0) && Vwho_traditional) ! { ! if (dim == 1) ! // Looks like this is not going to happen in Octave, but ... ! ss << setiosflags (std::ios::right) << std::setw (first_param_space) ! << "1" << resetiosflags (std::ios::right) << "x" << dimensions (i); ! else ! { ! ss << setiosflags (std::ios::right) << std::setw (first_param_space) ! << dimensions (i) << resetiosflags (std::ios::right); ! dim_str = ss.str (); ! first_param_space = (dim_str.length () > first_param_space ? ! dim_str.length () : first_param_space); ! } ! } ! else ! ss << dimensions(i); ! if (i < dim - 1 && dim != 1) ! ss << "x"; ! } ! } ! } ! else ! { ! // Printing dimension string as: a-D ! if (Vwho_traditional) ! { ! ss << setiosflags (std::ios::right) << std::setw (first_param_space) ! << dim << resetiosflags (std::ios::right); ! dim_str = ss.str (); ! first_param_space = (dim_str.length () > first_param_space ? ! dim_str.length () : first_param_space); ! } ! else ss << dim; ! ! ss << "-D"; ! } ! ! dim_str = ss.str (); ! total_space = (dim_str.length () > total_space ? ! dim_str.length () : total_space); ! ! return dim_str; ! } ! ! void ! symbol_record::print_symbol_info_line (std::ostream& os, unsigned int name_length, ! long &elements, long &bytes, ! unsigned int& first_param_space, ! unsigned int& total_space) const ! { ! // This method prints a line of information on a given symbol ! ! if (Vwho_traditional) ! { ! compute_size (elements, bytes); ! ! // -Printing variable name ! os << " " ! << std::setiosflags (std::ios::left) << std::setw (name_length) ! << name () ! << std::resetiosflags (std::ios::left) ! // -Printing dimensions ! << std::setiosflags (std::ios::left) ! << std::setw(total_space) << make_dimensions_string (first_param_space, total_space) ! << std::resetiosflags (std::ios::left) << " " ! // -Printing bytes ! << std::setiosflags (std::ios::right) << std::setw (13) ! << bytes ! << std::resetiosflags (std::ios::right) ! // -Printing type name ! << " " << type_name () . c_str () ! << "\n"; ! } ! else ! { ! // Printing info the Octave way ! // who_traditional = false ! os << (is_read_only () ? " r-" : " rw") ! << (is_static () || is_eternal () ? "-" : "d") ! << " " ! << std::setiosflags (std::ios::left) << std::setw (24) ! << type_name () . c_str () ! << std::resetiosflags (std::ios::left) ! << std::setiosflags (std::ios::right) << std::setw (total_space) ! << make_dimensions_string (first_param_space, total_space) ! << std::resetiosflags (std::ios::right) ! << " " << name () << "\n"; ! } } void *************** *** 913,918 **** --- 1031,1042 ---- std::ostream& os, bool show_verbose, unsigned type, unsigned scope) { + // This method prints information for sets of symbols, but only one set + // at a time (like, for instance: all variables, og all + // built-in-functions) + + // This method invokes print_symbol_info_line to print info on every symbol + int status = 0; if (show_verbose) *************** *** 923,937 **** if (len > 0) { ! os << "\n" << header << "\n\n" ! << "prot type rows cols name\n" ! << "==== ==== ==== ==== ====\n"; symbols.qsort (maybe_list_cmp_fcn); for (int i = 0; i < len; i++) ! symbols(i)->print_symbol_info_line (os); status = 1; } } --- 1047,1132 ---- if (len > 0) { ! if (header[0] != 0) ! os << "\n" << header << "\n\n"; ! ! // First parameter in the dimensions vector will by default occupy 6 columns ! // Total space for Size will by default be 16 columns (traditionally) or 14 columns ! unsigned int name_length = 0, first_param_space = 6, total_space = 12; ! long elements = 0, bytes = 0, elements1, bytes1; ! ! std::string str; + if (Vwho_traditional) + total_space = 16; + symbols.qsort (maybe_list_cmp_fcn); + // Calculating necessary spacing for name-column and size-column for (int i = 0; i < len; i++) ! { ! str = symbols(i)->name (); ! if (str.length () > name_length) name_length = str.length (); ! ! symbols(i)->make_dimensions_string (first_param_space, total_space); ! } + if (Vwho_traditional) + { + // Continue calculating necessary spacing for columns + for (int i = 0; i < len; i++) + symbols(i)->make_dimensions_string (first_param_space, total_space); + + name_length += 2; // Adding space between two columns + name_length = ((name_length >= 5) ? name_length : 5); + + os << " " + << std::setiosflags (std::ios::left) + << std::setw (name_length) + << "Name" << std::resetiosflags (std::ios::left) + << std::setiosflags (std::ios::right) + << std::setw (3 + first_param_space) + << "Size" << std::resetiosflags (std::ios::right) + << std::setiosflags (std::ios::left) + << std::setw (total_space - first_param_space - 3) + << " " << std::resetiosflags (std::ios::left) + << std::setiosflags (std::ios::right) << std::setw (15) + << "Bytes" + << std::resetiosflags (std::ios::right) + << " Class\n\n"; + } + else + { + // who_traditional = false + + total_space += 2; + + os << "prot type " + << std::setiosflags (std::ios::right) << std::setw (total_space) + << "dimensions" << std::resetiosflags (std::ios::right) << " name\n" + << "==== ==== " + << std::setiosflags (std::ios::right) + << std::setw (total_space) << "==========" + << std::resetiosflags (std::ios::right) << " ====\n"; + + name_length = 0; + } + + for (int i = 0; i < len; i++) + { + symbols(i)->print_symbol_info_line (os, name_length, elements1, + bytes1, first_param_space, total_space); + elements += elements1; + bytes += bytes1; + } + + if (Vwho_traditional) + { + // who_style = traditional + os << "\nGrand total is " << elements + << " elements using " << bytes << " bytes\n"; + } + status = 1; } } *************** *** 940,950 **** string_vector symbols = name_list (argv, 1, type, scope); if (! symbols.empty ()) ! { ! os << "\n" << header << "\n\n"; symbols.list_in_columns (os); status = 1; } } --- 1135,1149 ---- string_vector symbols = name_list (argv, 1, type, scope); if (! symbols.empty ()) ! { ! if (Vwho_traditional) ! os << "\nYour variables are:\n\n"; symbols.list_in_columns (os); + if (Vwho_traditional) + os << "\n"; + status = 1; } } *************** *** 1107,1112 **** --- 1306,1337 ---- return 0; } + static int + who_print_dims (void) + { + double val; + if (builtin_real_scalar_variable ("who_print_dims", val) + && ! xisnan (val)) + { + int ival = NINT (val); + if (ival == val) + { + Vwho_print_dims = ival; + return 0; + } + } + gripe_invalid_value_specified ("who_print_dims"); + return -1; + } + + static int + who_traditional (void) + { + Vwho_traditional = check_preference ("who_traditional"); + + return 0; + } + void symbols_of_symtab (void) { *************** *** 1122,1128 **** "-*- texinfo -*-\n\ @defvr debug_symtab_lookups\n\ If the value of htis variable is nonzero, print debugging info when\n\ ! searching for symbols in the symbol tables"); } --- 1347,1377 ---- "-*- texinfo -*-\n\ @defvr debug_symtab_lookups\n\ If the value of htis variable is nonzero, print debugging info when\n\ ! searching for symbols in the symbol tables\n\ ! @end defvr"); ! ! DEFVAR (who_print_dims, -1.0, who_print_dims, ! "-*- texinfo -*-\n\ ! @defvr {Built-in Variable} who_print_dims\n\ ! The value of @code{who_print_dims} decides how many dimensions that are \n\ ! to be printed when issuing the @code{who} og @code{whos} commands. If\n\ ! dimensions of the object to be printed are less than or\n\ ! equal to @code{who_print_dims}, dimensions of the object are printed as\n\ ! X-D.\n\ ! Negative numbers means there is no limit.\n\ ! @end defvr\n\ ! @seealso {who_traditional}"); ! ! DEFVAR (who_traditional, false, who_traditional, ! "-*- texinfo -*-\n\ ! @defvr {Built-in Variable} who_traditional\n\ ! If the value of @code{who_traditional} is @code{TRUE}, variables are\n\ ! printed with the name of the variables at the start of the lines when @code{who} or @code{whos}\n\ ! are issued. If, however, the value of @code{who_traditional} is @code{FALSE}, variables\n\ ! are printed with the names of the variables at the end of the lines when these commands\n\ ! are issued. The default value is FALSE.\n\ ! @end defvr\n\ ! @seealso {who_print_dims}"); } Index: octave/src/symtab.h =================================================================== RCS file: /cvs/octave/src/symtab.h,v retrieving revision 1.66 diff -c -r1.66 symtab.h *** octave/src/symtab.h 2003/02/13 21:03:04 1.66 --- octave/src/symtab.h 2004/02/04 04:03:49 *************** *** 146,151 **** --- 146,160 ---- bool is_eternal (void) const { return eternal; } + bool is_matrix_type (void) const + { return definition.is_matrix_type (); } + + void compute_size (long &elements, long &bytes) const + { definition.compute_size (elements, bytes); } + + dim_vector dims (void) const + { return definition.dims (); } + int rows (void) const { return definition.rows (); } int columns (void) const { return definition.columns (); } *************** *** 325,330 **** --- 334,350 ---- bool is_static (void) const { return tagged_static; } void unmark_static (void) { tagged_static = false; } + bool is_matrix_type (void) const + { return definition->is_matrix_type (); } + + void compute_size (long &elements, long &bytes) const + { definition->compute_size (elements, bytes); } + + dim_vector dims (void) const { return definition->dims (); } + + std::string make_dimensions_string (unsigned int& first_param_space, + unsigned int& total_spacing) const; + int rows (void) const { return definition->rows (); } int columns (void) const { return definition->columns (); } *************** *** 351,357 **** void pop_context (void); ! void print_symbol_info_line (std::ostream& os) const; void print_info (std::ostream& os, const std::string& prefix = std::string ()) const; --- 371,380 ---- void pop_context (void); ! void print_symbol_info_line (std::ostream& os, unsigned int name_length, ! long &elements, long &bytes, ! unsigned int& first_param_space, ! unsigned int& total_space) const; void print_info (std::ostream& os, const std::string& prefix = std::string ()) const; *************** *** 519,524 **** --- 542,557 ---- symbol_table& operator = (const symbol_table&); }; + + // Sets the number of dimensions that are to be printed by who or whos + extern int Vwho_print_dims; + + // If "traditional", set output of who and whos to print names at the + // start of the lines. + // If "non-traditional", set output of who and whos to print names + // at the ends of the lines. + // It also effects other aspects of the printing of symbols. + extern bool Vwho_traditional; #endif Index: octave/src/variables.cc =================================================================== RCS file: /cvs/octave/src/variables.cc,v retrieving revision 1.255 diff -c -r1.255 variables.cc *** octave/src/variables.cc 2004/01/21 03:28:31 1.255 --- octave/src/variables.cc 2004/02/04 04:03:50 *************** *** 1109,1128 **** static octave_value do_who (int argc, const string_vector& argv, int return_list) { octave_value retval; bool show_builtins = false; bool show_functions = false; bool show_variables = false; bool show_verbose = false; std::string my_name = argv[0]; int i; for (i = 1; i < argc; i++) { ! if (argv[i] == "-all" || argv[i] == "-a") ! { show_builtins = true; show_functions = true; show_variables = true; --- 1109,1139 ---- static octave_value do_who (int argc, const string_vector& argv, int return_list) { + // XXX FIXME XXX -- unable to retrieve useful information + // from global variables + octave_value retval; bool show_builtins = false; bool show_functions = false; bool show_variables = false; bool show_verbose = false; + bool show_global = false; std::string my_name = argv[0]; + if (Vwho_traditional) + show_variables = true; + int i; for (i = 1; i < argc; i++) { ! if (argv[i] == "-global") ! { ! show_global = true; ! } ! else if (argv[i] == "-all" || argv[i] == "-a") ! { show_builtins = true; show_functions = true; show_variables = true; *************** *** 1235,1241 **** show_verbose, symbol_record::BUILTIN_VARIABLE, SYMTAB_ALL_SCOPES); pad_after += fbi_sym_tab->maybe_list ! ("*** built-in functions:", pats, octave_stdout, show_verbose, symbol_record::BUILTIN_FUNCTION, SYMTAB_ALL_SCOPES); } --- 1246,1252 ---- show_verbose, symbol_record::BUILTIN_VARIABLE, SYMTAB_ALL_SCOPES); pad_after += fbi_sym_tab->maybe_list ! ("*** built-in functions:", pats, octave_stdout, show_verbose, symbol_record::BUILTIN_FUNCTION, SYMTAB_ALL_SCOPES); } *************** *** 1254,1271 **** if (show_variables) { ! pad_after += curr_sym_tab->maybe_list ! ("*** local user variables:", pats, octave_stdout, ! show_verbose, symbol_record::USER_VARIABLE, SYMTAB_LOCAL_SCOPE); ! ! pad_after += curr_sym_tab->maybe_list ! ("*** globally visible user variables:", pats, ! octave_stdout, show_verbose, symbol_record::USER_VARIABLE, ! SYMTAB_GLOBAL_SCOPE); } - - if (pad_after) - octave_stdout << "\n"; } return retval; --- 1265,1305 ---- if (show_variables) { ! if (Vwho_traditional) ! { ! std::string header; ! unsigned scope; ! ! if(show_functions && (show_builtins || show_functions)) ! { ! if (show_global) ! header = "*** globally visible user variables:"; ! else ! header = "*** local and globally visible user variables:"; ! } ! else ! header = ""; ! ! scope = (show_global ? (SYMTAB_GLOBAL_SCOPE | SYMTAB_LOCAL_SCOPE) : SYMTAB_LOCAL_SCOPE); ! ! pad_after += curr_sym_tab->maybe_list ! (header.c_str (), pats, octave_stdout, show_verbose, ! symbol_record::USER_VARIABLE, ! SYMTAB_LOCAL_SCOPE | SYMTAB_GLOBAL_SCOPE); ! } ! else ! { ! pad_after += curr_sym_tab->maybe_list ! ("*** local user variables:", pats, octave_stdout, ! show_verbose, symbol_record::USER_VARIABLE, ! SYMTAB_LOCAL_SCOPE); ! ! pad_after += curr_sym_tab->maybe_list ! ("*** globally visible user variables:", pats, ! octave_stdout, show_verbose, ! symbol_record::USER_VARIABLE, SYMTAB_GLOBAL_SCOPE); ! } } } return retval; *************** *** 1299,1304 **** --- 1333,1341 ---- \n\ @item -variables\n\ List user-defined variables.\n\ + \n\ + @item -global\n\ + List global user-defined variables only.\n\ @end table\n\ \n\ Valid patterns are the same as described for the @code{clear} command\n\ *************** *** 1307,1313 **** visible in the local scope are displayed.\n\ \n\ The command @kbd{whos} is equivalent to @kbd{who -long}.\n\ ! @end deffn") { octave_value retval; --- 1344,1351 ---- visible in the local scope are displayed.\n\ \n\ The command @kbd{whos} is equivalent to @kbd{who -long}.\n\ ! @end deffn\n\ ! @seealso {who_traditional, who_print_dims, machine_readable}") { octave_value retval;