/** * @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); } }