?>
Fügt die PROTO-Definitionen hinzu und speichert sie in einer Tabelle. Diese Aktion ist entscheidend für die Integration von externem Code (wie C oder C++) in die CAS-Umgebung, indem sie die Schnittstellen (Prototypen) dieser externen Routinen deklariert, sodass sie von CASL oder anderen Aktionen aufgerufen werden können.
| Parameter | Beschreibung |
|---|---|
| bridgeCatchSignals | Gibt an, dass die Bridge-Datei Code zum Installieren und Behandeln von Signalen enthalten soll. |
| bridgeFile | Gibt den Pfad zum Quellmodul der PROTO-Bridge-Datei an. |
| encode | Gibt an, dass die Prototyp-Definitionen in der gespeicherten Funktionstabelle kodiert werden. |
| funcTable | Gibt die Tabelle an, in die die PROTO-Definitionen geschrieben werden. |
| library | Gibt eine vorhandene FCMP-Bibliothek zum Laden an. |
| package | Gibt den FCMP-Paketnamen an, der zum Speichern von PROTO-Definitionen verwendet wird. |
| routineCode | Gibt den Code der PROTO-Definition an, der in der Tabelle gespeichert wird. |
| saveTable | Gibt an, ob die FCMP-Tabelle gespeichert werden soll. |
| stdcall | Gibt an, dass Funktionen unter Verwendung der __stdcall-Konvention aufgerufen werden sollen (nur Windows-PC). |
Die Aktion `addPrototypes` erfordert keine Eingabedaten, da sie Definitionen erstellt und nicht auf Daten operiert. Die Beispiele zeigen, wie Prototypen in einer CAS-Tabelle gespeichert werden.
/* Für diese Aktion ist keine Datenerstellung erforderlich. */
Dieses Beispiel definiert einen einzelnen Prototyp für eine externe C-Funktion namens 'mycfunc' und speichert ihn in der CAS-Tabelle 'myprotos'.
| 1 | PROC CAS; |
| 2 | ACTION fcmpact.addPrototypes / |
| 3 | routineCode={"proto mycfunc(double, double) link='c' return=double;"} |
| 4 | funcTable={name="myprotos", caslib="casuser", replace=true}; |
| 5 | RUN; QUIT; |
Dieses Beispiel definiert zwei Prototypen, 'myadd' und 'mysub', innerhalb eines FCMP-Pakets namens 'mymath'. Die Definitionen werden kodiert (`encode=true`) und in der Tabelle 'encodedProtos' gespeichert, um das geistige Eigentum zu schützen.
| 1 | PROC CAS; |
| 2 | ACTION fcmpact.addPrototypes / |
| 3 | routineCode={"proto myadd(double, double) link='c' return=double;", "proto mysub(double, double) link='c' return=double;"} |
| 4 | package="mymath" |
| 5 | encode=true |
| 6 | funcTable={name="encodedProtos", caslib="casuser", replace=true}; |
| 7 | RUN; QUIT; |
Eine Investmentbank muss ein bestehendes, in C geschriebenes Preismodell für Derivate in ihre SAS Viya-Umgebung integrieren. Ziel ist es, die hochperformante C-Funktion direkt a...
Ein pharmazeutisches Forschungsinstitut migriert seine Analyseplattform nach SAS Viya. Eine zentrale Komponente ist eine über Jahre gewachsene C-Bibliothek mit Dutzenden von sta...
Ein Softwareanbieter lizenziert ein Set von Algorithmen für maschinelles Lernen (geschrieben in C++) an einen Kunden. Der Anbieter muss die Funktionsprototypen in der SAS Viya-U...