result_t coroutine_base::parallel(const v8::FunctionCallbackInfo<v8::Value> &args, v8::Local<v8::Array> &retVal) { int l = args.Length(); int i; if (l == 0) { retVal = v8::Array::New(isolate); return 0; } std::vector<v8::Local<v8::Function> > funs; funs.resize(l); for (i = 0; i < l; i++) { v8::Local<v8::Value> v = args[i]; if (!v.IsEmpty() && v->IsFunction()) funs[i] = v8::Local<v8::Function>::Cast(v); else return CHECK_ERROR(CALL_E_INVALIDARG); } return _parallel(funs, retVal); }
float calc_resistance(int count, char conn, float* array) { if (_invalid_arguments(count, conn, array)) { return -1.0f; } float result = 0.0f; if (conn == 'P') { result = _parallel(count, array); } else { result = _serial(count, array); } return result; }