Signature#

class numpy::Signature#

numpy C++ class.

Example#

#include <numpy/np_ndarray.h>
using namespace numpy;

// Use Signature
Signature obj;
// ... operations ...

Constructors#

Signature

Location

Example

Signature(const std::string &sig_str)

NP_VECTORIZE_TRAITS.H:219

Other Methods#

Signature

Return Type

Location

Example

bool isValid()

bool

NP_VECTORIZE_TRAITS.H:221

View

size_t numInputs()

size_t

NP_VECTORIZE_TRAITS.H:222

View

size_t numOutputs()

size_t

NP_VECTORIZE_TRAITS.H:223

View

Code Examples#

The following examples are extracted from the test suite.

isValid (np_test_1_all.cpp:15168)
15158      }
15159
15160      // Test 9: Signature parsing
15161      std::cout << "========= test_signature_parsing =======================" ;
15162
15163      auto dot_product = [](double x, double y) { return x * y; };
15164      auto vectorized_dot = numpy::vectorize(dot_product, "(n),(n)->()");
15165
15166      // Test that signature is parsed correctly
15167      auto info = vectorized_dot.getSignature();
15168      std::cout << info.isValid() << "," << info.numInputs() << "," << info.numOutputs() << "";
15169      bool test9_pass = info.isValid() && info.numInputs() == 2 && info.numOutputs() == 1;
15170
15171      if (test9_pass) {
15172        // std::cout << "[OK] Signature parsing works correctly";
15173        std::cout << " -> tests passed" << std::endl;
15174      }
15175      else {
15176        std::cout << "[FAIL] Signature parsing failed" << std::endl;
15177        errors++;
15178      }
numInputs (np_test_1_all.cpp:15168)
15158      }
15159
15160      // Test 9: Signature parsing
15161      std::cout << "========= test_signature_parsing =======================" ;
15162
15163      auto dot_product = [](double x, double y) { return x * y; };
15164      auto vectorized_dot = numpy::vectorize(dot_product, "(n),(n)->()");
15165
15166      // Test that signature is parsed correctly
15167      auto info = vectorized_dot.getSignature();
15168      std::cout << info.isValid() << "," << info.numInputs() << "," << info.numOutputs() << "";
15169      bool test9_pass = info.isValid() && info.numInputs() == 2 && info.numOutputs() == 1;
15170
15171      if (test9_pass) {
15172        // std::cout << "[OK] Signature parsing works correctly";
15173        std::cout << " -> tests passed" << std::endl;
15174      }
15175      else {
15176        std::cout << "[FAIL] Signature parsing failed" << std::endl;
15177        errors++;
15178      }
numOutputs (np_test_1_all.cpp:15168)
15158      }
15159
15160      // Test 9: Signature parsing
15161      std::cout << "========= test_signature_parsing =======================" ;
15162
15163      auto dot_product = [](double x, double y) { return x * y; };
15164      auto vectorized_dot = numpy::vectorize(dot_product, "(n),(n)->()");
15165
15166      // Test that signature is parsed correctly
15167      auto info = vectorized_dot.getSignature();
15168      std::cout << info.isValid() << "," << info.numInputs() << "," << info.numOutputs() << "";
15169      bool test9_pass = info.isValid() && info.numInputs() == 2 && info.numOutputs() == 1;
15170
15171      if (test9_pass) {
15172        // std::cout << "[OK] Signature parsing works correctly";
15173        std::cout << " -> tests passed" << std::endl;
15174      }
15175      else {
15176        std::cout << "[FAIL] Signature parsing failed" << std::endl;
15177        errors++;
15178      }