Esempio n. 1
0
/**
 * @ingroup VuoMathExpressionList
 * Creates a VuoMathExpressionList with the given math expressions.
 *
 * Takes ownership of @a expressions: @a expressions should not later be modified or freed by the caller.
 */
VuoMathExpressionList VuoMathExpressionList_make(VuoList_VuoText expressions)
{
	VuoMathExpressionList me;

	if (expressions && VuoListGetCount_VuoText(expressions) > 0)
	{
		me.expressions = expressions;

		VuoMathExpressionError error = NULL;
		me.parser = VuoMathExpressionParser_makeFromMultipleExpressions(me.expressions, &error);
		VuoMathExpressionError_free(error);
	}
	else
	{
		me.expressions = VuoListCreate_VuoText();
		me.parser = NULL;
	}

	return me;
}
						"and", "&&", "or", "==", "less", "<", "<=", "greater", ">", ">=", "equal", "==", "compare",
						"sin", "cos", "tan", "asin", "acos", "atan", "sinh", "cosh", "tanh", "asinh", "acosh", "atanh",
						"log2", "log10", "log", "ln", "exp", "sqrt", "sign", "rint", "abs", "min", "max", "sum", "avg", "pi",
						"expression", "equation", "formula", "logic", "trigonometry"
					  ],
					  "version" : "1.0.0",
					  "node": {
						  "exampleCompositions" : [ "GraphFunctions.vuo" ]
					  }
				 });


void nodeEvent
(
		VuoInputData(VuoMathExpressionList, {"default":{"expressions":["A + B"],"inputVariables":["A","B"],"outputVariables":["Result"]}}) expression,
		VuoInputData(VuoDictionary_VuoText_VuoReal) values,
		VuoOutputData(VuoReal) result
)
{
	VuoDictionary_VuoText_VuoReal results = VuoMathExpressionList_calculate(expression, values);
	VuoList_VuoText outputVariables = VuoDictionaryGetKeys_VuoText_VuoReal(results);
	*result = (VuoListGetCount_VuoText(outputVariables) == 0) ?
				  0 :
				  VuoDictionaryGetValueForKey_VuoText_VuoReal(results, VuoListGetValue_VuoText(outputVariables, 1));

	VuoRetain(outputVariables);
	VuoRelease(outputVariables);
	VuoDictionary_VuoText_VuoReal_retain(results);
	VuoDictionary_VuoText_VuoReal_release(results);
}
#include "node.h"
#include "VuoDictionary_VuoText_VuoReal.h"

VuoModuleMetadata({
					  "title" : "Make Dictionary",
					  "keywords" : [ ],
					  "version" : "1.0.0",
					  "node": {
						  "exampleCompositions" : [ ]
					  }
				 });


void nodeEvent
(
		VuoInputData(VuoList_VuoText) keys,
		VuoInputData(VuoList_VuoReal) values,
		VuoOutputData(VuoDictionary_VuoText_VuoReal) dictionary
)
{
	*dictionary = VuoDictionaryCreate_VuoText_VuoReal();

	unsigned long count = MIN( VuoListGetCount_VuoText(keys), VuoListGetCount_VuoReal(values) );
	for (unsigned long i = 1; i <= count; ++i)
	{
		VuoText key = VuoListGetValue_VuoText(keys, i);
		VuoReal value = VuoListGetValue_VuoReal(values, i);
		VuoDictionarySetKeyValue_VuoText_VuoReal(*dictionary, key, value);
	}
}