"Fossies" - the Fresh Open Source Software Archive

Member "TeXmacs-2.1.2-src/plugins/giac/progs/giac-menus.scm" (5 May 2022, 42411 Bytes) of package /linux/misc/TeXmacs-2.1.2-src.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Lisp source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the latest Fossies "Diffs" side-by-side code changes report for "giac-menus.scm": 2.1.1_vs_2.1.2.

    1 
    2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    3 ;;
    4 ;; MODULE      : giac-menus.scm
    5 ;; DESCRIPTION : Giac menus
    6 ;; COPYRIGHT   : (C) 1999  Bernard Parisse and Joris van der Hoeven
    7 ;;                   2021  Luka Marohnić
    8 ;;
    9 ;; This software falls under the GNU general public license version 3 or later.
   10 ;; It comes WITHOUT ANY WARRANTY WHATSOEVER. For details, see the file LICENSE
   11 ;; in the root directory or <http://www.gnu.org/licenses/gpl-3.0.html>.
   12 ;;
   13 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   14 
   15 (texmacs-module (giac-menus)
   16   (:use (utils plugins plugin-cmd)
   17     (doc help-funcs)
   18     (dynamic scripts-edit)
   19         (dynamic session-menu)
   20     (convert tools tmconcat)))
   21 
   22 (define (giac-spaces? t)
   23   (and (string? t) (in? t (list "" " " "  " "   " "    "))))
   24 
   25 (define (giac-output-simplify t)
   26   ;;(display* "Simplify " t "\n")
   27   (cond ((and (func? t 'concat) (== (length t) 4) (func? (cadr t) 'htab) (func? (caddr t) 'image))
   28          (plugin-output-std-simplify "giac" (caddr t)))
   29         ((and (func? t 'equation*) (func? (cAr t) 'document))
   30      `(math ,(plugin-output-std-simplify "giac" (cAr t))))
   31     ((match? t '(with "math-display" "true" :%1))
   32      (giac-output-simplify (cAr t)))
   33     ((match? t '(with "mode" "math" "math-display" "true" :%1))
   34      `(math ,(giac-output-simplify (cAr t))))
   35     ((func? t 'text 1)
   36      `(text ,(giac-output-simplify (cAr t))))
   37     ((func? t 'math 1)
   38      `(math ,(giac-output-simplify (cAr t))))
   39     ((func? t 'with 1)
   40      (giac-output-simplify (cAr t)))
   41     ((func? t 'with)
   42      (rcons (cDr t) (giac-output-simplify (cAr t))))
   43         ((and (func? t 'concat) (pair? (cdr t)) (giac-spaces? (cadr t)))
   44          (giac-output-simplify (cons (car t) (cddr t))))
   45     ((func? t 'concat)
   46      (apply tmconcat (map giac-output-simplify (cdr t))))
   47     (else (plugin-output-std-simplify "giac" t))))
   48 
   49 (define (giac-contains-output? t)
   50   (cond ((or (func? t 'equation*) (func? t 'image)) #t)
   51     ((or (func? t 'concat) (func? t 'document))
   52      (list-or (map giac-contains-output? (cdr t))))
   53     ((and (func? t 'with) (nnull? (cdr t)))
   54      (giac-contains-output? (cAr t)))
   55     ((or (func? t 'text 1) (func? t 'math 1))
   56      (giac-contains-output? (cAr t)))
   57     (else #f)))
   58 
   59 (tm-define (plugin-output-simplify name t)
   60   (:require (== name "giac"))
   61   ;;(display* "Simplify output " t "\n")
   62   (display "Plugin output simplify:\n")
   63   (display t)
   64   (display "\n")
   65   (if (func? t 'document)
   66       (with u (list-find (cdr t) giac-contains-output?)
   67     (if u (giac-output-simplify u) ""))
   68       (giac-output-simplify t)))
   69 
   70 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   71 ;; Insert Giac primitive
   72 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   73 
   74 (define (giac-cursor-pos l)
   75   (cond ((null? l) 0)
   76     ((null? (cdr l)) 1)
   77     ((and (== (car l) #\() (== (cadr l) #\))) 1)
   78     ((and (== (car l) #\() (== (cadr l) #\,)) 1)
   79     ((and (== (car l) #\,) (== (cadr l) #\))) 1)
   80     ((and (== (car l) #\,) (== (cadr l) #\,)) 1)
   81     (else (+ (giac-cursor-pos (cdr l)) 1))))
   82 
   83 (define (giac-insert s)
   84   (insert-go-to s (list (giac-cursor-pos (string->list s)))))
   85   
   86 (define (giac-apply fun . opts)
   87   (if (not-in-session?)
   88       (script-apply fun (cadr opts))
   89       (giac-insert (string-append fun (car opts)))))
   90 
   91 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   92 ;; Giac menu
   93 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   94 
   95 (menu-bind giac-functions-menu
   96   (if (not-in-session?)
   97       (link scripts-eval-menu)
   98       ---)
   99   (-> "Simplification"
  100       ("Normalize" (giac-apply "normal" "()" 1))
  101       ("Reduce rational" (giac-apply "ratnormal" "()" 1))
  102       ("Factorize" (giac-apply "factor" "()" 1))
  103       ("Decompose to partial fractions" (giac-apply "partfrac" "()" 1))
  104       ("Simplify" (giac-apply "simplify" "()" 1))
  105       ("Trigonometric simplification" (giac-apply "trigsimplify" "()" 1))
  106       ("Reduce the number of non-rational parameters" (giac-apply "tsimplify" "()" 1)))
  107   (-> "Solving"
  108       ("Solve equations/inequalities" (giac-apply "solve" "()" 1))
  109       ("Solve linear equations" (giac-apply "linsolve" "()" 2))
  110       ("Solve recurrences" (giac-apply "rsolve" "()" 3))
  111       ("Solve complex equations" (giac-apply "csolve" "()" 2))
  112       ("Solve ODE" (giac-apply "desolve" "()" 2))
  113       ("Solve Diophantine equation" (giac-apply "isolve" "()" 1)))
  114   (-> "Plotting"
  115       ("Function plot" (giac-apply "plotfunc" "()" 1))
  116       ("Parametric function plot" (giac-apply "plotparam" "()" 1))
  117       ("Polar plot" (giac-apply "plotpolar" "()" 1))
  118       ("Implicit curve plot" (giac-apply "implicitplot" "()" 1))
  119       ("Plot setup" (giac-apply "xyztrange" "()" 1)))
  120   ---
  121   (-> "Constants"
  122       ("Euler's number" (giac-insert "e"))
  123       ("Imaginary unit" (giac-insert "i"))
  124       ("Pi" (giac-insert "pi"))
  125       ("Euler-Mascheroni constant" (giac-insert "euler_gamma"))
  126       ("Positive infinity" (giac-insert "+infinity"))
  127       ("Negative infinity" (giac-insert "-infinity"))
  128       ("Unsigned infinity" (giac-insert "infinity"))
  129       ("Undefined symbol" (giac-insert "undef")))
  130   (-> "Physical units"
  131       (-> "Mass"
  132           ("Atomic mass unit" (giac-insert "_u"))
  133           ("Gram" (giac-insert "_g"))
  134           ("Kilogram" (giac-insert "_kg"))
  135           ("Metric ton" (giac-insert "_t"))
  136           ("Short ton" (giac-insert "_ton"))
  137           ("Long (UK) ton" (giac-insert "_tonUK"))
  138           ("Grain" (giac-insert "_grain"))
  139           ("Carat" (giac-insert "_ct"))
  140           ("Pound" (giac-insert "_lb"))
  141           ("Ounce" (giac-insert "_oz"))
  142           ("UK fluid ounce" (giac-insert "_ozUK"))
  143           ("US fluid ounce" (giac-insert "_ozfl"))
  144           ("Troy pound" (giac-insert "_lbt"))
  145           ("Troy ounce" (giac-insert "_ozt"))
  146           ("Slug" (giac-insert "_slug"))
  147       )
  148       (-> "Length"
  149           ("Meter" (giac-insert "_m"))
  150           ("Centimeter" (giac-insert "_cm"))
  151           ("Millimeter" (giac-insert "_mm"))
  152           ("Kilometer" (giac-insert "_km"))
  153           ("Inch" (giac-insert "_in"))
  154           ("Mil" (giac-insert "_mil"))
  155           ("Rod" (giac-insert "_rod"))
  156           ("International foot" (giac-insert "_ft"))
  157           ("Survey foot" (giac-insert "_ftUS"))
  158           ("International yard" (giac-insert "_yd"))
  159           ("International mile" (giac-insert "_mile"))
  160           ("US statute mile" (giac-insert "_miUS"))
  161           ("Nautical mile" (giac-insert "_mille"))
  162           ("Angstrom" (giac-insert "_Angstrom"))
  163           ("Astronomical unit" (giac-insert "_au"))
  164           ("Chain" (giac-insert "_chain"))
  165           ("Fathom" (giac-insert "_fath"))
  166           ("Board foot" (giac-insert "_fbm"))
  167           ("Fermi" (giac-insert "_fermi"))
  168           ("Light year" (giac-insert "_lyr"))
  169           ("Parsec" (giac-insert "_pc"))
  170       )
  171       (-> "Area"
  172           ("Are" (giac-insert "_a"))
  173           ("Hectare" (giac-insert "_ha"))
  174           ("Acre" (giac-insert "_acre"))
  175           ("Barn" (giac-insert "_b"))
  176           ("Square international mile" (giac-insert "_mi^2"))
  177       )
  178       (-> "Volume"
  179           ("Liter" (giac-insert "_l"))
  180           ("Milliliter" (giac-insert "_ml"))
  181           ("Barrel" (giac-insert "_bbl"))
  182           ("Bushel" (giac-insert "_bu"))
  183           ("US bushel" (giac-insert "_buUS"))
  184           ("US cup" (giac-insert "_cu"))
  185           ("Canadian gallon" (giac-insert "_galC"))
  186           ("UK gallon" (giac-insert "_galUK"))
  187           ("US gallon" (giac-insert "_galUS"))
  188           ("US liquid pint" (giac-insert "_liqpt"))
  189           ("UK pint" (giac-insert "_ptUK"))
  190           ("US peck" (giac-insert "_pk"))
  191           ("Quart" (giac-insert "_qt"))
  192           ("Stere" (giac-insert "_st"))
  193           ("Tablespoon" (giac-insert "_tbsp"))
  194           ("Teaspoon" (giac-insert "_tsp"))
  195       )
  196       (-> "Angle"
  197           ("Radian" (giac-insert "_rad"))
  198           ("Tour (2π radians)" (giac-insert "_tr"))
  199           ("Steradian" (giac-insert "_sr"))
  200           ("Degree" (giac-insert "_deg"))
  201           ("Minute of arc" (giac-insert "_arcmin"))
  202           ("Second of arc" (giac-insert "_arcs"))
  203           ("Grade" (giac-insert "_grad"))
  204       )
  205       (-> "Velocity"
  206           ("Kilometers per hour" (giac-insert "_kph"))
  207           ("Miles per hour" (giac-insert "_mph"))
  208           ("Nautical miles per hour" (giac-insert "_knot"))
  209           ("Revolutions per minute" (giac-insert "_rpm"))
  210       )
  211       (-> "Acceleration"
  212           ("Meters per second squared" (giac-insert "_m*_s^-2"))
  213           ("Gal" (giac-insert "_Gal"))
  214           ("Standard freefall" (giac-insert "_ga"))
  215       )
  216       (-> "Force, weight"
  217           ("Newton" (giac-insert "_N"))
  218           ("Dyne" (giac-insert "_dyn"))
  219           ("Poundal" (giac-insert "_pdl"))
  220           ("Gram-force" (giac-insert "_gf"))
  221           ("Pound-force" (giac-insert "_lbf"))
  222           ("Kilopound-force" (giac-insert "_kip"))
  223       )
  224       (-> "Pressure"
  225           ("Pascal" (giac-insert "_Pa"))
  226           ("Atmosphere" (giac-insert "_atm"))
  227           ("Bar" (giac-insert "_bar"))
  228           ("Inches of water (60°F)" (giac-insert "_inH2O"))
  229           ("Inches of mercury (0°C)" (giac-insert "_inHg"))
  230           ("Millimeters of mercury (0°C)" (giac-insert "_mmHg"))
  231           ("Pounds per square inch" (giac-insert "_psi"))
  232       )
  233       (-> "Energy, work, heat"
  234           ("British thermal unit (BTU)" (giac-insert "_Btu"))
  235           ("Joule" (giac-insert "_J"))
  236           ("Erg" (giac-insert "_erg"))
  237           ("Calorie" (giac-insert "_cal"))
  238           ("Kilocalorie" (giac-insert "_Kcal"))
  239           ("Electronvolt" (giac-insert "_eV"))
  240           ("Megaelectronvolt" (giac-insert "_MeV"))
  241           ("Watt-hour" (giac-insert "_Wh"))
  242           ("Kilowatt-hour" (giac-insert "_kWh"))
  243           ("Ton of coal equivalent" (giac-insert "_tec"))
  244           ("Ton of oil equivalent" (giac-insert "_tep"))
  245           ("Liter of oil equivalent" (giac-insert "_lep"))
  246           ("Barrel of oil equivalent" (giac-insert "_bblep"))
  247           ("EEC therm" (giac-insert "_therm"))
  248       )
  249       (-> "Power"
  250           ("Watt" (giac-insert "_W"))
  251           ("Megawatt" (giac-insert "_MW"))
  252           ("Horsepower" (giac-insert "_hp"))
  253       )
  254       (-> "Temperature"
  255           ("Kelvin" (giac-insert "_K"))
  256           ("Rankine" (giac-insert "_Rankine"))
  257           ("Degree Fahrenheit" (giac-insert "_degreeF"))
  258       )
  259       (-> "Radiation"
  260           ("Becquerel" (giac-insert "_Bq"))
  261           ("Curie" (giac-insert "_Ci"))
  262           ("Gray" (giac-insert "_Gy"))
  263           ("Roentgen" (giac-insert "_R"))
  264           ("Sievert" (giac-insert "_Sv"))
  265           ("Rad" (giac-insert "_rd"))
  266           ("Rem" (giac-insert "_rem"))
  267       )
  268       (-> "Electricity"
  269           ("Ampere" (giac-insert "_A"))
  270           ("Farad" (giac-insert "_F"))
  271           ("Faraday" (giac-insert "_Fdy"))
  272           ("Henry" (giac-insert "_H"))
  273           ("Ohm" (giac-insert "_Ohm"))
  274           ("Siemens" (giac-insert "_S"))
  275           ("Volt" (giac-insert "_V"))
  276       )
  277       (-> "Magnetic field"
  278           ("Tesla" (giac-insert "_T"))
  279           ("Weber" (giac-insert "_Wb"))
  280       )
  281       (-> "Time"
  282           ("Second" (giac-insert "_s"))
  283           ("Minute" (giac-insert "_mn"))
  284           ("Hour" (giac-insert "_h"))
  285           ("Day" (giac-insert "_d"))
  286           ("Year" (giac-insert "_yr"))
  287       )
  288       (-> "Frequency"
  289           ("Hertz" (giac-insert "_Hz"))
  290           ("Megahertz" (giac-insert "_MHz"))
  291       )
  292       (-> "Viscosity"
  293           ("Stokes" (giac-insert "_St"))
  294           ("Poise" (giac-insert "_P"))
  295       )
  296       (-> "Illuminance"
  297           ("Lumen" (giac-insert "_lm"))
  298           ("Lux" (giac-insert "_lx"))
  299           ("Lambert" (giac-insert "_lam"))
  300           ("Candela" (giac-insert "_cd"))
  301           ("Footcandle" (giac-insert "_fc"))
  302           ("Footlambert" (giac-insert "_flam"))
  303           ("Phot" (giac-insert "_ph"))
  304           ("Stilb" (giac-insert "_sb"))
  305       )
  306       (-> "Substance amount"
  307           ("Mole" (giac-insert "_mol"))
  308           ("Gram-mole" (giac-insert "_gmol"))
  309           ("Pound-mole" (giac-insert "_lbmol"))
  310       )
  311       (-> "Other"
  312           ("Decibel" (giac-insert "_dB"))
  313           ("Tex" (giac-insert "_tex"))
  314           ("Unit conversion" (giac-apply "mksa" "()" 2))
  315       ))
  316   (-> "Physical constants"
  317       ("Faraday constant" (giac-insert "_F_"))
  318       ("Gravitational constant" (giac-insert "_G_"))
  319       ("Reference intensity" (giac-insert "_I0_"))
  320       ("Avogadro's number" (giac-insert "_NA_"))
  321       ("Power at the surface of the Sun" (giac-insert "_PSun_"))
  322       ("Radius of the Earth" (giac-insert "_REarth_"))
  323       ("Radius of the Sun" (giac-insert "_RSun_"))
  324       ("Universal gas constant" (giac-insert "_R_"))
  325       ("Rydberg constant" (giac-insert "_Rinfinity_"))
  326       ("Standard pressure" (giac-insert "_StdP_"))
  327       ("Standard temperature" (giac-insert "_StdT_"))
  328       ("Molar volume" (giac-insert "_Vm_"))
  329       ("Bohr radius" (giac-insert "_a0_"))
  330       ("Fine structure constant" (giac-insert "_alpha_"))
  331       ("Wien displacement constant" (giac-insert "_c3_"))
  332       ("Speed of light in vacuum" (giac-insert "_c_"))
  333       ("Permittivity of vacuum" (giac-insert "_epsilon0_"))
  334       ("Dielectric constant of Silicon dioxide" (giac-insert "_epsilonox_"))
  335       ("Dielectric constant" (giac-insert "_epsilonsi_"))
  336       ("Photon frequency" (giac-insert "_f0_"))
  337       ("Acceleration of gravity" (giac-insert "_g_"))
  338       ("Planck constant" (giac-insert "_h_"))
  339       ("Dirac constant" (giac-insert "_hbar_"))
  340       ("Boltzmann constant" (giac-insert "_k_"))
  341       ("Photon wavelength" (giac-insert "_lambda0_"))
  342       ("Mass of the Earth" (giac-insert "_mEarth_"))
  343       ("Electron rest mass" (giac-insert "_me_"))
  344       ("Electron charge" (giac-insert "_q_"))
  345       ("Proton rest mass" (giac-insert "_mp_"))
  346       ("Permeability of vacuum" (giac-insert "_mu0_"))
  347       ("Bohr magneton" (giac-insert "_muB_"))
  348       ("Nuclear magneton" (giac-insert "_muN_"))
  349       ("Magnetic flux quantum" (giac-insert "_phi_"))
  350       ("Duration of a sidereal day" (giac-insert "_sd_"))
  351       ("Duration of a sidereal year" (giac-insert "_syr_"))
  352       ("Stefan-Boltzmann constant" (giac-insert "_sigma_")))
  353   ---
  354   (-> "Real numbers"
  355       ("Absolute value" (giac-apply "abs" "()" 1))
  356       ("Maximal element" (giac-apply "max" "()" 1))
  357       ("Minimal element" (giac-apply "min" "()" 1))
  358       ("Sign function" (giac-apply "sign" "()" 1)))
  359   (-> "Complex numbers"
  360       ("Absolute value" (giac-apply "abs" "()" 1))
  361       ("Argument" (giac-apply "arg" "()" 1))
  362       ("Conjugate" (giac-apply "conj" "()" 1))
  363       ("Imaginary part" (giac-apply "im" "()" 1))
  364       ("Real part" (giac-apply "re" "()" 1)))
  365   (-> "Elementary functions"
  366       (-> "Exponential and logarithmic functions"
  367           ("Exponential function" (giac-apply "exp" "()" 1))
  368           ("Natural logarithm" (giac-apply "ln" "()" 1))
  369           ("Common logarithm (base 10)" (giac-apply "log10" "()" 1)))
  370       (-> "Trigonometric and cyclometric functions"
  371           ("Sine" (giac-apply "sin" "()" 1))
  372           ("Cosine" (giac-apply "cos" "()" 1))
  373           ("Tangent" (giac-apply "tan" "()" 1))
  374           ("Cotangent" (giac-apply "cot" "()" 1))
  375           ("Arc sine" (giac-apply "asin" "()" 1))
  376           ("Arc cosine" (giac-apply "acos" "()" 1))
  377           ("Arc tangent" (giac-apply "atan")))
  378       (-> "Hyperbolic functions"
  379           ("Hyperbolic sine" (giac-apply "sinh" "()" 1))
  380           ("Hyperbolic cosine" (giac-apply "cosh" "()" 1))
  381           ("Hyperbolic tangent" (giac-apply "tanh" "()" 1))
  382           ("Inverse hyperbolic sine" (giac-apply "asinh" "()" 1))
  383           ("Inverse hyperbolic cosine" (giac-apply "acosh" "()" 1))
  384           ("Inverse hyperbolic tangent" (giac-apply "atanh" "()" 1))))
  385   (-> "Special functions"
  386       ("Ai (Airy function)" (giac-apply "Airy_Ai" "()" 1))
  387       ("Bi (Airy function)" (giac-apply "Airy_Bi" "()" 1))
  388       ("Gamma" (giac-apply "Gamma" "()" 1))
  389       ("Lambert W" (giac-apply "LambertW" "()" 1))
  390       ("Psi" (giac-apply "Psi" "()" 1))
  391       ("Zeta" (giac-apply "Zeta" "()" 1)))
  392   (-> "Rewriting"
  393       (-> "Exponentials and logarithms"
  394           ("Hyperbolic to exponential" (giac-apply "hyp2exp" "()" 1))
  395           ("Linearize exponentials" (giac-apply "lin" "()" 1))
  396           ("Collect logarithms" (giac-apply "lncollect" "()" 1))
  397           ("Complex exponential to sine and cosine" (giac-apply "sincos" "()" 1))
  398           ("Trigonometric expression to exponential" (giac-apply "trig2exp" "()" 1))
  399           ("Lower the number of non-rational variables" (giac-apply "tsimplify" "()" 1)))
  400       (-> "Trigonometric"
  401           ("Half-tangent" (giac-apply "halftan" "()" 1))
  402           ("Tangent to sine/cosine" (giac-apply "tan2sincos" "()" 1))
  403           ("Tangent to sine/cosine of double argument" (giac-apply "tan2sincos2" "()" 1))
  404           ("Collect transcendental expressions" (giac-apply "tcollect" "()" 1))
  405           ("Expand transcendental expressions" (giac-apply "texpand" "()" 1))
  406           ("Simplify by privileging sine" (giac-apply "trigsin" "()" 1))
  407           ("Simplify by privileging cosine" (giac-apply "trigcos" "()" 1))
  408           ("Simplify by privileging tangent" (giac-apply "trigtan" "()" 1))
  409           ("Trigonometric linearization" (giac-apply "tlin" "()" 1)))
  410       (-> "Inverse trigonometric rewriting"
  411           ("Arc cosine to arc sine" (giac-apply "acos2asin" "()" 1))
  412           ("Arc cosine to arc tangent" (giac-apply "acos2atan" "()" 1))
  413           ("Arc sine to arc cosine" (giac-apply "asin2acos" "()" 1))
  414           ("Arc sine to arc tangent" (giac-apply "asin2atan" "()" 1))
  415           ("Arc tangent to arc cosine" (giac-apply "atan2acos" "()" 1))
  416           ("Arc tangent to arc sine" (giac-apply "atan2asin" "()" 1))))
  417   ---
  418   (-> "Integer arithmetic"
  419       ("Greatest common divisor" (giac-apply "gcd" "()" 1))
  420       ("Largest common multiple" (giac-apply "lcm" "()" 1))
  421       ("Euler totient function" (giac-apply "euler" "()" 1))
  422       ("Chinese remainders" (giac-apply "ichinrem" "()" 1))
  423       ("Extended greatest common divisor" (giac-apply "iegcd" "()" 1))
  424       ("Integer factorization" (giac-apply "ifactor" "()" 1))
  425       ("Prime factors" (giac-apply "ifactors" "()" 1))
  426       ("Quotient" (giac-apply "iquo" "()" 1))
  427       ("Remainder" (giac-apply "irem" "()" 1))
  428       ("Prime number testing" (giac-apply "is_prime" "()" 1))
  429       ("Next prime" (giac-apply "nextprime" "()" 1))
  430       ("Previous prime" (giac-apply "prevprime" "()" 1)))
  431   (-> "Polynomial arithmetic"
  432       ("Greatest common divisor" (giac-apply "gcd" "()" 1))
  433       ("Largest common multiple" (giac-apply "lcm" "()" 1))
  434       ("Chinese remainders" (giac-apply "chinrem" "()" 1))
  435       ("Cyclotomic" (giac-apply "cyclotomic" "()" 1))
  436       ("Divisors of a polynomial" (giac-apply "divis" "()" 1))
  437       ("Extended greatest common divisor" (giac-apply "egcd" "()" 1))
  438       ("Factorization" (giac-apply "factor" "()" 1))
  439       ("Coefficients from roots" (giac-apply "pcoeff" "()" 1))
  440       ("Evaluation from coefficients" (giac-apply "peval" "()" 1))
  441       ("Roots from coefficients" (giac-apply "proot" "()" 1))
  442       ("Quotient" (giac-apply "quo" "()" 1))
  443       ("Remainder" (giac-apply "rem" "()" 1))
  444       ("Quotient and remainder" (giac-apply "quorem" "()" 1))
  445       ("Coefficients" (giac-apply "e2r" "()" 1))
  446       ("Polynomial from coefficients" (giac-apply "r2e" "()" 1))
  447       (-> "Orthogonal polynomials"
  448           ("Hermite polynomial" (giac-apply "hermite" "()" 1))
  449           ("Laguerre polynomial" (giac-apply "laguerre" "()" 1))
  450           ("Legendre polynomial" (giac-apply "legendre" "()" 1))
  451           ("Tchebyshev polynomial of the first kind" (giac-apply "tchebyshev1" "()" 1))
  452           ("Tchebyshev polynomial of the second kind" (giac-apply "tchebyshev2" "()" 1))))
  453   (-> "Interpolation"
  454       ("Lagrange polynomial" (giac-apply "lagrange" "()" 1))
  455       ("Spline interpolation" (giac-apply "spline" "()" 1))
  456       ("Rational interpolation" (giac-apply "ratinterp" "()" 1))
  457       ("Trigonometric interpolation" (giac-apply "triginterp" "()" 1)))
  458   (-> "Curve fitting"
  459       ("Linear regression" (giac-apply "linear_regression" "()" 1))
  460       ("Polynomial regression" (giac-apply "polynomial_regression" "()" 1))
  461       ("Exponential regression" (giac-apply "exponential_regression" "()" 1))
  462       ("Logarithmic regression" (giac-apply "logarithmic_regression" "()" 1))
  463       ("Logistic regression" (giac-apply "logistic_regression" "()" 1))
  464       ("Fit polynomial to data" (giac-apply "fitpoly" "()" 1)))
  465   (-> "Function approximation"
  466       ("L2-norm polynomial approximation" (giac-apply "fitpoly" "()" 1))
  467       ("Minimax polynomial approximation" (giac-apply "minimax" "()" 1)))
  468   ---
  469   (-> "Linear algebra"
  470       (-> "Vectors"
  471           ("Absolute value" (giac-apply "abs" "()" 1))
  472           ("Norm" (giac-apply "norm" "()" 1))
  473           ("L1 norm" (giac-apply "l1norm" "()" 1))
  474           ("L2 norm" (giac-apply "l2norm" "()" 1))
  475           ("Scalar product" (giac-apply "dot" "()" 1))
  476           ("Vector product" (giac-apply "cross" "()" 1)))
  477       (-> "Matrices"
  478           ("Hadamard" (giac-apply "hadamard" "()" 1))
  479           ("Inverse" (giac-apply "inv" "()" 1))
  480           ("Trace" (giac-apply "trace" "()" 1))
  481           ("Transconjugate" (giac-apply "trn" "()" 1))
  482           ("Transpose" (giac-apply "tran" "()" 1))
  483           ("Norm" (giac-apply "norm" "()" 1))
  484           ---
  485           ("Identity" (giac-apply "idn" "()" 1))
  486           ("Hilbert" (giac-apply "hilbert" "()" 1))
  487           ("Vandermonde" (giac-apply "vandermonde" "()" 1))
  488           ("Random" (giac-apply "ranm" "()" 1)))
  489       (-> "Eigenvalues and eigenvectors"
  490           ("Eigenvectors" (giac-apply "egv" "()" 1))
  491           ("Eigenvalues" (giac-apply "egvl" "()" 1))
  492           ("Jordan form" (giac-apply "jordan" "()" 1)))
  493       (-> "Matrix factorization"
  494           ("Cholesky decomposition" (giac-apply "cholesky" "()" 1))
  495           ("LU decomposition" (giac-apply "lu" "()" 1))
  496           ("QR decomposition" (giac-apply "qr" "()" 1))
  497           ("Schur decomposition" (giac-apply "schur" "()" 1))
  498           ("Singular value decomposition" (giac-apply "svd" "()" 1)))
  499       (-> "Gauss-Jordan pivot"
  500           ("Basis" (giac-apply "basis" "()" 1))
  501           ("Basis intersection" (giac-apply "ibasis" "()" 1))
  502           ("Kernel" (giac-apply "ker" "()" 1))
  503           ("Image" (giac-apply "image" "()" 1))
  504           ("Row reduction to echelon form" (giac-apply "rref" "()" 1)))
  505       (-> "Isometries"
  506           ("Elements of a 2D or 3D isometry" (giac-apply "isom" "()" 1))
  507           ("Isometry matrix" (giac-apply "mkisom()"))))
  508   (-> "Calculus"
  509       ("Limit" (giac-apply "limit" "()" 2))
  510       ("Differentiate" (giac-apply "diff" "()" 1))
  511       ("Integrate" (giac-apply "integrate" "()" 1))
  512       ("Gradient" (giac-apply "grad" "()" 1))
  513       ("Divergence" (giac-apply "divergence" "()" 1))
  514       ("Curl" (giac-apply "curl" "()" 1))
  515       ("Hessian" (giac-apply "hessian" "()" 1))
  516       ("Laplacian" (giac-apply "laplacian" "()" 1))
  517       ("Local extrema" (giac-apply "extrema" "()" 1))
  518       ("Test convexity" (giac-apply "convex" "()" 1))
  519       ("Implicit differentiation" (giac-apply "implicitdiff" "()" 1))
  520       ("Taylor expansion" (giac-apply "taylor" "()" 1))
  521       ("Series expansion" (giac-apply "series" "()" 1)))
  522   (-> "Calculus of variations"
  523       ("Euler-Lagrange equations" (giac-apply "euler_lagrange" "()" 1))
  524       ("Jacobi equation" (giac-apply "jacobi_equation" "()" 1))
  525       ("Conjugate equation" (giac-apply "conjugate_equation" "()" 1)))
  526   (-> "Numeric analysis"
  527       ("Newton method" (giac-apply "newton" "()" 1))
  528       ("Solve equations" (giac-apply "fsolve" "()" 2))
  529       ("Solve differential equations" (giac-apply "odesolve" "()" 3))
  530       ("Solve boundary-value problems" (giac-apply "bvpsolve" "()" 3))
  531       ("Numerical integration" (giac-apply "romberg" "()" 4))
  532       ("Numerical differentiation" (giac-apply "numdiff" "()" 3)))
  533   ---
  534   (-> "Probability and statistics"
  535       (-> "Statistics"
  536           ("Mean" (giac-apply "mean" "()" 1))
  537           ("Variance" (giac-apply "variance" "()" 1))
  538           ("Standard deviation" (giac-apply "stddev" "()" 1))
  539           ("Population standard deviation" (giac-apply "stdDev" "()" 1))
  540           ("Median" (giac-apply "median" "()" 1))
  541           ("Quartiles" (giac-apply "quartiles" "()" 1))
  542           ("Quantiles" (giac-apply "quantiles" "()" 2))
  543           ("Classes" (giac-apply "classes" "()" 1))
  544           ("Frequencies" (giac-apply "frequencies" "()" 1))
  545           ("Cumulative frequencies" (giac-apply "cumulated_frequencies" "()" 1))
  546           ("Covariance" (giac-apply "covariance" "()" 1))
  547           ("Correlation" (giac-apply "correlation" "()" 1))
  548           (-> "Plotting"
  549               (-> "Regression plot"
  550                   ("Linear" (giac-apply "linear_regression_plot" "()" 1))
  551                   ("Polynomial" (giac-apply "polynomial_regression_plot" "()" 1))
  552                   ("Exponential" (giac-apply "exponential_regression_plot" "()" 1))
  553                   ("Logarithmic" (giac-apply "logarithmic_regression_plot" "()" 1))
  554                   ("Logistic" (giac-apply "logistic_regression_plot" "()" 1)))
  555               ("Sequence plot" (giac-apply "plotseq" "()" 1))
  556               ("Polygonal path" (giac-apply "plotlist" "()" 1))
  557               ("Scatter plot" (giac-apply "scatterplot" "()" 1))
  558               ("Stem plot" (giac-apply "batons" "()" 1))
  559               ("Box plot" (giac-apply "boxwhisker" "()" 1))
  560               ("Bar chart" (giac-apply "bar_plot" "()" 1))
  561               ("Pie chart" (giac-apply "camembert" "()" 1))
  562               ("Histogram" (giac-apply "histogram" "()" 1))))
  563       (-> "Probability distributions"
  564           (-> "Density functions"
  565               ("Uniform" (giac-apply "uniformd" "()" 3))
  566               ("Binomial" (giac-apply "binomial" "()" 3))
  567               ("Negative binomial" (giac-apply "negbinomial" "()" 3))
  568               ("Multinomial" (giac-apply "multinomial" "()" 3))
  569               ("Poisson" (giac-apply "poisson" "()" 2))
  570               ("Normal" (giac-apply "normald" "()" 3))
  571               ("Student" (giac-apply "studentd" "()" 2))
  572               ("Chi-squared" (giac-apply "chisquare" "()" 2))
  573               ("Fisher-Snédécor" (giac-apply "fisherd" "()" 3))
  574               ("Gamma" (giac-apply "gammad" "()" 3))
  575               ("Beta" (giac-apply "betad" "()" 3))
  576               ("Geometric" (giac-apply "geometric" "()" 2))
  577               ("Cauchy" (giac-apply "cauhcyd" "()" 3))
  578               ("Exponential" (giac-apply "exponentiald" "()" 2))
  579               ("Weibull" (giac-apply "weibulld" "()" 3))
  580               ("Kolmogorov-Smirnov" (giac-apply "kolmogorovd" "()" 1)))
  581           ("Moment generating function" (giac-apply "mgf" "()" 1))
  582           ("Cumulative distribution function" (giac-apply "cdf" "()" 1))
  583           ("Inverse distribution function" (giac-apply "icdf" "()" 1))
  584           ("Kernel density estimation" (giac-apply "kde" "()" 1))
  585           ("Distribution fitting" (giac-apply "fitdistr" "()" 2)))
  586       (-> "Random numbers"
  587           ("Random variable" (giac-apply "randvar" "()" 1))
  588           ("Sampling random numbers" (giac-apply "sample" "()" 1))
  589           ("Initializing random number generator" (giac-apply "srand" "()" 1))
  590           ("Random vectors" (giac-apply "randvector" "()" 1))
  591           ("Random matrices" (giac-apply "randmatrix" "()" 1)))
  592       (-> "Hypothesis testing"
  593           ("Z-test mean testing" (giac-apply "normalt" "()" 3))
  594           ("T-test mean testing" (giac-apply "studentt" "()" 3))
  595           ("Chi-squared distribution testing" (giac-apply "chisquaret" "()" 1))
  596           ("Kolmogorov-Smirnov distribution testing" (giac-apply "kolmogorovt" "()" 2))))
  597   (-> "Graph theory"
  598       (-> "Constructing graphs"
  599           (-> "General graphs"
  600               ("Undirected graph" (giac-apply "graph" "()" 1))
  601               ("Directed graph" (giac-apply "digraph" "()" 1)))
  602           (-> "Cycle and path graphs"
  603               ("Cycle graph" (giac-apply "cycle_graph" "()" 1))
  604               ("Path graph" (giac-apply "path_graph" "()" 1))
  605               ("Trail" (giac-apply "trail" "()" 1)))
  606           (-> "Complete graphs"
  607               ("Complete (multipartite) graph" (giac-apply "complete_graph" "()" 1))
  608               ("Complete binary tree" (giac-apply "complete_binary_tree" "()" 1))
  609               ("Complete k-ary tree" (giac-apply "complete_kary_tree" "()" 2)))
  610           (-> "Sequence graphs"
  611               ("Sequence to graph" (giac-apply "sequence_graph" "()" 1))
  612               ("Test for graphic sequence" (giac-apply "is_graphic_sequence" "()" 1)))
  613           (-> "Intersection graphs"
  614               ("Interval graph" (giac-apply "interval_graph" "()" 1))
  615               ("Kneser graph" (giac-apply "kneser_graph" "()" 2)))
  616           (-> "Special graphs"
  617               ("Hypercube graph" (giac-apply "hypercube_graph" "()" 1))
  618               ("Star graph" (giac-apply "star_graph" "()" 1))
  619               ("Wheel graph" (giac-apply "wheel_graph" "()" 1))
  620               ("Web graph" (giac-apply "web_graph" "()" 2))
  621               ("Prism graph" (giac-apply "prism_graph" "()" 1))
  622               ("Antiprism_graph" (giac-apply "antiprism_graph" "()" 1))
  623               ("Grid graph" (giac-apply "grid_graph" "()" 2))
  624               ("Sierpiński graph" (giac-apply "sierpinski_graph" "()" 2))
  625               ("Generalized Petersen graph" (giac-apply "petersen_graph" "()" 2))
  626               ("LCF graph" (giac-apply "lcf_graph" "()" 1)))
  627           (-> "Isomorphic copies"
  628               ("Isomorphic copy from permutation" (giac-apply "isomorphic_copy" "()" 2))
  629               ("Permute vertices" (giac-apply "permute_vertices" "()" 2))
  630               ("Relabel vertices" (giac-apply "relabel_vertices" "()" 2)))
  631           (-> "Subgraphs"
  632               ("Extract subgraph" (giac-apply "subgraph" "()" 2))
  633               ("Induced subgraph" (giac-apply "induced_subgraph" "()" 2))
  634               ("Underlying graph" (giac-apply "underlying_graph" "()" 1))
  635               ("Fundamental cycles" (giac-apply "cycle_basis" "()" 1))
  636               ("Find cycles in digraph" (giac-apply "find_cycles" "()" 1)))
  637           (-> "Operations on graphs"
  638               ("Graph complement" (giac-apply "graph_complement" "()" 1))
  639               ("Seidel switch" (giac-apply "seidel_switch" "()" 1))
  640               ("Transpose graph" (giac-apply "reverse_graph" "()" 1))
  641               ("Graph union" (giac-apply "graph_union" "()" 2))
  642               ("Disjoint union" (giac-apply "disjoint_union" "()" 2))
  643               ("Join two graphs" (giac-apply "graph_join" "()" 2))
  644               ("Power graph" (giac-apply "graph_power" "()" 2))
  645               ("Cartesian product" (giac-apply "cartesian_product" "()" 2))
  646               ("Tensor product" (giac-apply "tensor_product" "()" 2))
  647               ("Transitive closure" (giac-apply "transitive_closure" "()" 1))
  648               ("Line graph" (giac-apply "line_graph" "()" 1))
  649               ("Plane dual" (giac-apply "plane_dual" "()" 1))
  650               ("Truncate" (giac-apply "truncate_graph" "()" 1)))
  651           (-> "Random graphs"
  652               ("Random graph" (giac-apply "random_graph" "()" 1))
  653               ("Random digraph" (giac-apply "random_digraph" "()" 1))
  654               ("Random tree" (giac-apply "random_tree" "()" 1))
  655               ("Random planar graph" (giac-apply "random_planar_graph" "()" 1))
  656               ("Random graph from sequence" (giac-apply "random_sequence_graph" "()" 1))
  657               ("Random regular graph" (giac-apply "random_regular_graph" "()" 2))
  658               ("Random tournament" (giac-apply "random_tournament" "()" 1))
  659               ("Random network" (giac-apply "random_network" "()" 2))
  660               ("Randomize edge weights" (giac-apply "assign_edge_weights" "()" 2))))
  661       (-> "Modifying graphs"
  662           (-> "Promoting to directed/weighted graphs"
  663               ("Convert edges to arcs" (giac-apply "make_directed" "()" 2))
  664               ("Assign weights to edges" (giac-apply "make_weighted" "()" 2)))
  665           (-> "Modifying vertices"
  666               ("Add vertex" (giac-apply "add_vertex" "()" 2))
  667               ("Remove vertex" (giac-apply "delete_vertex" "()" 2)))
  668           (-> "Modifying edges"
  669               ("Add edge" (giac-apply "add_edge" "()" 2))
  670               ("Remove edge" (giac-apply "delete_edge" "()" 2))
  671               ("Add arc" (giac-apply "add_arc" "()" 2))
  672               ("Remove arc" (giac-apply "delete_arc" "()" 2))
  673               ("Set edge weight" (giac-apply "set_edge_weight" "()" 3))
  674               ("Edge weight" (giac-apply "get_edge_weight" "()" 2))
  675               ("Contract edge" (giac-apply "contract_edge" "()" 2))
  676               ("Subdivide edges" (giac-apply "subdivide_edges" "()" 2)))
  677           (-> "Attributes"
  678               ("Graph attribute" (giac-apply "get_graph_attribute" "()" 2))
  679               ("List graph attributes" (giac-apply "list_graph_attributes" "()" 1))
  680               ("Set graph attribute" (giac-apply "set_graph_attribute" "()" 3))
  681               ---
  682               ("Vertex attribute" (giac-apply "get_vertex_attribute" "()" 3))
  683               ("List vertex attributes" (giac-apply "list_vertex_attributes" "()" 2))
  684               ("Set vertex attribute" (giac-apply "set_vertex_attribute" "()" 4))
  685               ---
  686               ("Edge attribute" (giac-apply "get_edge_attribute" "()" 3))
  687               ("List edge attributes" (giac-apply "list_edge_attributes" "()" 2))
  688               ("Set edge attribute" (giac-apply "set_edge_attribute" "()" 4))))
  689       (-> "Import & export"
  690           ("Load graph from dot file" (giac-apply "import_graph" "()" 1))
  691           ("Write graph to dot file" (giac-apply "export_graph" "()" 2)))
  692       (-> "Graph properties"
  693           (-> "Basic"
  694               ("Vertex degree" (giac-apply "vertex_degree" "()" 2))
  695               ("Get edges incident to vertex" (giac-apply "incident_edges" "()" 2)))
  696           (-> "Algebraic"
  697               ("Adjacency matrix" (giac-apply "adjacency_matrix" "()" 1))
  698               ("Weight matrix" (giac-apply "weight_matrix" "()" 1))
  699               ("Incidence matrix" (giac-apply "incidence_matrix" "()" 1))
  700               ("Laplacian matrix" (giac-apply "laplacian_matrix" "()" 1))
  701               ("Characteristic polynomial" (giac-apply "graph_charpoly" "()" 1))
  702               ("Graph spectrum" (giac-apply "graph_spectrum" "()" 1))
  703               ("Seidel spectrum" (giac-apply "seidel_spectrum" "()" 1)))
  704           (-> "Isomorphism"
  705               ("Test graph isomorphism" (giac-apply "is_isomorphic" "()" 2))
  706               ("Test subgraph isomorphism" (giac-apply "is_subgraph_isomorphic" "()" 1))
  707               ("Canonical labeling" (giac-apply "canonical_labeling" "()" 1))
  708               ("Automorphisms" (giac-apply "graph_automorphisms" "()" 1)))
  709           (-> "Polynomials"
  710               ("Tutte polynomial" (giac-apply "tutte_polynomial" "()" 1))
  711               ("Chromatic polynomial" (giac-apply "chromatic_polynomial" "()" 1))
  712               ("Flow polynomial" (giac-apply "flow_polynomial" "()" 1))
  713               ("Reliability polynomial" (giac-apply "reliability_polynomial" "()" 1)))
  714           (-> "Connectivity"
  715               ("Vertex connectivity" (giac-apply "vertex_connectivity" "()" 1))
  716               ("Edge connectivity" (giac-apply "edge_connectivity" "()" 1))
  717               ("Graph rank" (giac-apply "graph_rank" "()" 1))
  718               ("Articulation points" (giac-apply "articulation_points" "()" 1))
  719               ("Connected components" (giac-apply "connected_components" "()" 1))
  720               ("Strongly connected components" (giac-apply "strongly_connected_components" "()" 1))
  721               ("Biconnected components" (giac-apply "biconnected_components" "()" 1)))
  722           (-> "Trees"
  723               ("Tree height" (giac-apply "tree_height" "()" 1))
  724               ("Lowest common ancestor" (giac-apply "line_graph" "()" 3)))
  725           (-> "Networks"
  726               ("Maximum flow" (giac-apply "maxflow" "()" 3))
  727               ("Minimum cut" (giac-apply "minimum_cut" "()" 3))
  728               ("Clustering coefficient" (giac-apply "clustering_coefficient" "()" 1))
  729               ("Network transitivity" (giac-apply "network_transitivity" "()" 1)))
  730           (-> "Distance in graphs"
  731               ("Vertex distance" (giac-apply "vertex_distance" "()" 3))
  732               ("All-pairs vertex distance" (giac-apply "allpairs_distance" "()" 1))
  733               ("Graph diameter" (giac-apply "graph_diameter" "()" 1))
  734               ("Girth" (giac-apply "girth" "()" 1)))
  735           (-> "Acyclic graphs"
  736               ("Topologic sorting" (giac-apply "topologic_sort" "()" 1))
  737               ("st-ordering" (giac-apply "st_ordering" "()" 3))
  738               ("Graph condensation" (giac-apply "condensation" "()" 1)))
  739           (-> "Matching"
  740               ("Maximum matching" (giac-apply "maximum_matching" "()" 1))
  741               ("Maximum matching in bipartite graph" (giac-apply "bipartite_matching" "()" 1)))
  742           (-> "Cliques"
  743               ("Maximal cliques" (giac-apply "find_cliques" "()" 1))
  744               ("Maximum clique" (giac-apply "maximum_clique" "()" 1))
  745               ("Maximum independent set" (giac-apply "maximum_independent_set" "()" 1))
  746               ("Clique cover" (giac-apply "clique_cover" "()" 1))
  747               ("Clique cover number" (giac-apply "clique_cover_number" "()" 1)))
  748           (-> "Coloring"
  749               ("Greedy vertex coloring" (giac-apply "greedy_color" "()" 1))
  750               ("Minimal vertex coloring" (giac-apply "minimal_vertex_coloring" "()" 1))
  751               ("Chromatic number" (giac-apply "chromatic_number" "()" 1))
  752               ("Minimal edge coloring" (giac-apply "minimal_edge_coloring" "()" 1))))
  753       (-> "Traversing graphs"
  754           (-> "Optimal routing"
  755               ("Shortest path in unweighted graph" (giac-apply "shortest_path" "()" 3))
  756               ("Cheapest path in weighted graph" (giac-apply "dijkstra" "()" 3))
  757               ("k-shortest paths" (giac-apply "kspaths" "()" 4))
  758               ("Shortest tour" (giac-apply "traveling_salesman" "()" 1)))
  759           (-> "Spanning trees"
  760               ("Spanning tree" (giac-apply "spanning_tree" "()" 1))
  761               ("Number of spanning trees" (giac-apply "number_of_spanning_trees" "()" 1))
  762               ("Minimal spanning tree" (giac-apply "minimal_spanning_tree" "()" 1))))
  763       (-> "Visualizing graphs"
  764           ("Draw graph" (giac-apply "draw_graph" "()" 1))
  765           ("Set vertex positions" (giac-apply "set_vertex_positions" "()" 2))
  766           ("Highlight vertex" (giac-apply "highlight_vertex" "()" 2))
  767           ("Highlight edges" (giac-apply "highlight_edges" "()" 2))
  768           ("Highlight trail" (giac-apply "highlight_trail" "()" 2))
  769           ("Highlight subgraph" (giac-apply "highlight_subgraph" "()" 2))))
  770   (-> "Optimization"
  771       ("Minimize" (giac-apply "minimize" "()" 2))
  772       ("Maximize" (giac-apply "maximize" "()" 2))
  773       ("Solve linear programming problem" (giac-apply "lpsolve" "()" 2))
  774       ("Solve nonlinear programming problem" (giac-apply "nlpsolve" "()" 2))
  775       ("Solve transportation problem" (giac-apply "tpsolve" "()" 3)))
  776   (-> "Signal processing"
  777       ("Root mean square (RMS)" (giac-apply "rms" "()" 1))
  778       ("Cross-correlation" (giac-apply "cross_correlation" "()" 2))
  779       ("Auto-correlation" (giac-apply "auto_correlation" "()" 1))
  780       ("Convolution" (giac-apply "convolution" "()" 2))
  781       ("Clamp range" (giac-apply "threshold" "()" 3))
  782       (-> "Filter"
  783           ("Low-pass" (giac-apply "lowpass" "()" 2))
  784           ("High-pass" (giac-apply "highpass" "()" 2))
  785           ("Moving average" (giac-apply "moving_average" "()" 2)))
  786       (-> "Common functions"
  787           ("Rectangular function" (giac-apply "rect" "()" 1))
  788           ("Boxcar function" (giac-apply "boxcar" "()" 3))
  789           ("Triangular function" (giac-apply "tri" "()" 1))
  790           ("Sampling function" (giac-apply "sinc" "()" 1))
  791           ("Step function" (giac-apply "Heaviside" "()" 1))
  792           ("Dirac delta function" (giac-apply "Dirac" "()" 1)))
  793       (-> "Window functions"
  794           ("Bartlett-Hann" (giac-apply "bartlett_hann_window" "()" 1))
  795           ("Blackman" (giac-apply "blackman_window" "()" 1))
  796           ("Blackman-Harris" (giac-apply "blackman_harris_window" "()" 1))
  797           ("Bohman" (giac-apply "bohman_window" "()" 1))
  798           ("Cosine" (giac-apply "cosine_window" "()" 1))
  799           ("Gaussian" (giac-apply "gaussian_window" "()" 1))
  800           ("Hamming" (giac-apply "hamming_window" "()" 1))
  801           ("Hann" (giac-apply "hann_window" "()" 1))
  802           ("Hann-Poisson" (giac-apply "hann_poisson_window" "()" 1))
  803           ("Parzen" (giac-apply "parzen_window" "()" 1))
  804           ("Poisson" (giac-apply "poisson_window" "()" 1))
  805           ("Riemann" (giac-apply "riemann_window" "()" 1))
  806           ("Triangular" (giac-apply "triangle_window" "()" 1))
  807           ("Tukey" (giac-apply "tukey_window" "()" 1))
  808           ("Welch" (giac-apply "welch_window" "()" 1)))
  809       (-> "Transformations"
  810           ("Fourier cosine coefficient" (giac-apply "fourier_an" "()" 1))
  811           ("Fourier sine coefficient" (giac-apply "fourier_bn" "()" 1))
  812           ("Fourier coefficient" (giac-apply "fourier_cn" "()" 1))
  813           ("Laplace transform" (giac-apply "laplace" "()" 1))
  814           ("Inverse Laplace transform" (giac-apply "ilaplace" "()" 1))
  815           ("Fourier transform" (giac-apply "fourier" "()" 1))
  816           ("Inverse Fourier transform" (giac-apply "ifourier" "()" 1))
  817           ("Fast Fourier Transform (FFT)" (giac-apply "fft" "()" 1))
  818           ("Inverse FFT" (giac-apply "ifft" "()" 1))
  819           ("Z-transform" (giac-apply "ztrans" "()" 1)))
  820       (-> "Audio tools"
  821           ("Create audio clip" (giac-apply "createwav" "()" 1))
  822           ("Read audio from file" (giac-apply "readwav" "()" 1))
  823           ("Write audio to file" (giac-apply "writewav" "()" 2))
  824           ("Stereo to mono" (giac-apply "stereo2mono" "()" 1))
  825           ("Resample" (giac-apply "resample" "()" 1))
  826           ("Show waveform" (giac-apply "plotwav" "()" 1))
  827           ("Show spectrum" (giac-apply "plotspectrum" "()" 1))))
  828 
  829   (if (not-in-session?)
  830       ---
  831       (link scripts-eval-toggle-menu)))
  832 
  833 (menu-bind plugin-menu
  834   (:require (or (in-giac?) (and (not-in-session?) (giac-scripts?))))
  835   (=> "Giac" (link giac-functions-menu)))