@@ -452,79 +452,69 @@ class Parameter
452452 // / @param symbol a symbol to be bound
453453 // / @param value a value to be set
454454 // / @return a new bound Parameter
455- Parameter bind (const Parameter& symbol, const double value);
455+ Parameter bind (const Parameter& symbol, const double value)
456+ {
457+ Parameter ret;
458+
459+ qk_param_bind (ret.qiskit_param_ .get (), qiskit_param_.get (), &symbol.qiskit_param_ .get (), &value, 1 );
460+ return ret;
461+ }
456462
457463 // / @brief bind values to symbols
458464 // / @param symbols a list symbols to be bound
459465 // / @param value a list of values to be set
460466 // / @return a new bound Parameter
461- Parameter bind (const std::vector<Parameter>& symbols, const std::vector<double > values);
467+ Parameter bind (const std::vector<Parameter>& symbols, const std::vector<double > values)
468+ {
469+ size_t size = std::min (symbols.size (), values.size ());
470+ Parameter ret;
471+ std::vector<qiskit_param*> list (size);
472+ for (uint_t i = 0 ; i < size; i++) {
473+ list[i] = symbols[i].qiskit_param_ .get ();
474+ }
475+
476+ qk_param_bind (ret.qiskit_param_ .get (), qiskit_param_.get (), list.data (), values.data (), size);
477+ return ret;
478+
479+ }
462480
463481 // / @brief substitute a symbol to other symbol
464482 // / @param symbol a symbol to be bound
465483 // / @param other a symbol to be set
466484 // / @return a new substituted Parameter
467- Parameter subs (const Parameter& symbol, const Parameter& other);
485+ Parameter subs (const Parameter& symbol, const Parameter& other)
486+ {
487+ Parameter ret;
488+
489+ qk_param_subs (ret.qiskit_param_ .get (), qiskit_param_.get (), &symbol.qiskit_param_ .get (), &other.qiskit_param_ .get (), 1 );
490+ return ret;
491+ }
468492
469493 // / @brief substitute symbols to other symbols
470494 // / @param symbols a list of symbols to be bound
471495 // / @param others a list of symbols to be set
472496 // / @return a new substituted Parameter
473- Parameter subs (const std::vector<Parameter>& symbols, const std::vector<Parameter>& others);
497+ Parameter subs (const std::vector<Parameter>& symbols, const std::vector<Parameter>& others)
498+ {
499+ size_t size = std::min (symbols.size (), values.size ());
500+ Parameter ret;
501+ std::vector<qiskit_param*> slist (size);
502+ std::vector<qiskit_param*> olist (size);
503+ for (uint_t i = 0 ; i < size; i++) {
504+ slist[i] = symbols[i].qiskit_param_ .get ();
505+ olist[i] = others[i].qiskit_param_ .get ();
506+ }
507+
508+ qk_param_bind (ret.qiskit_param_ .get (), qiskit_param_.get (), slist.data (), olist.data (), size);
509+ return ret;
510+ }
474511#endif
475512
476513 friend std::ostream& operator <<(std::ostream& os, const Parameter& p);
477514
478515};
479516
480- #ifdef QISKIT_CAPI_HAS_SUBS
481- Parameter Parameter::bind (const Parameter& symbol, const double value)
482- {
483- Parameter ret;
484-
485- qk_param_bind (ret.qiskit_param_ .get (), qiskit_param_.get (), &symbol.qiskit_param_ .get (), &value, 1 );
486- return ret;
487- }
488-
489- Parameter Parameter::bind (const std::vector<Parameter>& symbols, const std::vector<double > values)
490- {
491- size_t size = std::min (symbols.size (), values.size ());
492- Parameter ret;
493- std::vector<qiskit_param*> list (size);
494- for (uint_t i = 0 ; i < size; i++) {
495- list[i] = symbols[i].qiskit_param_ .get ();
496- }
497-
498- qk_param_bind (ret.qiskit_param_ .get (), qiskit_param_.get (), list.data (), values.data (), size);
499- return ret;
500-
501- }
502-
503- Parameter Parameter::subs (const Parameter& symbol, const Parameter& other)
504- {
505- Parameter ret;
506-
507- qk_param_subs (ret.qiskit_param_ .get (), qiskit_param_.get (), &symbol.qiskit_param_ .get (), &other.qiskit_param_ .get (), 1 );
508- return ret;
509- }
510-
511- Parameter Parameter::subs (const std::vector<Parameter>& symbol, const std::vector<Parameter>& others)
512- {
513- size_t size = std::min (symbols.size (), values.size ());
514- Parameter ret;
515- std::vector<qiskit_param*> slist (size);
516- std::vector<qiskit_param*> olist (size);
517- for (uint_t i = 0 ; i < size; i++) {
518- slist[i] = symbols[i].qiskit_param_ .get ();
519- olist[i] = others[i].qiskit_param_ .get ();
520- }
521-
522- qk_param_bind (ret.qiskit_param_ .get (), qiskit_param_.get (), slist.data (), olist.data (), size);
523- return ret;
524- }
525- #endif
526-
527- std::ostream& operator <<(std::ostream& os, const Parameter& p)
517+ inline std::ostream& operator <<(std::ostream& os, const Parameter& p)
528518{
529519 os << p.as_str ();
530520 return os;
0 commit comments