public code v1

This commit is contained in:
2026-05-22 11:14:29 +02:00
parent 427197ec5a
commit b8141736eb
28859 changed files with 575079 additions and 0 deletions
@@ -0,0 +1,114 @@
<snippet>
<subclass>afryca.ase.Snippet</subclass>
<file></file>
<category>ASE-API</category>
<name>Eval snippet examples</name>
<description></description>
<code>
var snippets = Array();
function createSnippet(id, code) {
var prefix = 'ASE-API eval snippet example';
var SnippetClass = Java.type('afryca.ase.Snippet');
var snippet = new SnippetClass();
var name = prefix + ' ' + id;
var file = name + '.script';
snippet.setFile(file);
snippet.setName(name);
snippet.setCode(code);
snippet.setCategory('ASE-API');
ase.getSnippets().put(snippet.getFile(), snippet);
snippets[id] = {name: name, file: file};
}
function createSnippets() {
var groovy = 'def product(Double x, Double y) {\n'
groovy += ' return x * y\n';
groovy += '}';
createSnippet('groovy', groovy);
var r = 'product <- function(x ,y) {\n';
r += ' return (x * y)\n';
r += '}';
createSnippet('r', r);
var python = 'def product(x , y):\n';
python += ' return x * y';
createSnippet('python', python);
var ruby = 'def product(x, y)\n';
ruby += ' return x * y\n';
ruby += 'end';
createSnippet('ruby', ruby);
var lua = 'function product(x, y)\n';
lua += ' return x * y\n';
lua += 'end';
createSnippet('lua', lua);
var scala = 'def product(x:Double, y:Double) : Double = {\n';
scala += ' return x * y\n';
scala += '}';
createSnippet('scala', scala);
}
function deleteSnippets() {
for (var key in snippets) {
ase.getSnippets().remove(snippets[key].file);
}
}
createSnippets();
if (typeof Groovy !== 'undefined') ase.evalSnippet(Groovy, snippets['groovy'].name);
if (typeof R !== 'undefined') ase.evalSnippet(R, snippets['r'].name);
if (typeof Jython !== 'undefined') ase.evalSnippet(Jython, snippets['python'].name);
ase.evalSnippet('JRuby', snippets['ruby'].name);
ase.evalSnippet('LuaJ', snippets['lua'].name);
ase.evalSnippet('Scala', snippets['scala'].name);
var x = 3;
var y = 4;
var code = 'product(' + x + ',' + y + ')';
var notLoaded = 'is not loaded';
groovyResult = (typeof Groovy !== 'undefined') ? ase.evalCode(Groovy, code) : notLoaded;
rengine = (typeof R !== 'undefined') ? ase.evalCode(R, code) : notLoaded;
jython = (typeof Jython !== 'undefined') ? ase.evalCode(Jython, code) : notLoaded;
jruby = ase.evalCode('JRuby', code);
luaj = ase.evalCode('LuaJ', 'result = ' + code + ' -- ase get result'); // ASE shortcut
scalaResult = ase.evalCode('Scala', code);
var e1 = 'Groovy: ' + groovyResult + '\n' +
'R: ' + rengine + '\n' +
'Jython: ' + jython + '\n' +
'JRuby: ' + jruby + '\n' +
'LuaJ: ' +luaj + '\n'+
'Scala: ' + scalaResult
createSnippet('code', code);
createSnippet('luaj code', 'result = ' + code + ' -- ase get result'); // ASE shortcut
groovyResult = (typeof Groovy !== 'undefined') ? ase.evalSnippet(Groovy, snippets['code'].name) : notLoaded;
rengine = (typeof R !== 'undefined') ? ase.evalSnippet(R, snippets['code'].name) : notLoaded;
jython = (typeof Jython !== 'undefined') ? ase.evalSnippet(Jython, snippets['code'].name) : notLoaded;
jruby = ase.evalSnippet('JRuby', snippets['code'].name);
luaj = ase.evalSnippet('LuaJ', snippets['luaj code'].name);
scalaResult = ase.evalSnippet('Scala', snippets['code'].name);
var e2 = 'Groovy: ' + groovyResult + '\n' +
'R: ' + rengine + '\n' +
'Jython: ' + jython + '\n' +
'JRuby: ' + jruby + '\n' +
'LuaJ: ' +luaj + '\n'+
'Scala: ' + scalaResult
deleteSnippets();
'Example 1\n' + e1 + '\n\nExample 2\n' + e2
//
// Note: See 'Scripting examples' for more information
//
</code>
</snippet>
@@ -0,0 +1,52 @@
<snippet>
<subclass>afryca.ase.Snippet</subclass>
<file></file>
<category>ASE-API</category>
<name>Execute function examples</name>
<description></description>
<code>
var functionName = 'ChiclanaRandomFPR';
var e1 = ase.executeFunction(functionName, 'n=3');
var e2 = ase
.executeFunction(
functionName,
ParametersBuilder
.aseDefault()
.add('n', 3)
.join()
);
var e3 = ase
.createExecutionBuilder()
.setFunction(functionName)
.putParameter('n', 3)
.execute();
var fprCopy = e3.getResult().clone();
fprCopy.setValueSymmetrically(1, 2, NaN);
var functionName2 = 'FedrizziCO';
var e4 = ase
.createExecutionBuilder()
.setFunction(functionName2)
.putVariable('preference', fprCopy) // fprCopy object
.execute();
var e5 = ase
.createExecutionBuilder()
.setFunction(functionName2)
.putParameter('preference', fprCopy) //fprCopy content
.execute();
'e1:\n' + e1.getResult().prettyFormat() + '\n' +
'e2:\n' + e2.getResult().prettyFormat() + '\n' +
'e3:\n' + e3.getResult().prettyFormat() + '\n' +
'fprCopy:\n ' + fprCopy.prettyFormat() + '\n' +
'e4:\n ' + e4.getResult().prettyFormat() + '\n' +
'e5 result: ' + e5.getResult() + '\n' +
'e5 ScriptException: ' + e5.getScriptException()
</code>
</snippet>
@@ -0,0 +1,32 @@
<snippet>
<subclass>afryca.ase.Snippet</subclass>
<file></file>
<category>ASE-API</category>
<name>Execute module binding example</name>
<description></description>
<code>
var moduleBindingName = 'Consistency';
var moduleBinding = ase.getModuleBindingByName(moduleBindingName);
var moduleBindingFile = moduleBinding.getFile();
var state = ase.getModuleBindingStates().get(moduleBindingFile);
var bindings = moduleBinding.getBindings();
var result = bindings.toString();
if (state) {
result += ' -> [' + gdmp.getSimpleName() + ']\n';
var execution = ase.executeModuleBinding(moduleBindingName);
var moduleName = moduleBinding.getModule();
var module = ase.getModuleByName(moduleName);
var functions = ase.getModuleFunctions(moduleName);
for (var i = 0; i < functions.length; i++) {
result += functions[i] + ': ' + execution.get(functions[i]).get().getResult() + '\n';
}
result += 'Execution class: ' + execution.class.getName() + '\n';
result += 'Execution element class: ' + execution.get(functions[0]).class.getName();
} else {
result += ' -> [' + gdmp + ']\n';
result += 'None of the bindings can be null';
}
result;
</code>
</snippet>
@@ -0,0 +1,54 @@
<snippet>
<subclass>afryca.ase.Snippet</subclass>
<file></file>
<category>ASE-API</category>
<name>Execute module examples</name>
<description></description>
<code>
var moduleName = 'RandomFPR';
var e1 = ase.executeModule(moduleName, 'n=3');
var e2 = ase
.executeModule(
moduleName,
ParametersBuilder
.aseDefault()
.add('n', 3)
.join()
);
var e3 = ase
.createExecutionBuilder()
.setModule(moduleName)
.putParameter('n', 3)
.execute();
var functions = ase.getModuleFunctions(moduleName);
var fprCopy = e3.get(functions[0]).getResult().clone();
fprCopy.setValueSymmetrically(1, 2, NaN);
var moduleName2 = 'CompleteFPR';
var functions2 = ase.getModuleFunctions(moduleName2);
var e4 = ase
.createExecutionBuilder()
.setModule(moduleName2)
.putVariable('preference', fprCopy) // fprCopy object
.execute();
var e5 = ase
.createExecutionBuilder()
.setModule(moduleName2)
.putParameter('preference', fprCopy) //fprCopy content
.execute();
'e1 result example: ' + e1.get(functions[0]).getResult() + '\n' +
'e2 result example: ' + e2.get(functions[0]).getResult() + '\n' +
'e3 result example: ' + e3.get(functions[0]).getResult() + '\n' +
'fprCopy:\n ' + fprCopy + '\n' +
'e4 result example: ' + e4.get(functions2[0]).getResult() + '\n' +
'e5 result example: ' + e5.get(functions2[0]).getResult() + '\n' +
'e5 script exception example: ' + e5.get(functions2[0]).getScriptException()
</code>
</snippet>
@@ -0,0 +1,83 @@
<snippet>
<subclass>afryca.ase.Snippet</subclass>
<file></file>
<category>ASE-API</category>
<name>Fragments examples</name>
<description>Usage of fragments</description>
<code>
var e1 = ase
.createFragmentBuilder()
.putVariable('arg1', 4)
.putVariable('arg2', 5)
.setCode('arg1 * arg2')
.setOutputType('java.lang.Integer')
.eval()
.getResult();
var e2 = ase
.createFragmentBuilder()
.putVariable('arg1', 4)
.putVariable('arg2', 5)
.setCode('arg1 * arg2')
.eval()
.getResult();
var e3 = ase
.createFragmentBuilder()
.putVariable('n', 4)
.setCode('mctad.factorial(n)')
.setOutputType('java.lang.Integer')
.eval()
.getResult();
var e4 = ase
.createFragmentBuilder()
.putVariable('n', 4)
.addLine('var aux = 1;')
.addLine('for (var i = 1; i <= n; i++) {')
.addLine(' aux *= i;')
.addLine('}')
.addLine('aux')
.setOutputType('java.lang.Integer')
.eval()
.getResult();
var e5 = ase
.createFragmentBuilder()
.putVariable('elements', 4)
.addLine('var aux = [];')
.addLine('for (var i = 0; i < elements; i++) {')
.addLine(' aux[i] = Math.random().toFixed(2);')
.addLine('}')
.addLine('aux')
.eval()
.getResult();
var e6 = ase
.createFragmentBuilder()
.putVariable('elements', 4)
.addLine('var aux = [];')
.addLine('for (var i = 0; i < elements; i++) {')
.addLine(' aux[i] = Math.random().toFixed(2);')
.addLine('}')
.addLine('aux')
.setOutputType('java.lang.Double[]')
.eval()
.getResult();
'e1 = ' + e1 + '\n' +
'e1 class = ' + e1.class + '\n' +
'e2 = ' + e2 + '\n' +
'e2 class = ' + e2.class + '\n' +
'e3 = ' + e2 + '\n' +
'e4 = ' + e3 + '\n' +
'e5 = ' + e4 + '\n' +
'e5 class = ' + e5.class + '\n' +
'e5 value = [' + e5[0] + ',' + e5[1] + ',' + e5[2] + ',' + e5[3] + ']' + '\n' +
'e5 elements class = [' + e5[0].class + ',' + e5[1].class + ',' + e5[2].class + ',' + e5[3].class + ']'+ '\n' +
'e6 = ' + e6 + '\n' +
'e6 class = ' + e6.class + '\n' +
'e6 value = [' + e6[0] + ',' + e6[1] + ',' + e6[2] + ',' + e6[3] + ']' + '\n' +
'e6 elements class = [' + e6[0].class + ',' + e6[1].class + ',' + e6[2].class + ',' + e6[3].class + ']'
</code>
</snippet>
@@ -0,0 +1,88 @@
<snippet>
<subclass>afryca.ase.Snippet</subclass>
<file></file>
<category>ASE-API</category>
<name>Load snippet examples</name>
<description></description>
<code>
var name = 'ASE-API temporal snippet';
var name1 = name + '1';
function newSnippet1() {
var SnippetClass = Java.type('afryca.ase.Snippet');
var snippet = new SnippetClass();
var code = 'var internalVariable = 5;\n';
code += 'internalVariable = internalVariable + 5';
snippet.setFile(name1 + '.script');
snippet.setName(name1);
snippet.setCode(code);
snippet.setCategory('ASE-API');
ase.getSnippets().put(snippet.getFile(), snippet);
}
var name2 = name + '2';
function newSnippet2() {
var SnippetClass = Java.type('afryca.ase.Snippet');
var snippet = new SnippetClass();
var code = 'ase.loadSnippet(\'' + name1 +'\') + 5;';
snippet.setFile(name2 + '.script');
snippet.setName(name2);
snippet.setCode(code);
snippet.setCategory('ASE-API');
ase.getSnippets().put(snippet.getFile(), snippet);
}
var name3 = name + '3';
function newSnippet3() {
var SnippetClass = Java.type('afryca.ase.Snippet');
var snippet = new SnippetClass();
var code = 'function sqr(n) { return n * n; };';
snippet.setFile(name3 + '.script');
snippet.setName(name3);
snippet.setCode(code);
snippet.setCategory('ASE-API');
ase.getSnippets().put(snippet.getFile(), snippet);
}
function e1() {
var value = ase.loadSnippet(name1);
return value + ' ' + (typeof internalVariable);
}
function e1_2() {
var value = ase.getSnippetByName(name1).getCode();
return value;
}
function e2() {
return ase.loadSnippet(name2);
}
function e3() {
var f= ase.loadSnippet(name3);
return f(3) + ' ' + (typeof f) + ' ' + (typeof sqr);
}
function e3_2() {
var value = ase.loadSnippet(name3)(3);
return value + ' ' + (typeof sqr);
}
newSnippet1();
newSnippet2();
newSnippet3();
var result = 'e1(): ' + e1();
result += '\ne1_2(): ' + e1_2();
result += '\ne2(): ' + e2();
result += '\ne3(): ' + e3();
result += '\ne3_2(): ' + e3_2();
ase.getSnippets().remove(ase.getSnippetByName(name1).getFile());
ase.getSnippets().remove(ase.getSnippetByName(name2).getFile());
ase.getSnippets().remove(ase.getSnippetByName(name3).getFile());
result
</code>
</snippet>
@@ -0,0 +1,107 @@
<snippet>
<subclass>afryca.ase.Snippet</subclass>
<file></file>
<category>ASE-API</category>
<name>Scripting examples</name>
<description></description>
<code>
var js = 'function product(x, y) {\n'
js += ' return x * y;\n';
js += '}';
var groovy = 'def product(Double x, Double y) {\n'
groovy += ' return x * y\n';
groovy += '}';
var r = 'product <- function(x ,y) {\n';
r += ' return (x * y)\n';
r += '}';
var python = 'def product(x , y):\n';
python += ' return x * y';
var ruby = 'def product(x, y)\n';
ruby += ' return x * y\n';
ruby += 'end';
var lua = 'function product(x, y)\n';
lua += ' return x * y\n';
lua += 'end';
var scala = 'def product(x:Double, y:Double) : Double = {\n';
scala += ' return x * y\n';
scala += '}';
if (typeof Groovy !== 'undefined') Groovy.eval(groovy);
if (typeof R !== 'undefined') R.eval(r);
if (typeof Jython !== 'undefined') Jython.eval(python);
if (typeof JRuby !== 'undefined') JRuby.eval(ruby);
if (typeof LuaJ !== 'undefined') LuaJ.eval(lua);
if (typeof Scala !== 'undefined') Scala.eval(scala);
eval(js);
var x = 3;
var y = 4;
var code = 'product(' + x + ',' + y + ')';
var notLoaded = 'is not loaded';
var nashorn = eval(code);
var groovyResult = (typeof Groovy !== 'undefined') ? Groovy.eval(code) : notLoaded;
var rengine = (typeof R !== 'undefined') ? R.eval(code) : notLoaded;
var jython = (typeof Jython !== 'undefined') ? Jython.eval(code) : notLoaded;
var jruby = (typeof JRuby !== 'undefined') ? JRuby.eval(code) : notLoaded;
if (typeof LuaJ !== 'undefined') LuaJ.eval('result = ' + code); // LuaJ does not return eval result
var luaj = (typeof LuaJ !== 'undefined') ? LuaJ.get('result') : notLoaded;
var scalaResult = (typeof Scala !== 'undefined') ? Scala.eval(code) : notLoaded;
var mode1 = 'Nashorn: ' + nashorn + '\n' +
'Groovy: ' + groovyResult + '\n' +
'R: ' + rengine + '\n' +
'Jython: ' + jython + '\n' +
'JRuby: ' + jruby + '\n' +
'LuaJ: ' +luaj + '\n'+
'Scala: ' + scalaResult
groovyResult = (typeof Groovy !== 'undefined') ? ase.evalCode(Groovy, code) : notLoaded;
rengine = (typeof R !== 'undefined') ? ase.evalCode(R, code) : notLoaded;
jython = (typeof Jython !== 'undefined') ? ase.evalCode(Jython, code) : notLoaded;
jruby = (typeof JRuby !== 'undefined') ? ase.evalCode(JRuby, code) : notLoaded;
luaj = (typeof LuaJ !== 'undefined') ? ase.evalCode(LuaJ, 'result = ' + code + ' -- ase get result') : notLoaded; // ASE shortcut
scalaResult = (typeof Scala !== 'undefined') ? ase.evalCode(Scala, code) : notLoaded;
var mode2 = 'Groovy: ' + groovyResult + '\n' +
'R: ' + rengine + '\n' +
'Jython: ' + jython + '\n' +
'JRuby: ' + jruby + '\n' +
'LuaJ: ' +luaj + '\n'+
'Scala: ' + scalaResult
groovyResult = ase.evalCode('Groovy', code);
rengine = ase.evalCode('R', code);
jython = ase.evalCode('Jython', code);
jruby = ase.evalCode('JRuby', code);
luaj = ase.evalCode('LuaJ', 'result = ' + code + ' -- ase get result'); // ASE shortcut
scalaResult = ase.evalCode('Scala', code);
var mode3 = 'Groovy: ' + groovyResult + '\n' +
'R: ' + rengine + '\n' +
'Jython: ' + jython + '\n' +
'JRuby: ' + jruby + '\n' +
'LuaJ: ' +luaj + '\n'+
'Scala: ' + scalaResult
'Mode 1\n' + mode1 + '\n\nMode 2\n' + mode2 + '\n\nMode 3\n' + mode3
//
// IMPORTANT INFORMATION ABOUT MODES
//
// - Mode 1 is slightly faster than mode 2
// - Mode 2 is slightly faster than mode 3
// - Mode 1 can only be used in ASE
// - Modes 2 and 3 can be used in ASE or in AFRYCA plug-ins source code
// - Modes 1 and 2 fail if the engine is not loaded
// - Mode 3 return null if the engine is not loaded
</code>
</snippet>
@@ -0,0 +1,23 @@
<snippet>
<subclass>afryca.ase.Snippet</subclass>
<file></file>
<category>ASE-API</category>
<name>Simulate function example</name>
<description></description>
<code>
var functionName = 'ChiclanaRandomFPR';
var simulation = ase.simulateFunction(functionName);
var functionVariable = ase.getFunctionByName(functionName); //function is an reserved JS word
var module = ase.getModuleByName(functionVariable.getCategory());
var simulationCode = module.getSimulationCode();
var functionCode = functionVariable.getCode();
'Function class: ' + functionVariable.class + '\n' +
'Module class: ' + module.class + '\n' +
'Module simulation code: \'' + simulationCode + '\'\n' +
'Function code: \n' + functionCode + '\n' +
'Simulation result: ' + simulation.getResult()+ '. FPR size: ' + simulation.getResult().getNumberOfAlternatives() + '\n' +
'Simulation class: ' + simulation.class
</code>
</snippet>
@@ -0,0 +1,29 @@
<snippet>
<subclass>afryca.ase.Snippet</subclass>
<file></file>
<category>ASE-API</category>
<name>Simulate module example</name>
<description></description>
<code>
var moduleName = 'RandomFPR';
var simulations = ase.simulateModule(moduleName);
var module = ase.getModuleByName(moduleName);
var simulationCode = module.getSimulationCode();
var functions = ase.getModuleFunctions(moduleName);
var simulationsOutput = '';
var result;
for (var i = 0; i < functions.length; i++) {
result = simulations.get(functions[i]).getResult();
simulationsOutput += '\n' + functions[i] + ': ' + result;
if (result != null) {
simulationsOutput += '. FPR size: ' + result.getNumberOfAlternatives();
}
}
'Simulation code: \'' + simulationCode + '\'' + simulationsOutput + '\n' +
'Simulations class: ' + simulations.class + '\n' +
'Simulation element class: ' + simulations.get(functions[0]).class
</code>
</snippet>