Maple für Professional
Maple für Akademiker
Maple für Studenten
Maple Personal Edition
Maple Player
Maple Player für iPad
MapleSim für Professional
MapleSim für Akademiker
Maple T.A. - Testen & beurteilen
Maple T.A. MAA Placement Test Suite
Möbius - Online-Courseware
Machine Design / Industrial Automation
Luft- und Raumfahrt
Fahrzeugtechnik
Robotics
Energiebranche
System Simulation and Analysis
Model development for HIL
Anlagenmodelle für den Regelungsentwurf
Robotics/Motion Control/Mechatronics
Other Application Areas
Mathematikausbildung
Technik
Allgemein- und berufsbildende Schulen
Testen und beurteilen
Studierende
Finanzmodelle
Betriebsforschung
Hochleistungsrechnen
Physik
Live-Webinare
Aufgezeichnete Webinare
Geplante Veranstaltungen
MaplePrimes
Maplesoft-Blog
Maplesoft-Mitgliedschaft
Maple Ambassador Program
MapleCloud
Technische Whitepapers
E-Mail Newsletters
Maple-Bücher
Math Matters
Anwendungs-Center
MapleSim Modell-Galerie
Anwenderberichte
Exploring Engineering Fundamentals
Lehrkonzepte mit Maple
Maplesoft Welcome-Center
Resource-Center für Lehrer
Help-Center für Studierende
Printer:-AddLibrary - declare that library is used by generated code
Calling Sequence
Printer:-AddLibrary(libraryname)
Parameters
Printer
-
Printer module
libraryname
string; name of library
Description
When called during the printing of intermediate code, the AddLibrary command declares that the library libraryname is used by the generated code.
Many programming languages rely on external archives or libraries to supply functions for specialized tasks. Several CodeGeneration translators produce code that relies on such libraries.
To enable the printing of these inclusion statements in your custom translator, call AddLibrary from within the handler procedure in which the code using this library is printed.
Examples
Define an extension of C that uses custom functions from some library custom_lib addition, negation, multiplication, and inversion.
LanguageDefinition[Define]("AddLibraryExample", extend="C", AddPrintHandler( Names:-Inverse = proc(x) Printer:-Print( "custom_inv(", x, ")"); Printer:-AddLibrary( "custom_lib"); end proc, Names:-Negation = proc(x) Printer:-Print( "custom_neg(", x, ")"); Printer:-AddLibrary( "custom_lib"); end proc, Names:-Product = proc() Printer:-Print( "custom_mult(" ); Printer:-PrintDelimitedList( [args], ", "); Printer:-Print(")"); Printer:-AddLibrary( "custom_lib"); end proc, Names:-Sum = proc() Printer:-Print( "custom_add(" ); Printer:-PrintDelimitedList( [args], ", "); Printer:-Print(")"); Printer:-AddLibrary( "custom_lib"); end proc ) );
Observe that in both cases the custom functions are printed instead of the usual binary operators +,-,*,/, and that in the second case custom_lib is explicitly included.
cg = custom_add(custom_mult(3, x), custom_neg(y));
p := proc(x,y) local z; z := (sin(x)*y+1)*Pi; printf("%f", z); end proc:
void p (double x, double y) { double z; z = custom_mult(custom_add(custom_mult(sin(x), y), 0.1e1), 0.3141592654e1); printf("%f", z); }
See Also
AddFunction, GetIncludes, Printer
Download Help Document
Copyright © MathResources Inc. All Rights Reserved.
www.mathresources.com