1 2 #pragma once 3 4 #include "Props.hh" 5 #include "Storage.hh" 6 #include "Kernel.hh" 7 #include "Stopwatch.hh" 8 9 #include "wstp.h" 10 11 class MMA { 12 public: 13 14 /// \ingroup scalar 15 /// 16 /// Functionality to act with Mathematica functions on (parts of) 17 /// Cadabra Ex expressions and read the result back into the same 18 /// Ex. This duplicates some of the logic in PythonCdb.hh, in 19 /// particular make_Ex_from_string, but it is best to keep these 20 /// two completely separate. 21 22 static cadabra::Ex::iterator apply_mma(const cadabra::Kernel&, cadabra::Ex&, cadabra::Ex::iterator&, 23 const std::vector<std::string>& wrap, std::vector<std::string> args, 24 const std::string& method); 25 26 27 private: 28 static WSEnvironment stdenv; 29 static WSLINK lp; 30 31 static void setup_link(); 32 static void teardown_link(); 33 }; 34