23 namespace SOP_LinearSolverEnums
36 using namespace UT::Literal;
56 using namespace UT::Literal;
84 using namespace UT::Literal;
113 using namespace UT::Literal;
114 switch (enum_value) {
132 using namespace UT::Literal;
133 switch (enum_value) {
154 using namespace UT::Literal;
155 switch (enum_value) {
176 using namespace UT::Literal;
177 switch (enum_value) {
195 using namespace UT::Literal;
196 switch (enum_value) {
216 using namespace UT::Literal;
217 switch (enum_value) {
237 using namespace UT::Literal;
238 switch (enum_value) {
256 using namespace UT::Literal;
257 switch (enum_value) {
276 using namespace UT::Literal;
277 switch (enum_value) {
297 using namespace UT::Literal;
298 switch (enum_value) {
316 using namespace UT::Literal;
317 switch (enum_value) {
335 using namespace UT::Literal;
336 switch (enum_value) {
355 myCookInplace =
false;
357 myUseIterativeSolver =
false;
358 myIterativeSolver = 5;
359 mySolveWithGuess =
false;
360 myUseEigensolver =
false;
361 mySpectraEigensolver = 0;
364 mySolverTolerance = 1e-4;
365 mySolverMaxIterations = 3;
367 myVolumeEncoding = 0;
368 myPointsPrimsEncoding = 0;
369 myDetailEncoding = 0;
370 mySquareMatrix =
false;
373 myRowAttribute =
"row"_UTsh;
374 myColAttribute =
"col"_UTsh;
375 myMatrixValueAttribute =
"value"_UTsh;
376 myVectorSrcStorage = 0;
377 myVectorSrcAttribute =
"known"_UTsh;
378 myVectorDstStorage = 0;
379 myVectorDstAttribute =
"unknown"_UTsh;
380 myPinnedGroup =
""_UTsh;
383 myAccumulateResult =
false;
384 myDenseDirectSolver = 0;
385 mySparseDirectSolver = 1;
386 mySparseDirectSolverBackend = 0;
387 myDensePreconditioner = 1;
388 mySparsePreconditioner = 1;
401 if (myMode != src.myMode)
return false;
402 if (myCookInplace != src.myCookInplace)
return false;
403 if (myPrecision != src.myPrecision)
return false;
404 if (myUseIterativeSolver != src.myUseIterativeSolver)
return false;
405 if (myIterativeSolver != src.myIterativeSolver)
return false;
406 if (mySolveWithGuess != src.mySolveWithGuess)
return false;
407 if (myUseEigensolver != src.myUseEigensolver)
return false;
408 if (mySpectraEigensolver != src.mySpectraEigensolver)
return false;
409 if (myNumEigenpairs != src.myNumEigenpairs)
return false;
410 if (myShift != src.myShift)
return false;
411 if (mySolverTolerance != src.mySolverTolerance)
return false;
412 if (mySolverMaxIterations != src.mySolverMaxIterations)
return false;
413 if (myMatrixStorage != src.myMatrixStorage)
return false;
414 if (myVolumeEncoding != src.myVolumeEncoding)
return false;
415 if (myPointsPrimsEncoding != src.myPointsPrimsEncoding)
return false;
416 if (myDetailEncoding != src.myDetailEncoding)
return false;
417 if (mySquareMatrix != src.mySquareMatrix)
return false;
418 if (myRows != src.myRows)
return false;
419 if (myCols != src.myCols)
return false;
420 if (myRowAttribute != src.myRowAttribute)
return false;
421 if (myColAttribute != src.myColAttribute)
return false;
422 if (myMatrixValueAttribute != src.myMatrixValueAttribute)
return false;
423 if (myVectorSrcStorage != src.myVectorSrcStorage)
return false;
424 if (myVectorSrcAttribute != src.myVectorSrcAttribute)
return false;
425 if (myVectorDstStorage != src.myVectorDstStorage)
return false;
426 if (myVectorDstAttribute != src.myVectorDstAttribute)
return false;
427 if (myPinnedGroup != src.myPinnedGroup)
return false;
428 if (myReduceRows != src.myReduceRows)
return false;
429 if (myScale != src.myScale)
return false;
430 if (myAccumulateResult != src.myAccumulateResult)
return false;
431 if (myDenseDirectSolver != src.myDenseDirectSolver)
return false;
432 if (mySparseDirectSolver != src.mySparseDirectSolver)
return false;
433 if (mySparseDirectSolverBackend != src.mySparseDirectSolverBackend)
return false;
434 if (myDensePreconditioner != src.myDensePreconditioner)
return false;
435 if (mySparsePreconditioner != src.mySparsePreconditioner)
return false;
469 myCookInplace =
false;
471 graph->
evalOpParm(myCookInplace, nodeidx,
"cookinplace", time, graph->
isDirect()?
nullptr:depnode);
474 graph->
evalOpParm(myPrecision, nodeidx,
"precision", time, graph->
isDirect()?
nullptr:depnode);
475 myUseIterativeSolver =
false;
476 if (
true && ( (
true&&!(((
int64(getMode())==3))||((
int64(getMode())==2))||((
int64(getMode())==1)))) ) )
477 graph->
evalOpParm(myUseIterativeSolver, nodeidx,
"useiterativesolver", time, graph->
isDirect()?
nullptr:depnode);
478 myIterativeSolver = 5;
479 if (
true && ( (
true&&!(((
int64(getMode())==3))||((
int64(getMode())==2))||((getUseIterativeSolver()==0))||((
int64(getMode())!=0)))) ) )
480 graph->
evalOpParm(myIterativeSolver, nodeidx,
"iterativesolver", time, graph->
isDirect()?
nullptr:depnode);
481 mySolveWithGuess =
false;
482 if (
true && ( (
true&&!(((
int64(getMode())==3))||((
int64(getMode())==2))||((getUseIterativeSolver()==0))||((
int64(getMode())!=0)))) ) )
483 graph->
evalOpParm(mySolveWithGuess, nodeidx,
"solvewithguess", time, graph->
isDirect()?
nullptr:depnode);
484 myUseEigensolver =
false;
485 if (
true && ( (
true&&!(((
int64(getMode())==3))||((
int64(getMode())==2))||((
int64(getMode())!=1)))) ) )
486 graph->
evalOpParm(myUseEigensolver, nodeidx,
"useeigensolver", time, graph->
isDirect()?
nullptr:depnode);
487 mySpectraEigensolver = 0;
488 if (
true && ( (
true&&!(((
int64(getMode())==3))||((
int64(getMode())==2))||((getUseEigensolver()==0))||((
int64(getMode())!=1)))) ) )
489 graph->
evalOpParm(mySpectraEigensolver, nodeidx,
"spectraeigensolver", time, graph->
isDirect()?
nullptr:depnode);
491 if (
true && ( (
true&&!(((
int64(getMode())==3))||((
int64(getMode())==2))||((getUseEigensolver()==0))||((
int64(getMode())!=1)))) ) )
492 graph->
evalOpParm(myNumEigenpairs, nodeidx,
"numeigenpairs", time, graph->
isDirect()?
nullptr:depnode);
494 if (
true && ( (
true&&!(((
int64(getMode())==3))||((
int64(getMode())==2))||((getUseEigensolver()==0))||((
int64(getSpectraEigensolver())!=2)&&(
int64(getSpectraEigensolver())!=3))||((
int64(getMode())!=1)))) ) )
495 graph->
evalOpParm(myShift, nodeidx,
"shift", time, graph->
isDirect()?
nullptr:depnode);
496 mySolverTolerance = 1e-4;
497 if (
true && ( (
true&&!(((
int64(getMode())==3))||((
int64(getMode())==2))||((getUseIterativeSolver()==0)&&(getUseEigensolver()==0)))) ) )
498 graph->
evalOpParm(mySolverTolerance, nodeidx,
"solvertolerance", time, graph->
isDirect()?
nullptr:depnode);
499 mySolverMaxIterations = 3;
500 if (
true && ( (
true&&!(((
int64(getMode())==3))||((
int64(getMode())==2))||((getUseIterativeSolver()==0)&&(getUseEigensolver()==0)))) ) )
501 graph->
evalOpParm(mySolverMaxIterations, nodeidx,
"solvermaxiter", time, graph->
isDirect()?
nullptr:depnode);
503 if (
true && ( (
true&&!(((
int64(getMode())==2)))) ) )
504 graph->
evalOpParm(myMatrixStorage, nodeidx,
"matrixstorage", time, graph->
isDirect()?
nullptr:depnode);
505 myVolumeEncoding = 0;
506 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMatrixStorage())!=0)))) ) )
507 graph->
evalOpParm(myVolumeEncoding, nodeidx,
"volumeencoding", time, graph->
isDirect()?
nullptr:depnode);
508 myPointsPrimsEncoding = 0;
509 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMatrixStorage())!=1)&&(
int64(getMatrixStorage())!=2)))) ) )
510 graph->
evalOpParm(myPointsPrimsEncoding, nodeidx,
"pointsprimsencoding", time, graph->
isDirect()?
nullptr:depnode);
511 myDetailEncoding = 0;
512 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMatrixStorage())!=3)))) ) )
513 graph->
evalOpParm(myDetailEncoding, nodeidx,
"detailencoding", time, graph->
isDirect()?
nullptr:depnode);
514 mySquareMatrix =
false;
515 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMatrixStorage())==0))||((
int64(getMatrixStorage())==1)&&(
int64(getPointsPrimsEncoding())==0))||((
int64(getMatrixStorage())==2)&&(
int64(getPointsPrimsEncoding())==0))||((
int64(getMatrixStorage())==1)&&(
int64(getPointsPrimsEncoding())==1))||((
int64(getMatrixStorage())==2)&&(
int64(getPointsPrimsEncoding())==1)))) ) )
516 graph->
evalOpParm(mySquareMatrix, nodeidx,
"squarematrix", time, graph->
isDirect()?
nullptr:depnode);
518 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMatrixStorage())==0))||((
int64(getMatrixStorage())==1)&&(
int64(getPointsPrimsEncoding())!=3)&&(
int64(getPointsPrimsEncoding())!=2))||((
int64(getMatrixStorage())==2)&&(
int64(getPointsPrimsEncoding())!=3)&&(
int64(getPointsPrimsEncoding())!=2))||((getSquareMatrix()==1)&&(
int64(getMatrixStorage())==1)&&(
int64(getPointsPrimsEncoding())!=2))||((getSquareMatrix()==1)&&(
int64(getMatrixStorage())==2)&&(
int64(getPointsPrimsEncoding())!=2))||((getSquareMatrix()==1)&&(
int64(getMatrixStorage())==3)&&(
int64(getDetailEncoding())!=2)))) ) )
521 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMatrixStorage())==0))||((
int64(getMatrixStorage())==1)&&(
int64(getPointsPrimsEncoding())!=4)&&(
int64(getPointsPrimsEncoding())!=2))||((
int64(getMatrixStorage())==2)&&(
int64(getPointsPrimsEncoding())!=4)&&(
int64(getPointsPrimsEncoding())!=2))||((getSquareMatrix()==1)&&(
int64(getMatrixStorage())==1))||((getSquareMatrix()==1)&&(
int64(getMatrixStorage())==2))||((getSquareMatrix()==1)&&(
int64(getMatrixStorage())==3)))) ) )
523 myRowAttribute =
"row"_UTsh;
524 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMatrixStorage())==0))||((
int64(getMatrixStorage())==1)&&(
int64(getPointsPrimsEncoding())==4))||((
int64(getMatrixStorage())==2)&&(
int64(getPointsPrimsEncoding())==4))||((
int64(getMatrixStorage())==3))||((
int64(getMatrixStorage())==1)&&(
int64(getPointsPrimsEncoding())==1))||((
int64(getMatrixStorage())==2)&&(
int64(getPointsPrimsEncoding())==1))||((
int64(getMatrixStorage())==1)&&(
int64(getPointsPrimsEncoding())==0))||((
int64(getMatrixStorage())==2)&&(
int64(getPointsPrimsEncoding())==0)))) ) )
525 graph->
evalOpParm(myRowAttribute, nodeidx,
"rowattr", time, graph->
isDirect()?
nullptr:depnode);
526 myColAttribute =
"col"_UTsh;
527 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMatrixStorage())==0))||((
int64(getMatrixStorage())==1)&&(
int64(getPointsPrimsEncoding())==3))||((
int64(getMatrixStorage())==2)&&(
int64(getPointsPrimsEncoding())==3))||((
int64(getMatrixStorage())==3))||((
int64(getMatrixStorage())==1)&&(
int64(getPointsPrimsEncoding())==1))||((
int64(getMatrixStorage())==2)&&(
int64(getPointsPrimsEncoding())==1))||((
int64(getMatrixStorage())==1)&&(
int64(getPointsPrimsEncoding())==0))||((
int64(getMatrixStorage())==2)&&(
int64(getPointsPrimsEncoding())==0)))) ) )
528 graph->
evalOpParm(myColAttribute, nodeidx,
"colattr", time, graph->
isDirect()?
nullptr:depnode);
529 myMatrixValueAttribute =
"value"_UTsh;
530 if (
true && ( (
true&&!(((
int64(getMode())==2)))) ) )
531 graph->
evalOpParm(myMatrixValueAttribute, nodeidx,
"matrixvalueattr", time, graph->
isDirect()?
nullptr:depnode);
532 myVectorSrcStorage = 0;
533 if (
true && ( (
true&&!(((
int64(getMode())==1)))) ) )
534 graph->
evalOpParm(myVectorSrcStorage, nodeidx,
"vectorsrcstorage", time, graph->
isDirect()?
nullptr:depnode);
535 myVectorSrcAttribute =
"known"_UTsh;
536 if (
true && ( (
true&&!(((
int64(getMode())==1)))) ) )
537 graph->
evalOpParm(myVectorSrcAttribute, nodeidx,
"vectorsrcattr", time, graph->
isDirect()?
nullptr:depnode);
538 myVectorDstStorage = 0;
540 graph->
evalOpParm(myVectorDstStorage, nodeidx,
"vectordststorage", time, graph->
isDirect()?
nullptr:depnode);
541 myVectorDstAttribute =
"unknown"_UTsh;
542 if (
true && ( (
true&&!(((
int64(getMode())==1)))) ) )
543 graph->
evalOpParm(myVectorDstAttribute, nodeidx,
"vectordstattr", time, graph->
isDirect()?
nullptr:depnode);
544 myPinnedGroup =
""_UTsh;
545 if (
true && ( (
true&&!(((
int64(getVectorDstStorage())==2))||((
int64(getMode())==3)))) ) )
546 graph->
evalOpParm(myPinnedGroup, nodeidx,
"pinnedgroup", time, graph->
isDirect()?
nullptr:depnode);
548 if (
true && ( (
true&&!(((
int64(getVectorDstStorage())==2))||((
int64(getMode())==3))||((getPinnedGroup()==
"")))) ) )
549 graph->
evalOpParm(myReduceRows, nodeidx,
"reducerows", time, graph->
isDirect()?
nullptr:depnode);
551 if (
true && ( (
true&&!(((
int64(getMode())==1)))) ) )
552 graph->
evalOpParm(myScale, nodeidx,
"scale", time, graph->
isDirect()?
nullptr:depnode);
553 myAccumulateResult =
false;
554 if (
true && ( (
true&&!(((
int64(getMode())==1)))) ) )
555 graph->
evalOpParm(myAccumulateResult, nodeidx,
"accumulateresult", time, graph->
isDirect()?
nullptr:depnode);
556 myDenseDirectSolver = 0;
557 if (
true && ( (
true&&!(((
int64(getMode())==3))||((
int64(getMode())==2))||((
int64(getMode())==0)&&(getUseIterativeSolver()==1))||((
int64(getMode())==1)&&(getUseEigensolver()==1))||((
int64(getMatrixStorage())==3)&&(
int64(getDetailEncoding())!=0)&&(
int64(getDetailEncoding())!=1))||((
int64(getMatrixStorage())==1)&&(
int64(getPointsPrimsEncoding())!=0)&&(
int64(getPointsPrimsEncoding())!=1))||((
int64(getMatrixStorage())==2)&&(
int64(getPointsPrimsEncoding())!=0)&&(
int64(getPointsPrimsEncoding())!=1)))) ) )
558 graph->
evalOpParm(myDenseDirectSolver, nodeidx,
"densedirectsolver", time, graph->
isDirect()?
nullptr:depnode);
559 mySparseDirectSolver = 1;
560 if (
true && ( (
true&&!(((
int64(getMode())==3))||((
int64(getMode())==2))||((getUseIterativeSolver()==1))||((getUseEigensolver()==1))||((
int64(getMatrixStorage())==0))||((
int64(getMatrixStorage())==3)&&(
int64(getDetailEncoding())==0))||((
int64(getMatrixStorage())==3)&&(
int64(getDetailEncoding())==1))||((
int64(getMatrixStorage())==1)&&(
int64(getPointsPrimsEncoding())==1))||((
int64(getMatrixStorage())==2)&&(
int64(getPointsPrimsEncoding())==1))||((
int64(getMatrixStorage())==1)&&(
int64(getPointsPrimsEncoding())==0))||((
int64(getMatrixStorage())==2)&&(
int64(getPointsPrimsEncoding())==0)))) ) )
561 graph->
evalOpParm(mySparseDirectSolver, nodeidx,
"sparsedirectsolver", time, graph->
isDirect()?
nullptr:depnode);
562 mySparseDirectSolverBackend = 0;
563 if (
true && ( (
true&&!(((
int64(getMode())==3))||((
int64(getMode())==2))||((
int64(getMode())==0)&&(getUseIterativeSolver()==1))||((
int64(getMatrixStorage())==0))||((
int64(getMatrixStorage())==3)&&(
int64(getDetailEncoding())==0))||((
int64(getMatrixStorage())==3)&&(
int64(getDetailEncoding())==1))||((
int64(getMatrixStorage())==1)&&(
int64(getPointsPrimsEncoding())==1))||((
int64(getMatrixStorage())==2)&&(
int64(getPointsPrimsEncoding())==1))||((
int64(getMatrixStorage())==1)&&(
int64(getPointsPrimsEncoding())==0))||((
int64(getMatrixStorage())==2)&&(
int64(getPointsPrimsEncoding())==0))||((
int64(getMode())==1)))) ) )
564 graph->
evalOpParm(mySparseDirectSolverBackend, nodeidx,
"sparsedirectsolverbackend", time, graph->
isDirect()?
nullptr:depnode);
565 myDensePreconditioner = 1;
566 if (
true && ( (
true&&!(((
int64(getMode())==3))||((
int64(getMode())==2))||((getUseIterativeSolver()==0))||((
int64(getMode())!=0))||((
int64(getMatrixStorage())==3)&&(
int64(getDetailEncoding())!=0)&&(
int64(getDetailEncoding())!=1))||((
int64(getMatrixStorage())==1)&&(
int64(getPointsPrimsEncoding())!=0)&&(
int64(getPointsPrimsEncoding())!=1))||((
int64(getMatrixStorage())==2)&&(
int64(getPointsPrimsEncoding())!=0)&&(
int64(getPointsPrimsEncoding())!=1)))) ) )
567 graph->
evalOpParm(myDensePreconditioner, nodeidx,
"densepreconditioner", time, graph->
isDirect()?
nullptr:depnode);
568 mySparsePreconditioner = 1;
569 if (
true && ( (
true&&!(((
int64(getMode())==3))||((
int64(getMode())==2))||((getUseIterativeSolver()==0))||((
int64(getMode())!=0))||((
int64(getMatrixStorage())==0))||((
int64(getMatrixStorage())==3)&&(
int64(getDetailEncoding())==0))||((
int64(getMatrixStorage())==3)&&(
int64(getDetailEncoding())==1))||((
int64(getMatrixStorage())==1)&&(
int64(getPointsPrimsEncoding())==1))||((
int64(getMatrixStorage())==2)&&(
int64(getPointsPrimsEncoding())==1))||((
int64(getMatrixStorage())==1)&&(
int64(getPointsPrimsEncoding())==0))||((
int64(getMatrixStorage())==2)&&(
int64(getPointsPrimsEncoding())==0)))) ) )
570 graph->
evalOpParm(mySparsePreconditioner, nodeidx,
"sparsepreconditioner", time, graph->
isDirect()?
nullptr:depnode);
586 template <
typename T>
593 if (idx.
size() != instance.
size()+1)
598 coerceValue(value, myMode);
601 coerceValue(value, myCookInplace);
604 coerceValue(value, myPrecision);
607 coerceValue(value, myUseIterativeSolver);
610 coerceValue(value, myIterativeSolver);
613 coerceValue(value, mySolveWithGuess);
616 coerceValue(value, myUseEigensolver);
619 coerceValue(value, mySpectraEigensolver);
622 coerceValue(value, myNumEigenpairs);
625 coerceValue(value, myShift);
628 coerceValue(value, mySolverTolerance);
631 coerceValue(value, mySolverMaxIterations);
634 coerceValue(value, myMatrixStorage);
637 coerceValue(value, myVolumeEncoding);
640 coerceValue(value, myPointsPrimsEncoding);
643 coerceValue(value, myDetailEncoding);
646 coerceValue(value, mySquareMatrix);
649 coerceValue(value, myRows);
652 coerceValue(value, myCols);
655 coerceValue(value, myRowAttribute);
658 coerceValue(value, myColAttribute);
661 coerceValue(value, myMatrixValueAttribute);
664 coerceValue(value, myVectorSrcStorage);
667 coerceValue(value, myVectorSrcAttribute);
670 coerceValue(value, myVectorDstStorage);
673 coerceValue(value, myVectorDstAttribute);
676 coerceValue(value, myPinnedGroup);
679 coerceValue(value, myReduceRows);
682 coerceValue(value, myScale);
685 coerceValue(value, myAccumulateResult);
688 coerceValue(value, myDenseDirectSolver);
691 coerceValue(value, mySparseDirectSolver);
694 coerceValue(value, mySparseDirectSolverBackend);
697 coerceValue(value, myDensePreconditioner);
700 coerceValue(value, mySparsePreconditioner);
716 { doGetParmValue(idx, instance, value); }
718 { doGetParmValue(idx, instance, value); }
720 { doGetParmValue(idx, instance, value); }
722 { doGetParmValue(idx, instance, value); }
724 { doGetParmValue(idx, instance, value); }
726 { doGetParmValue(idx, instance, value); }
728 { doGetParmValue(idx, instance, value); }
730 { doGetParmValue(idx, instance, value); }
732 { doGetParmValue(idx, instance, value); }
734 { doGetParmValue(idx, instance, value); }
736 { doGetParmValue(idx, instance, value); }
738 template <
typename T>
745 if (idx.
size() != instance.
size()+1)
750 coerceValue(myMode, clampMinValue(0, clampMaxValue(3, value ) ));
753 coerceValue(myCookInplace, ( ( value ) ));
756 coerceValue(myPrecision, clampMinValue(0, clampMaxValue(2, value ) ));
759 coerceValue(myUseIterativeSolver, ( ( value ) ));
762 coerceValue(myIterativeSolver, clampMinValue(0, clampMaxValue(6, value ) ));
765 coerceValue(mySolveWithGuess, ( ( value ) ));
768 coerceValue(myUseEigensolver, ( ( value ) ));
771 coerceValue(mySpectraEigensolver, clampMinValue(0, clampMaxValue(3, value ) ));
774 coerceValue(myNumEigenpairs, clampMinValue(1, ( value ) ));
777 coerceValue(myShift, ( ( value ) ));
780 coerceValue(mySolverTolerance, clampMinValue(0, ( value ) ));
783 coerceValue(mySolverMaxIterations, clampMinValue(1, ( value ) ));
786 coerceValue(myMatrixStorage, clampMinValue(0, clampMaxValue(3, value ) ));
789 coerceValue(myVolumeEncoding, clampMinValue(0, clampMaxValue(1, value ) ));
792 coerceValue(myPointsPrimsEncoding, clampMinValue(0, clampMaxValue(4, value ) ));
795 coerceValue(myDetailEncoding, clampMinValue(0, clampMaxValue(2, value ) ));
798 coerceValue(mySquareMatrix, ( ( value ) ));
801 coerceValue(myRows, clampMinValue(1, ( value ) ));
804 coerceValue(myCols, clampMinValue(1, ( value ) ));
807 coerceValue(myRowAttribute, ( ( value ) ));
810 coerceValue(myColAttribute, ( ( value ) ));
813 coerceValue(myMatrixValueAttribute, ( ( value ) ));
816 coerceValue(myVectorSrcStorage, clampMinValue(0, clampMaxValue(2, value ) ));
819 coerceValue(myVectorSrcAttribute, ( ( value ) ));
822 coerceValue(myVectorDstStorage, clampMinValue(0, clampMaxValue(2, value ) ));
825 coerceValue(myVectorDstAttribute, ( ( value ) ));
828 coerceValue(myPinnedGroup, ( ( value ) ));
831 coerceValue(myReduceRows, ( ( value ) ));
834 coerceValue(myScale, ( ( value ) ));
837 coerceValue(myAccumulateResult, ( ( value ) ));
840 coerceValue(myDenseDirectSolver, clampMinValue(0, clampMaxValue(11, value ) ));
843 coerceValue(mySparseDirectSolver, clampMinValue(0, clampMaxValue(3, value ) ));
846 coerceValue(mySparseDirectSolverBackend, clampMinValue(0, clampMaxValue(1, value ) ));
849 coerceValue(myDensePreconditioner, clampMinValue(0, clampMaxValue(1, value ) ));
852 coerceValue(mySparsePreconditioner, clampMinValue(0, clampMaxValue(3, value ) ));
859 { doSetParmValue(idx, instance, value); }
861 { doSetParmValue(idx, instance, value); }
863 { doSetParmValue(idx, instance, value); }
865 { doSetParmValue(idx, instance, value); }
867 { doSetParmValue(idx, instance, value); }
869 { doSetParmValue(idx, instance, value); }
871 { doSetParmValue(idx, instance, value); }
873 { doSetParmValue(idx, instance, value); }
875 { doSetParmValue(idx, instance, value); }
877 { doSetParmValue(idx, instance, value); }
879 { doSetParmValue(idx, instance, value); }
895 if (fieldnum.
size() < 1)
902 return "cookinplace";
906 return "useiterativesolver";
908 return "iterativesolver";
910 return "solvewithguess";
912 return "useeigensolver";
914 return "spectraeigensolver";
916 return "numeigenpairs";
920 return "solvertolerance";
922 return "solvermaxiter";
924 return "matrixstorage";
926 return "volumeencoding";
928 return "pointsprimsencoding";
930 return "detailencoding";
932 return "squarematrix";
942 return "matrixvalueattr";
944 return "vectorsrcstorage";
946 return "vectorsrcattr";
948 return "vectordststorage";
950 return "vectordstattr";
952 return "pinnedgroup";
958 return "accumulateresult";
960 return "densedirectsolver";
962 return "sparsedirectsolver";
964 return "sparsedirectsolverbackend";
966 return "densepreconditioner";
968 return "sparsepreconditioner";
976 if (fieldnum.
size() < 1)
977 return PARM_UNSUPPORTED;
1003 return PARM_INTEGER;
1005 return PARM_INTEGER;
1007 return PARM_INTEGER;
1009 return PARM_INTEGER;
1011 return PARM_INTEGER;
1013 return PARM_INTEGER;
1015 return PARM_INTEGER;
1017 return PARM_INTEGER;
1025 return PARM_INTEGER;
1029 return PARM_INTEGER;
1035 return PARM_INTEGER;
1039 return PARM_INTEGER;
1041 return PARM_INTEGER;
1043 return PARM_INTEGER;
1045 return PARM_INTEGER;
1047 return PARM_INTEGER;
1049 return PARM_INTEGER;
1052 return PARM_UNSUPPORTED;
1057 { is.
bread(&v, 1); }
1088 loadData(is, rampdata);
1106 int typelen = colon - data.
buffer();
1118 { UTwrite(os, &v); }
1120 {
int64 iv =
v; UTwrite(os, &iv); }
1122 { UTwrite<fpreal64>(os, &
v); }
1124 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
1126 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1127 UTwrite<fpreal64>(os, &v.
z()); }
1129 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1130 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
1142 if (s) s->save(ostr);
1143 result = ostr.
str();
1144 saveData(os, result);
1151 ostr << s->getDataTypeToken();
1153 s->saveBinary(ostr);
1155 result = ostr.
str();
1156 saveData(os, result);
1164 saveData(os, myMode);
1165 saveData(os, myCookInplace);
1166 saveData(os, myPrecision);
1167 saveData(os, myUseIterativeSolver);
1168 saveData(os, myIterativeSolver);
1169 saveData(os, mySolveWithGuess);
1170 saveData(os, myUseEigensolver);
1171 saveData(os, mySpectraEigensolver);
1172 saveData(os, myNumEigenpairs);
1173 saveData(os, myShift);
1174 saveData(os, mySolverTolerance);
1175 saveData(os, mySolverMaxIterations);
1176 saveData(os, myMatrixStorage);
1177 saveData(os, myVolumeEncoding);
1178 saveData(os, myPointsPrimsEncoding);
1179 saveData(os, myDetailEncoding);
1180 saveData(os, mySquareMatrix);
1181 saveData(os, myRows);
1182 saveData(os, myCols);
1183 saveData(os, myRowAttribute);
1184 saveData(os, myColAttribute);
1185 saveData(os, myMatrixValueAttribute);
1186 saveData(os, myVectorSrcStorage);
1187 saveData(os, myVectorSrcAttribute);
1188 saveData(os, myVectorDstStorage);
1189 saveData(os, myVectorDstAttribute);
1190 saveData(os, myPinnedGroup);
1191 saveData(os, myReduceRows);
1192 saveData(os, myScale);
1193 saveData(os, myAccumulateResult);
1194 saveData(os, myDenseDirectSolver);
1195 saveData(os, mySparseDirectSolver);
1196 saveData(os, mySparseDirectSolverBackend);
1197 saveData(os, myDensePreconditioner);
1198 saveData(os, mySparsePreconditioner);
1211 loadData(is, myMode);
1212 loadData(is, myCookInplace);
1213 loadData(is, myPrecision);
1214 loadData(is, myUseIterativeSolver);
1215 loadData(is, myIterativeSolver);
1216 loadData(is, mySolveWithGuess);
1217 loadData(is, myUseEigensolver);
1218 loadData(is, mySpectraEigensolver);
1219 loadData(is, myNumEigenpairs);
1220 loadData(is, myShift);
1221 loadData(is, mySolverTolerance);
1222 loadData(is, mySolverMaxIterations);
1223 loadData(is, myMatrixStorage);
1224 loadData(is, myVolumeEncoding);
1225 loadData(is, myPointsPrimsEncoding);
1226 loadData(is, myDetailEncoding);
1227 loadData(is, mySquareMatrix);
1228 loadData(is, myRows);
1229 loadData(is, myCols);
1230 loadData(is, myRowAttribute);
1231 loadData(is, myColAttribute);
1232 loadData(is, myMatrixValueAttribute);
1233 loadData(is, myVectorSrcStorage);
1234 loadData(is, myVectorSrcAttribute);
1235 loadData(is, myVectorDstStorage);
1236 loadData(is, myVectorDstAttribute);
1237 loadData(is, myPinnedGroup);
1238 loadData(is, myReduceRows);
1239 loadData(is, myScale);
1240 loadData(is, myAccumulateResult);
1241 loadData(is, myDenseDirectSolver);
1242 loadData(is, mySparseDirectSolver);
1243 loadData(is, mySparseDirectSolverBackend);
1244 loadData(is, myDensePreconditioner);
1245 loadData(is, mySparsePreconditioner);
1255 if (!thissop)
return getMode();
1257 OP_Utils::evalOpParm(result, thissop,
"mode", cookparms.
getCookTime(), 0);
1258 return Mode(result);
1265 if (!thissop)
return getCookInplace();
1267 OP_Utils::evalOpParm(result, thissop,
"cookinplace", cookparms.
getCookTime(), 0);
1275 if (!thissop)
return getPrecision();
1277 OP_Utils::evalOpParm(result, thissop,
"precision", cookparms.
getCookTime(), 0);
1285 if (!thissop)
return getUseIterativeSolver();
1287 OP_Utils::evalOpParm(result, thissop,
"useiterativesolver", cookparms.
getCookTime(), 0);
1295 if (!thissop)
return getIterativeSolver();
1297 OP_Utils::evalOpParm(result, thissop,
"iterativesolver", cookparms.
getCookTime(), 0);
1305 if (!thissop)
return getSolveWithGuess();
1307 OP_Utils::evalOpParm(result, thissop,
"solvewithguess", cookparms.
getCookTime(), 0);
1315 if (!thissop)
return getUseEigensolver();
1317 OP_Utils::evalOpParm(result, thissop,
"useeigensolver", cookparms.
getCookTime(), 0);
1325 if (!thissop)
return getSpectraEigensolver();
1327 OP_Utils::evalOpParm(result, thissop,
"spectraeigensolver", cookparms.
getCookTime(), 0);
1335 if (!thissop)
return getNumEigenpairs();
1337 OP_Utils::evalOpParm(result, thissop,
"numeigenpairs", cookparms.
getCookTime(), 0);
1345 if (!thissop)
return getShift();
1347 OP_Utils::evalOpParm(result, thissop,
"shift", cookparms.
getCookTime(), 0);
1355 if (!thissop)
return getSolverTolerance();
1357 OP_Utils::evalOpParm(result, thissop,
"solvertolerance", cookparms.
getCookTime(), 0);
1365 if (!thissop)
return getSolverMaxIterations();
1367 OP_Utils::evalOpParm(result, thissop,
"solvermaxiter", cookparms.
getCookTime(), 0);
1375 if (!thissop)
return getMatrixStorage();
1377 OP_Utils::evalOpParm(result, thissop,
"matrixstorage", cookparms.
getCookTime(), 0);
1385 if (!thissop)
return getVolumeEncoding();
1387 OP_Utils::evalOpParm(result, thissop,
"volumeencoding", cookparms.
getCookTime(), 0);
1395 if (!thissop)
return getPointsPrimsEncoding();
1397 OP_Utils::evalOpParm(result, thissop,
"pointsprimsencoding", cookparms.
getCookTime(), 0);
1405 if (!thissop)
return getDetailEncoding();
1407 OP_Utils::evalOpParm(result, thissop,
"detailencoding", cookparms.
getCookTime(), 0);
1415 if (!thissop)
return getSquareMatrix();
1417 OP_Utils::evalOpParm(result, thissop,
"squarematrix", cookparms.
getCookTime(), 0);
1425 if (!thissop)
return getRows();
1427 OP_Utils::evalOpParm(result, thissop,
"rows", cookparms.
getCookTime(), 0);
1435 if (!thissop)
return getCols();
1437 OP_Utils::evalOpParm(result, thissop,
"cols", cookparms.
getCookTime(), 0);
1445 if (!thissop)
return getRowAttribute();
1447 OP_Utils::evalOpParm(result, thissop,
"rowattr", cookparms.
getCookTime(), 0);
1455 if (!thissop)
return getColAttribute();
1457 OP_Utils::evalOpParm(result, thissop,
"colattr", cookparms.
getCookTime(), 0);
1465 if (!thissop)
return getMatrixValueAttribute();
1467 OP_Utils::evalOpParm(result, thissop,
"matrixvalueattr", cookparms.
getCookTime(), 0);
1475 if (!thissop)
return getVectorSrcStorage();
1477 OP_Utils::evalOpParm(result, thissop,
"vectorsrcstorage", cookparms.
getCookTime(), 0);
1485 if (!thissop)
return getVectorSrcAttribute();
1487 OP_Utils::evalOpParm(result, thissop,
"vectorsrcattr", cookparms.
getCookTime(), 0);
1495 if (!thissop)
return getVectorDstStorage();
1497 OP_Utils::evalOpParm(result, thissop,
"vectordststorage", cookparms.
getCookTime(), 0);
1505 if (!thissop)
return getVectorDstAttribute();
1507 OP_Utils::evalOpParm(result, thissop,
"vectordstattr", cookparms.
getCookTime(), 0);
1515 if (!thissop)
return getPinnedGroup();
1517 OP_Utils::evalOpParm(result, thissop,
"pinnedgroup", cookparms.
getCookTime(), 0);
1525 if (!thissop)
return getReduceRows();
1527 OP_Utils::evalOpParm(result, thissop,
"reducerows", cookparms.
getCookTime(), 0);
1537 OP_Utils::evalOpParm(result, thissop,
"scale", cookparms.
getCookTime(), 0);
1545 if (!thissop)
return getAccumulateResult();
1547 OP_Utils::evalOpParm(result, thissop,
"accumulateresult", cookparms.
getCookTime(), 0);
1555 if (!thissop)
return getDenseDirectSolver();
1557 OP_Utils::evalOpParm(result, thissop,
"densedirectsolver", cookparms.
getCookTime(), 0);
1565 if (!thissop)
return getSparseDirectSolver();
1567 OP_Utils::evalOpParm(result, thissop,
"sparsedirectsolver", cookparms.
getCookTime(), 0);
1575 if (!thissop)
return getSparseDirectSolverBackend();
1577 OP_Utils::evalOpParm(result, thissop,
"sparsedirectsolverbackend", cookparms.
getCookTime(), 0);
1585 if (!thissop)
return getDensePreconditioner();
1587 OP_Utils::evalOpParm(result, thissop,
"densepreconditioner", cookparms.
getCookTime(), 0);
1595 if (!thissop)
return getSparsePreconditioner();
1597 OP_Utils::evalOpParm(result, thissop,
"sparsepreconditioner", cookparms.
getCookTime(), 0);
1605 bool myUseIterativeSolver;
1606 int64 myIterativeSolver;
1607 bool mySolveWithGuess;
1608 bool myUseEigensolver;
1609 int64 mySpectraEigensolver;
1610 int64 myNumEigenpairs;
1613 int64 mySolverMaxIterations;
1614 int64 myMatrixStorage;
1615 int64 myVolumeEncoding;
1616 int64 myPointsPrimsEncoding;
1617 int64 myDetailEncoding;
1618 bool mySquareMatrix;
1624 int64 myVectorSrcStorage;
1626 int64 myVectorDstStorage;
1631 bool myAccumulateResult;
1632 int64 myDenseDirectSolver;
1633 int64 mySparseDirectSolver;
1634 int64 mySparseDirectSolverBackend;
1635 int64 myDensePreconditioner;
1636 int64 mySparsePreconditioner;
Precision opPrecision(const SOP_NodeVerb::CookParms &cookparms) const
void setPointsPrimsEncoding(PointsPrimsEncoding val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
UT_StringHolder opMatrixValueAttribute(const SOP_NodeVerb::CookParms &cookparms) const
SparseDirectSolverBackend opSparseDirectSolverBackend(const SOP_NodeVerb::CookParms &cookparms) const
VectorDstStorage getVectorDstStorage() const
static void loadData(UT_IStream &is, UT_Vector3I &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
static void loadData(UT_IStream &is, int64 &v)
SOP_Node * getNode() const
const char * getNestParmName(TempIndex fieldnum) const override
int64 getNumEigenpairs() const
static void saveData(std::ostream &os, UT_Vector3D v)
void setDensePreconditioner(DensePreconditioner val)
SpectraEigensolver getSpectraEigensolver() const
static void loadData(UT_IStream &is, UT_Vector2D &v)
static void loadData(UT_IStream &is, UT_Vector4I &v)
void setIterativeSolver(IterativeSolver val)
fpreal64 getShift() const
fpreal64 getSolverTolerance() const
bool opCookInplace(const SOP_NodeVerb::CookParms &cookparms) const
exint bread(int32 *buffer, exint asize=1)
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
SparseDirectSolver opSparseDirectSolver(const SOP_NodeVerb::CookParms &cookparms) const
int64 opNumEigenpairs(const SOP_NodeVerb::CookParms &cookparms) const
GLsizei const GLfloat * value
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
static void loadData(UT_IStream &is, UT_Matrix4D &v)
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
void setNumEigenpairs(int64 val)
const OP_Context & context() const
void setPrecision(Precision val)
DensePreconditioner opDensePreconditioner(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & z() noexcept
void setShift(fpreal64 val)
bool getUseEigensolver() const
SYS_FORCE_INLINE const char * buffer() const
static void saveData(std::ostream &os, bool v)
DensePreconditioner getDensePreconditioner() const
static void saveData(std::ostream &os, PRM_DataItemHandle s)
static void saveData(std::ostream &os, fpreal64 v)
void setVectorSrcStorage(VectorSrcStorage val)
VolumeEncoding getVolumeEncoding() const
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
An output stream object that owns its own string buffer storage.
DenseDirectSolver getDenseDirectSolver() const
static void saveData(std::ostream &os, int64 v)
**But if you need a result
void setSolverTolerance(fpreal64 val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
const UT_StringHolder & getMatrixValueAttribute() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
SpectraEigensolver opSpectraEigensolver(const SOP_NodeVerb::CookParms &cookparms) const
void setSpectraEigensolver(SpectraEigensolver val)
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
void setDenseDirectSolver(DenseDirectSolver val)
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
fpreal64 getScale() const
IterativeSolver getIterativeSolver() const
constexpr SYS_FORCE_INLINE T & x() noexcept
bool getUseIterativeSolver() const
void setReduceRows(bool val)
SYS_FORCE_INLINE UT_StringHolder getToken(Mode enum_value)
IterativeSolver opIterativeSolver(const SOP_NodeVerb::CookParms &cookparms) const
SparseDirectSolver getSparseDirectSolver() const
void setPinnedGroup(const UT_StringHolder &val)
VectorDstStorage opVectorDstStorage(const SOP_NodeVerb::CookParms &cookparms) const
void setSquareMatrix(bool val)
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
constexpr SYS_FORCE_INLINE T & x() noexcept
bool isParmColorRamp(exint idx) const override
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
DenseDirectSolver opDenseDirectSolver(const SOP_NodeVerb::CookParms &cookparms) const
int64 opCols(const SOP_NodeVerb::CookParms &cookparms) const
void setCookInplace(bool val)
void loadFromOpSubclass(const LoadParms &loadparms) override
void setUseIterativeSolver(bool val)
static void loadData(UT_IStream &is, UT_Vector4D &v)
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
static void loadData(UT_IStream &is, UT_Vector3D &v)
fpreal64 opSolverTolerance(const SOP_NodeVerb::CookParms &cookparms) const
bool opSolveWithGuess(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getPinnedGroup() const
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
constexpr SYS_FORCE_INLINE T & z() noexcept
static void saveData(std::ostream &os, UT_Vector4D v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
const OP_GraphProxy * graph() const
UT_StringHolder opVectorDstAttribute(const SOP_NodeVerb::CookParms &cookparms) const
SparsePreconditioner opSparsePreconditioner(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opScale(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
DetailEncoding opDetailEncoding(const SOP_NodeVerb::CookParms &cookparms) const
PointsPrimsEncoding opPointsPrimsEncoding(const SOP_NodeVerb::CookParms &cookparms) const
void save(std::ostream &os) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
exint getNestNumParms(TempIndex idx) const override
MatrixStorage opMatrixStorage(const SOP_NodeVerb::CookParms &cookparms) const
void setVectorSrcAttribute(const UT_StringHolder &val)
int64 opSolverMaxIterations(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
UT_StringHolder opVectorSrcAttribute(const SOP_NodeVerb::CookParms &cookparms) const
VectorSrcStorage getVectorSrcStorage() const
static void loadData(UT_IStream &is, UT_StringHolder &v)
Precision getPrecision() const
const UT_StringHolder & getVectorDstAttribute() const
const UT_StringHolder & getColAttribute() const
bool getAccumulateResult() const
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
void setUseEigensolver(bool val)
void setScale(fpreal64 val)
SparseDirectSolverBackend getSparseDirectSolverBackend() const
const UT_StringHolder & getRowAttribute() const
bool opReduceRows(const SOP_NodeVerb::CookParms &cookparms) const
void setVectorDstStorage(VectorDstStorage val)
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
int64 getSolverMaxIterations() const
bool getSquareMatrix() const
static void saveData(std::ostream &os, UT_Vector2D v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
static void saveData(std::ostream &os, UT_Matrix2D v)
VectorSrcStorage opVectorSrcStorage(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
void saveBinary(std::ostream &os) const
Save string to binary stream.
PointsPrimsEncoding getPointsPrimsEncoding() const
void setRowAttribute(const UT_StringHolder &val)
GT_API const UT_StringHolder version
bool load(UT_IStream &is)
void setVolumeEncoding(VolumeEncoding val)
static void loadData(UT_IStream &is, bool &v)
bool operator!=(const SOP_LinearSolverParms &src) const
bool operator==(const SOP_LinearSolverParms &src) const
bool getSolveWithGuess() const
bool opUseIterativeSolver(const SOP_NodeVerb::CookParms &cookparms) const
bool opAccumulateResult(const SOP_NodeVerb::CookParms &cookparms) const
void setDetailEncoding(DetailEncoding val)
void setSolverMaxIterations(int64 val)
UT_StringHolder opPinnedGroup(const SOP_NodeVerb::CookParms &cookparms) const
void setSparseDirectSolver(SparseDirectSolver val)
DEP_MicroNode * depnode() const
bool getCookInplace() const
LeafData & operator=(const LeafData &)=delete
void setSparsePreconditioner(SparsePreconditioner val)
Utility class for containing a color ramp.
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
constexpr SYS_FORCE_INLINE T & w() noexcept
void setVectorDstAttribute(const UT_StringHolder &val)
virtual UT_StringHolder baseGetSignature() const
bool getReduceRows() const
Vec3< typename MatType::value_type > getScale(const MatType &mat)
Return a Vec3 representing the lengths of the passed matrix's upper 3×3's rows.
static void saveData(std::ostream &os, UT_StringHolder s)
fpreal64 opShift(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, fpreal64 &v)
DetailEncoding getDetailEncoding() const
fpreal getCookTime() const
bool opUseEigensolver(const SOP_NodeVerb::CookParms &cookparms) const
MatrixStorage getMatrixStorage() const
static void saveData(std::ostream &os, UT_Matrix3D v)
const char * findChar(int c) const
const UT_StringHolder & getVectorSrcAttribute() const
void setColAttribute(const UT_StringHolder &val)
bool opSquareMatrix(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Matrix2D &v)
UT_StringHolder opColAttribute(const SOP_NodeVerb::CookParms &cookparms) const
void setAccumulateResult(bool val)
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
UT_StringHolder opRowAttribute(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
void setSolveWithGuess(bool val)
constexpr SYS_FORCE_INLINE T & y() noexcept
void copyFrom(const OP_NodeParms *src) override
void setMatrixValueAttribute(const UT_StringHolder &val)
int64 opRows(const SOP_NodeVerb::CookParms &cookparms) const
virtual bool isDirect() const =0
Direct proxies mirror actual nodes:
SparsePreconditioner getSparsePreconditioner() const
ParmType getNestParmType(TempIndex fieldnum) const override
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
SparseDirectSolverBackend
Mode opMode(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Matrix3D &v)
static void saveData(std::ostream &os, UT_Matrix4D v)
void setSparseDirectSolverBackend(SparseDirectSolverBackend val)
constexpr SYS_FORCE_INLINE T & y() noexcept
SYS_FORCE_INLINE bool isstring() const
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
VolumeEncoding opVolumeEncoding(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & x() noexcept
static void loadData(UT_IStream &is, UT_Vector2I &v)
void setMatrixStorage(MatrixStorage val)