virtual void interpret(char *input, int &total) { // for internal use int index; index = 0; if (!strncmp(input, nine(), 2)) { total += 9 * multiplier(); index += 2; } else if (!strncmp(input, four(), 2)) { total += 4 * multiplier(); index += 2; } else { if (input[0] == five()) { total += 5 * multiplier(); index = 1; } else index = 0; for (int end = index + 3; index < end; index++) if (input[index] == one()) total += 1 * multiplier(); else break; } strcpy(input, &(input[index])); } // remove leading chars processed
int udiv(uint32 d, uint32 *mp, int *sp, int *pp) { int p, s; uvlong m; s = multiplier(d, 32, &m); p = 0; if(m >= T32) { while((d & 1) == 0) { d >>= 1; p++; } s = multiplier(d, 32 - p, &m); } *mp = m; *pp = p; if(m >= T32) { /*assert(p == 0);*/ *sp = s - 1; return 1; } else { *sp = s; return 0; } }
Real PorousFlowSink::jac(unsigned int jvar) { if (_dictator.notPorousFlowVariable(jvar)) return 0.0; if (_qp_map[_i] == -1) // the Residual is zero for these nodes return 0.0; const unsigned int pvar = _dictator.porousFlowVariableNum(jvar); const int qp_for_this_node = _qp_map[_i]; Real flux = 0; Real deriv = 0; if (_i != _j) { // since the only non-upwinded contribution to the residual is // from the permeability, the only contribution of the residual // at node _i from changing jvar at node _j is through the derivative // of permeability if (!_use_mobility) return 0.0; deriv = _test[_i][_qp] * multiplier(); const Real kprime = (_dpermeability_dvar[_qp][pvar] * _normals[_qp]) * _normals[_qp]; deriv *= _fluid_density_node[qp_for_this_node][_ph] * kprime / _fluid_viscosity[qp_for_this_node][_ph]; if (_use_relperm) deriv *= _relative_permeability[qp_for_this_node][_ph]; if (_use_mass_fraction) deriv *= _mass_fractions[qp_for_this_node][_ph][_sp]; return deriv * _phi[_j][_qp]; } flux = _test[_i][_qp] * multiplier(); deriv = _test[_i][_qp] * dmultiplier_dvar(pvar); if (_use_mobility) { const Real k = (_permeability[_qp] * _normals[_qp]) * _normals[_qp]; const Real mob = _fluid_density_node[qp_for_this_node][_ph] * k / _fluid_viscosity[qp_for_this_node][_ph]; const Real kprime = (_dpermeability_dvar[_qp][pvar] * _normals[_qp]) * _normals[_qp] * _phi[_j][_qp]; const Real mobprime = _dfluid_density_node_dvar[qp_for_this_node][_ph][pvar] * k / _fluid_viscosity[qp_for_this_node][_ph] + _fluid_density_node[qp_for_this_node][_ph] * kprime / _fluid_viscosity[qp_for_this_node][_ph] - _fluid_density_node[qp_for_this_node][_ph] * k * _dfluid_viscosity_dvar[qp_for_this_node][_ph][pvar] / std::pow(_fluid_viscosity[qp_for_this_node][_ph], 2); deriv = mob * deriv + mobprime * flux; flux *= mob; } if (_use_relperm) { deriv = _relative_permeability[qp_for_this_node][_ph] * deriv + _drelative_permeability_dvar[qp_for_this_node][_ph][pvar] * flux; flux *= _relative_permeability[qp_for_this_node][_ph]; } if (_use_mass_fraction) { deriv = _mass_fractions[qp_for_this_node][_ph][_sp] * deriv + _dmass_fractions_dvar[qp_for_this_node][_ph][_sp][pvar] * flux; } return deriv; }
boost::optional<double> Lights_Impl::lightingLevel() const { OptionalDouble temp = lightsDefinition().lightingLevel(); if (temp) { return temp.get() * multiplier(); } return temp; }
int main(){ int a, b; printf("Digite dois números para multiplicação, separados por espaços: > "); scanf("%d %d",&a,&b); printf("O produto entre %d e %d é %d\n",a,b,multiplier(a,b)); return 0; }
void grid_octree_node:: split() { if(child_nodes_ == nullptr) { child_nodes_ = new grid_octree_node*[8]; for(size_t child_index = 0; child_index < 8; ++child_index) { scm::math::vec3d new_pos = get_position_center(); scm::math::vec3d multiplier(1.0, 1.0, 1.0); if(child_index % 2 == 0) { multiplier.x = -1.0; } if(child_index / 4 == 1) { multiplier.y = -1.0; } if(child_index % 4 >= 2) { multiplier.z = -1.0; } double new_size = get_size().x * 0.5; new_pos = new_pos + (multiplier * get_size().x * 0.25); child_nodes_[child_index] = new grid_octree_node(new_size, new_pos); } } }
boost::optional<double> Lights_Impl::powerPerPerson() const { OptionalDouble temp = lightsDefinition().wattsperPerson(); if (temp) { return temp.get() * multiplier(); } return temp; }
boost::optional<double> GasEquipment_Impl::powerPerFloorArea() const { OptionalDouble result = gasEquipmentDefinition().wattsperSpaceFloorArea(); if (result) { return result.get() * multiplier(); } return result; }
boost::optional<double> ElectricEquipment_Impl::designLevel() const { OptionalDouble result = electricEquipmentDefinition().designLevel(); if (result) { return result.get() * multiplier(); } return result; }
boost::optional<double> ElectricEquipment_Impl::powerPerPerson() const { OptionalDouble result = electricEquipmentDefinition().wattsperPerson(); if (result) { return result.get() * multiplier(); } return result; }
Malachite::Image load(const QVector<Ref<PsdChannelData> > &channeldDataList, const QVector<PsdChannelInfo> &channelInfos, const QRect &rect, int bpp) { Q_ASSERT(channeldDataList.size() == channelInfos.size()); int count = rect.width() * rect.height(); Malachite::Image image(rect.size()); auto channelDataI = channeldDataList.begin(); for (const PsdChannelInfo &info : channelInfos) { PAINTFIELD_DEBUG << "image size" << image.area() << "data size" << (*channelDataI)->rawData.size(); loadDataForBppAndChannel(image, (*channelDataI)->rawData, bpp, info.id); ++channelDataI; } // premultiply pixels { auto p = image.bits(); for (int i = 0; i < count; ++i) { auto a = p->a(); Malachite::Pixel multiplier(1, a, a, a); p->rv() *= multiplier.v(); ++p; } } return image; }
void FourierTransposition(std::vector< std::complex<double> >* polinomial, bool invert) { if ((*polinomial).size() == 1) { return; } std::vector<std::complex<double> > firstPolinomial((*polinomial).size() / 2); std::vector<std::complex<double> > secondPolinomial((*polinomial).size() / 2); int newPosition = 0; for (size_t originalPosition = 0; originalPosition < (*polinomial).size(); originalPosition += 2) { firstPolinomial[newPosition] = (*polinomial)[originalPosition]; secondPolinomial[newPosition] = (*polinomial)[originalPosition + 1]; ++newPosition; } FourierTransposition(&firstPolinomial, invert); FourierTransposition(&secondPolinomial, invert); double angle = 2 * PI / (*polinomial).size(); std::complex<double> inversionFactor(1); if (invert) { angle = -angle; inversionFactor /= 2; } std::complex<double> root(1); std::complex<double> multiplier(cos(angle), sin(angle)); for (size_t position = 0; position < (*polinomial).size() / 2; ++position) { (*polinomial)[position] = (firstPolinomial[position] + root * secondPolinomial[position]) * inversionFactor; (*polinomial)[position + (*polinomial).size() / 2] = (firstPolinomial[position] - root * secondPolinomial[position]) * inversionFactor; root *= multiplier; } }
boost::optional<double> InternalMass_Impl::surfaceAreaPerPerson() const { OptionalDouble result = internalMassDefinition().surfaceAreaperPerson(); if (result) { return result.get() * multiplier(); } return result; }
int multiplier( int num ) { int lastdigit, rest; if ( num < 9 ) return num; else { lastdigit = num % 10; rest = num / 10; return ( multiplier( rest ) * lastdigit ); } }
int persistencecheck( int num ) { int ans; ans = multiplier( num ); if ( ans < 9 ) return 1; else { return persistencecheck( ans ) + 1; } }
int sdiv(uint32 d, uint32 *mp, int *sp) { int s; uvlong m; s = multiplier(d, 32 - 1, &m); *mp = m; *sp = s; if(m >= T31) return 1; else return 0; }
Real PorousFlowSink::computeQpResidual() { if (_qp_map[_i] == -1) // the PorousFlowMaterials no not store nodal info for this node (it isn't on the boundary) return 0.0; const int qp_for_this_node = _qp_map[_i]; Real flux = _test[_i][_qp] * multiplier(); if (_use_mobility) { const Real k = (_permeability[_qp] * _normals[_qp]) * _normals[_qp]; // do not upwind permeability flux *= _fluid_density_node[qp_for_this_node][_ph] * k / _fluid_viscosity[qp_for_this_node][_ph]; } if (_use_relperm) flux *= _relative_permeability[qp_for_this_node][_ph]; if (_use_mass_fraction) flux *= _mass_fractions[qp_for_this_node][_ph][_sp]; return flux; }
int main (int argc, char *argv[]) { struct Matrice m; struct Matrice I; int i; initialiser(&m); m.contenu[3][1] = 9.0; m.contenu[7][19] = 3.0; afficher(&m); // Creer la matrice Identite for (i = 0; i < 20; i++) { I.contenu[i][i] = 1.0; } multiplier(&m, &I, &m); afficher(&m); return 0; }
// doesn't return a remainder // N.B. this function will break if there is a remainder const Polynomial Polynomial::div( const Polynomial& rhs ) const { Polynomial retVal; if( degree() < rhs.degree() ) { return retVal; // return 0 } Polynomial rSide( *this ); int rDeg = rhs.degree(); double rCoeff = rhs._list.begin().getData().coeff; itr_t it = rSide._list.begin(); while( 1 ) { if( it == rSide._list.end() ) break; int deg_diff = it.getData().degree() - rDeg; if( deg_diff < 0 ) break; // TODO: check this condition, maybe need to put rest into remainder? double coeff = it.getData().coeff / rCoeff; Polynomial tmp; Term multiplier( coeff, deg_diff ); retVal.addTerm( multiplier ); for( itr_t itt = rhs._list.begin(); itt != rhs._list.end(); ++itt ) { Term res = itt.getData() * multiplier; tmp.addTerm( res ); } rSide = rSide.sub( tmp ); it = rSide._list.begin(); } return retVal; }
double SteamEquipment_Impl::getPowerPerFloorArea(double floorArea, double numPeople) const { return steamEquipmentDefinition().getPowerPerFloorArea(floorArea,numPeople) * multiplier(); }
double ElectricEquipment_Impl::getPowerPerPerson(double floorArea, double numPeople) const { return electricEquipmentDefinition().getPowerPerPerson(floorArea,numPeople) * multiplier(); }
double ElectricEquipment_Impl::getDesignLevel(double floorArea, double numPeople) const { return electricEquipmentDefinition().getDesignLevel(floorArea,numPeople) * multiplier(); }
double HotWaterEquipment_Impl::getDesignLevel(double floorArea, double numPeople) const { return hotWaterEquipmentDefinition().getDesignLevel(floorArea,numPeople) * multiplier(); }
void main() { int r; r = multiplier(10, 20); printf("The product is: %d\n", r); }
void varying () { std::cout << multiplier(10) << std::endl; std::cout << multiplier(1, 2, 3) << std::endl; std::cout << multiplier(6, 7.1, 8) << std::endl; }
sexp run_main (int argc, char **argv) { #if SEXP_USE_MODULES char *impmod; #endif char *arg; const char *prefix=NULL, *suffix=NULL, *main_symbol=NULL, *main_module=NULL; sexp_sint_t i, j, c, quit=0, print=0, init_loaded=0, mods_loaded=0, fold_case=SEXP_DEFAULT_FOLD_CASE_SYMS, nonblocking=0; sexp_uint_t heap_size=0, heap_max_size=SEXP_MAXIMUM_HEAP_SIZE; sexp out=SEXP_FALSE, ctx=NULL, ls; sexp_gc_var4(tmp, sym, args, env); args = SEXP_NULL; env = NULL; /* SRFI 22: invoke `main` procedure by default if the interpreter is */ /* invoked as `scheme-r7rs`. */ arg = strrchr(argv[0], '/'); if (strncmp((arg == NULL ? argv[0] : arg + 1), "scheme-r7rs", strlen("scheme-r7rs")) == 0) { main_symbol = "main"; /* skip option parsing since we can't pass `--` before the name of script */ /* to avoid misinterpret the name as options when the interpreter is */ /* executed via `#!/usr/env/bin scheme-r7rs` shebang. */ i = 1; goto done_options; } /* parse options */ for (i=1; i < argc && argv[i][0] == '-'; i++) { switch ((c=argv[i][1])) { case 'D': init_context(); arg = (argv[i][2] == '\0') ? argv[++i] : argv[i]+2; sym = sexp_intern(ctx, arg, -1); ls = sexp_global(ctx, SEXP_G_FEATURES); if (sexp_pairp(ls)) { for (; sexp_pairp(sexp_cdr(ls)); ls=sexp_cdr(ls)) ; sexp_cdr(ls) = sexp_cons(ctx, sym, SEXP_NULL); } break; case 'e': case 'p': mods_loaded = 1; load_init(0); print = (argv[i][1] == 'p'); arg = ((argv[i][2] == '\0') ? argv[++i] : argv[i]+2); check_nonull_arg('e', arg); tmp = check_exception(ctx, sexp_eval_string(ctx, arg, -1, env)); if (print) { if (! sexp_oportp(out)) out = sexp_eval_string(ctx, "(current-output-port)", -1, env); sexp_write(ctx, tmp, out); sexp_write_char(ctx, '\n', out); } quit = 1; break; case 'l': mods_loaded = 1; load_init(0); arg = ((argv[i][2] == '\0') ? argv[++i] : argv[i]+2); check_nonull_arg('l', arg); check_exception(ctx, sexp_load_module_file(ctx, arg, env)); break; case 'x': prefix = sexp_environment_prefix; suffix = sexp_environment_suffix; case 'm': arg = ((argv[i][2] == '\0') ? argv[++i] : argv[i]+2); if (c == 'x') { if (strcmp(arg, "chibi.primitive") == 0) { goto load_primitive; } else if (strcmp(arg, "scheme.small") == 0) { load_init(0); break; } } else { prefix = sexp_import_prefix; suffix = sexp_import_suffix; } mods_loaded = 1; load_init(c == 'x'); #if SEXP_USE_MODULES check_nonull_arg(c, arg); impmod = make_import(prefix, arg, suffix); tmp = check_exception(ctx, sexp_eval_string(ctx, impmod, -1, (c=='x' ? sexp_global(ctx, SEXP_G_META_ENV) : env))); free(impmod); if (c == 'x') { sexp_set_parameter(ctx, sexp_global(ctx, SEXP_G_META_ENV), sexp_global(ctx, SEXP_G_INTERACTION_ENV_SYMBOL), tmp); sexp_context_env(ctx) = env = tmp; sexp_add_import_binding(ctx, env); tmp = sexp_param_ref(ctx, env, sexp_global(ctx, SEXP_G_CUR_OUT_SYMBOL)); if (tmp != NULL && !sexp_oportp(tmp)) { sexp_load_standard_ports(ctx, env, stdin, stdout, stderr, 0); } } #endif break; load_primitive: case 'Q': init_context(); mods_loaded = 1; if (! init_loaded++) sexp_load_standard_ports(ctx, env, stdin, stdout, stderr, 0); handle_noarg(); break; case 'q': argv[i--] = (char*)"-xchibi"; break; case 'A': init_context(); arg = ((argv[i][2] == '\0') ? argv[++i] : argv[i]+2); check_nonull_arg('A', arg); sexp_add_module_directory(ctx, tmp=sexp_c_string(ctx,arg,-1), SEXP_TRUE); break; case 'I': init_context(); arg = ((argv[i][2] == '\0') ? argv[++i] : argv[i]+2); check_nonull_arg('I', arg); sexp_add_module_directory(ctx, tmp=sexp_c_string(ctx,arg,-1), SEXP_FALSE); break; #if SEXP_USE_GREEN_THREADS case 'b': nonblocking = 1; break; #endif case '-': if (argv[i][2] == '\0') { i++; goto done_options; } sexp_usage(1); case 'h': arg = ((argv[i][2] == '\0') ? argv[++i] : argv[i]+2); check_nonull_arg('h', arg); #if ! SEXP_USE_BOEHM heap_size = strtoul(arg, &arg, 0); if (sexp_isalpha((unsigned char)*arg)) heap_size *= multiplier(*arg++); if (*arg == '/') { heap_max_size = strtoul(arg+1, &arg, 0); if (sexp_isalpha((unsigned char)*arg)) heap_max_size *= multiplier(*arg++); } #endif break; #if SEXP_USE_IMAGE_LOADING case 'i': arg = ((argv[i][2] == '\0') ? argv[++i] : argv[i]+2); if (ctx) { fprintf(stderr, "-:i <file>: image files must be loaded first\n"); exit_failure(); } ctx = sexp_load_image(arg, 0, heap_size, heap_max_size); if (!ctx || !sexp_contextp(ctx)) { fprintf(stderr, "-:i <file>: couldn't open image file for reading: %s\n", arg); fprintf(stderr, " %s\n", sexp_load_image_err()); ctx = NULL; } else { env = sexp_load_standard_params(ctx, sexp_context_env(ctx), nonblocking); init_loaded++; } break; case 'd': if (! init_loaded++) { init_context(); env = sexp_load_standard_env(ctx, env, SEXP_SEVEN); } arg = ((argv[i][2] == '\0') ? argv[++i] : argv[i]+2); if (sexp_save_image(ctx, arg) != SEXP_TRUE) { fprintf(stderr, "-d <file>: couldn't save image to file: %s\n", arg); fprintf(stderr, " %s\n", sexp_load_image_err()); exit_failure(); } quit = 1; break; #endif case 'V': load_init(1); if (! sexp_oportp(out)) out = sexp_eval_string(ctx, "(current-output-port)", -1, env); sexp_write_string(ctx, sexp_version_string, out); tmp = sexp_env_ref(ctx, env, sym=sexp_intern(ctx, "*features*", -1), SEXP_NULL); sexp_write(ctx, tmp, out); sexp_newline(ctx, out); return SEXP_TRUE; #if SEXP_USE_FOLD_CASE_SYMS case 'f': fold_case = 1; init_context(); sexp_global(ctx, SEXP_G_FOLD_CASE_P) = SEXP_TRUE; handle_noarg(); break; #endif case 'R': main_module = argv[i][2] != '\0' ? argv[i]+2 : (i+1 < argc && argv[i+1][0] != '-') ? argv[++i] : "chibi.repl"; if (main_symbol == NULL) main_symbol = "main"; break; case 'r': main_symbol = argv[i][2] == '\0' ? "main" : argv[i]+2; break; case 's': init_context(); sexp_global(ctx, SEXP_G_STRICT_P) = SEXP_TRUE; handle_noarg(); break; case 'T': init_context(); sexp_global(ctx, SEXP_G_NO_TAIL_CALLS_P) = SEXP_TRUE; handle_noarg(); break; case 't': mods_loaded = 1; load_init(1); arg = ((argv[i][2] == '\0') ? argv[++i] : argv[i]+2); #if SEXP_USE_MODULES check_nonull_arg('t', arg); suffix = strrchr(arg, '.'); sym = sexp_intern(ctx, suffix + 1, -1); *(char*)suffix = '\0'; impmod = make_import(sexp_trace_prefix, arg, sexp_trace_suffix); tmp = check_exception(ctx, sexp_eval_string(ctx, impmod, -1, sexp_meta_env(ctx))); if (!(tmp && sexp_envp(tmp))) { fprintf(stderr, "couldn't find library to trace: %s\n", impmod); } else if (!((sym = sexp_env_cell(ctx, tmp, sym, 0)))) { fprintf(stderr, "couldn't find binding to trace: %s in %s\n", suffix + 1, impmod); } else { sym = sexp_list1(ctx, sym); tmp = check_exception(ctx, sexp_eval_string(ctx, "(environment '(chibi trace))", -1, sexp_meta_env(ctx))); tmp = sexp_env_ref(ctx, tmp, sexp_intern(ctx, "trace-cell", -1), 0); if (tmp && sexp_procedurep(tmp)) check_exception(ctx, sexp_apply(ctx, tmp, sym)); } free(impmod); #endif break; default: fprintf(stderr, "unknown option: %s\n", argv[i]); /* ... FALLTHROUGH ... */ case '?': sexp_usage(1); } } done_options: if (!quit || main_symbol != NULL) { init_context(); /* build argument list */ if (i < argc) for (j=argc-1; j>=i; j--) args = sexp_cons(ctx, tmp=sexp_c_string(ctx,argv[j],-1), args); if (i >= argc || main_symbol != NULL) args = sexp_cons(ctx, tmp=sexp_c_string(ctx,argv[0],-1), args); load_init(i < argc || main_symbol != NULL); sexp_set_parameter(ctx, sexp_meta_env(ctx), sym=sexp_intern(ctx, sexp_argv_symbol, -1), args); if (i >= argc && main_symbol == NULL) { /* no script or main, run interactively */ repl(ctx, env); } else { #if SEXP_USE_MODULES /* load the module or script */ if (main_module != NULL) { impmod = make_import("(load-module '(", main_module, "))"); env = check_exception(ctx, sexp_eval_string(ctx, impmod, -1, sexp_meta_env(ctx))); if (sexp_vectorp(env)) env = sexp_vector_ref(env, SEXP_ONE); free(impmod); check_exception(ctx, env); if (!sexp_envp(env)) { fprintf(stderr, "couldn't find module: %s\n", main_module); exit_failure(); } } else #endif if (i < argc) { /* script usage */ #if SEXP_USE_MODULES /* reset the environment to have only the `import' and */ /* `cond-expand' bindings */ if (!mods_loaded) { env = sexp_make_env(ctx); sexp_set_parameter(ctx, sexp_meta_env(ctx), sexp_global(ctx, SEXP_G_INTERACTION_ENV_SYMBOL), env); sexp_context_env(ctx) = env; sym = sexp_intern(ctx, "repl-import", -1); tmp = sexp_env_ref(ctx, sexp_meta_env(ctx), sym, SEXP_VOID); sym = sexp_intern(ctx, "import", -1); check_exception(ctx, sexp_env_define(ctx, env, sym, tmp)); sym = sexp_intern(ctx, "cond-expand", -1); tmp = sexp_env_cell(ctx, sexp_meta_env(ctx), sym, 0); #if SEXP_USE_RENAME_BINDINGS sexp_env_rename(ctx, env, sym, tmp); #endif sexp_env_define(ctx, env, sym, sexp_cdr(tmp)); } #endif sexp_context_tracep(ctx) = 1; tmp = sexp_env_bindings(env); #if SEXP_USE_MODULES /* use scheme load if possible for better stack traces */ sym = sexp_intern(ctx, "load", -1); tmp = sexp_env_ref(ctx, sexp_meta_env(ctx), sym, SEXP_FALSE); if (sexp_procedurep(tmp)) { sym = sexp_c_string(ctx, argv[i], -1); sym = sexp_list2(ctx, sym, env); tmp = check_exception(ctx, sexp_apply(ctx, tmp, sym)); } else #endif tmp = check_exception(ctx, sexp_load(ctx, sym=sexp_c_string(ctx, argv[i], -1), env)); #if SEXP_USE_WARN_UNDEFS sexp_warn_undefs(ctx, env, tmp, SEXP_VOID); #endif #ifdef EMSCRIPTEN if (sexp_applicablep(tmp)) { sexp_resume_ctx = ctx; sexp_resume_proc = tmp; sexp_preserve_object(ctx, sexp_resume_proc); emscripten_exit_with_live_runtime(); } #endif } /* SRFI-22: run main if specified */ if (main_symbol) { sym = sexp_intern(ctx, main_symbol, -1); tmp = sexp_env_ref(ctx, env, sym, SEXP_FALSE); if (sexp_procedurep(tmp)) { args = sexp_list1(ctx, sexp_cdr(args)); check_exception(ctx, sexp_apply(ctx, tmp, args)); } else { fprintf(stderr, "couldn't find main binding: %s in %s\n", main_symbol, main_module ? main_module : argv[i]); } } } } sexp_gc_release4(ctx); if (sexp_destroy_context(ctx) == SEXP_FALSE) { fprintf(stderr, "destroy_context error\n"); return SEXP_FALSE; } return SEXP_TRUE; }
void run_main (int argc, char **argv) { char *arg, *impmod, *p; sexp out=SEXP_FALSE, env=NULL, ctx=NULL; sexp_sint_t i, j, len, quit=0, print=0, init_loaded=0, fold_case=SEXP_DEFAULT_FOLD_CASE_SYMS; sexp_uint_t heap_size=0, heap_max_size=SEXP_MAXIMUM_HEAP_SIZE; sexp_gc_var2(tmp, args); args = SEXP_NULL; /* parse options */ for (i=1; i < argc && argv[i][0] == '-'; i++) { switch (argv[i][1]) { case 'e': case 'p': load_init(); print = (argv[i][1] == 'p'); arg = ((argv[i][2] == '\0') ? argv[++i] : argv[i]+2); check_nonull_arg('e', arg); tmp = check_exception(ctx, sexp_eval_string(ctx, arg, -1, env)); if (print) { if (! sexp_oportp(out)) out = sexp_eval_string(ctx, "(current-output-port)", -1, env); sexp_write(ctx, tmp, out); sexp_write_char(ctx, '\n', out); } quit = 1; break; case 'l': load_init(); arg = ((argv[i][2] == '\0') ? argv[++i] : argv[i]+2); check_nonull_arg('l', arg); check_exception(ctx, sexp_load_module_file(ctx, arg, env)); break; case 'm': load_init(); arg = ((argv[i][2] == '\0') ? argv[++i] : argv[i]+2); check_nonull_arg('m', arg); len = strlen(arg)+strlen(sexp_import_prefix)+strlen(sexp_import_suffix); impmod = (char*) malloc(len+1); strcpy(impmod, sexp_import_prefix); strcpy(impmod+strlen(sexp_import_prefix), arg); strcpy(impmod+len-+strlen(sexp_import_suffix), sexp_import_suffix); impmod[len] = '\0'; for (p=impmod; *p; p++) if (*p == '.') *p=' '; check_exception(ctx, sexp_eval_string(ctx, impmod, -1, env)); free(impmod); break; case 'q': init_context(); if (! init_loaded++) sexp_load_standard_ports(ctx, env, stdin, stdout, stderr, 0); break; case 'A': init_context(); arg = ((argv[i][2] == '\0') ? argv[++i] : argv[i]+2); check_nonull_arg('A', arg); sexp_add_module_directory(ctx, tmp=sexp_c_string(ctx,arg,-1), SEXP_TRUE); break; case 'I': init_context(); arg = ((argv[i][2] == '\0') ? argv[++i] : argv[i]+2); check_nonull_arg('I', arg); sexp_add_module_directory(ctx, tmp=sexp_c_string(ctx,arg,-1), SEXP_FALSE); break; case '-': i++; goto done_options; case 'h': arg = ((argv[i][2] == '\0') ? argv[++i] : argv[i]+2); check_nonull_arg('h', arg); heap_size = strtoul(arg, &arg, 0); if (sexp_isalpha(*arg)) heap_size *= multiplier(*arg++); if (*arg == '/') { heap_max_size = strtoul(arg+1, &arg, 0); if (sexp_isalpha(*arg)) heap_max_size *= multiplier(*arg++); } break; case 'V': load_init(); if (! sexp_oportp(out)) out = sexp_eval_string(ctx, "(current-output-port)", -1, env); sexp_write_string(ctx, sexp_version_string, out); tmp = sexp_env_ref(env, sexp_intern(ctx, "*features*", -1), SEXP_NULL); sexp_write(ctx, tmp, out); sexp_newline(ctx, out); return; #if SEXP_USE_FOLD_CASE_SYMS case 'f': fold_case = 1; if (ctx) sexp_global(ctx, SEXP_G_FOLD_CASE_P) = SEXP_TRUE; break; #endif default: fprintf(stderr, "unknown option: %s\n", argv[i]); exit_failure(); } } done_options: if (! quit) { load_init(); if (i < argc) for (j=argc-1; j>i; j--) args = sexp_cons(ctx, tmp=sexp_c_string(ctx,argv[j],-1), args); else args = sexp_cons(ctx, tmp=sexp_c_string(ctx,argv[0],-1), args); sexp_env_define(ctx, env, sexp_intern(ctx, sexp_argv_symbol, -1), args); sexp_eval_string(ctx, sexp_argv_proc, -1, env); if (i < argc) { /* script usage */ sexp_context_tracep(ctx) = 1; check_exception(ctx, sexp_load(ctx, tmp=sexp_c_string(ctx, argv[i], -1), env)); tmp = sexp_intern(ctx, "main", -1); tmp = sexp_env_ref(env, tmp, SEXP_FALSE); if (sexp_procedurep(tmp)) { args = sexp_list1(ctx, args); check_exception(ctx, sexp_apply(ctx, tmp, args)); } } else { repl(ctx, env); } } sexp_gc_release2(ctx); sexp_destroy_context(ctx); }
double InternalMass_Impl::getSurfaceAreaPerPerson(double floorArea, double numPeople) const { return internalMassDefinition().getSurfaceAreaPerPerson(floorArea,numPeople) * multiplier(); }
double HotWaterEquipment_Impl::getPowerPerPerson(double floorArea, double numPeople) const { return hotWaterEquipmentDefinition().getPowerPerPerson(floorArea,numPeople) * multiplier(); }
double Lights_Impl::getPowerPerPerson(double floorArea, double numPeople) const { return lightsDefinition().getPowerPerPerson(floorArea,numPeople) * multiplier(); }