MCPcopy Create free account
hub / github.com/clMathLibraries/clBLAS / parseArgMultiplier

Method parseArgMultiplier

src/library/tools/ktest/config-cmdline.cpp:642–690  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

640}
641
642bool
643Config::parseArgMultiplier(
644 const std::string& opt,
645 ArgMultiplier& v)
646{
647 boost::char_separator<char> sep(",");
648 boost::tokenizer< boost::char_separator<char> > tok(opt, sep);
649 boost::tokenizer< boost::char_separator<char> >::iterator it = tok.begin();
650
651 try {
652 switch (kargs_.dtype) {
653 case TYPE_FLOAT:
654 v.argFloat = boost::lexical_cast<float>(*it);
655 ++it;
656 break;
657 case TYPE_DOUBLE:
658 v.argDouble = boost::lexical_cast<double>(*it);
659 ++it;
660 break;
661 case TYPE_COMPLEX_FLOAT:
662 v.argFloatComplex.s[0] = boost::lexical_cast<float>(*it);
663 ++it;
664 if (it == tok.end()) {
665 v.argFloatComplex.s[1] = 0;
666 }
667 else {
668 v.argFloatComplex.s[1] = boost::lexical_cast<float>(*it);
669 ++it;
670 }
671 break;
672 case TYPE_COMPLEX_DOUBLE:
673 v.argDoubleComplex.s[0] = boost::lexical_cast<double>(*it);
674 ++it;
675 if (it == tok.end()) {
676 v.argDoubleComplex.s[1] = 0;
677 }
678 else {
679 v.argDoubleComplex.s[1] = boost::lexical_cast<double>(*it);
680 ++it;
681 }
682 break;
683 }
684 }
685 catch (boost::bad_lexical_cast&) {
686 return false;
687 }
688
689 return (it == tok.end());
690}

Callers

nothing calls this directly

Calls 2

beginMethod · 0.80
endMethod · 0.80

Tested by

no test coverage detected