MCPcopy Create free account
hub / github.com/VcDevel/std-simd / referenceData

Function referenceData

tests/mathreference.h:118–142  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

116
117template <class Fun, class T, class Ref = testdatatype_for_function_t<Fun, T>>
118Array<Ref> referenceData()
119{
120#ifdef _GLIBCXX_SIMD_LINK_TESTDATA
121 return {reference_data<Fun, T>::size(), reference_data<Fun,T>::begin()};
122#else // _GLIBCXX_SIMD_LINK_TESTDATA
123 static Array<Ref> data;
124 if (data.data_ == nullptr) {
125 FILE *file = std::fopen(filename<Fun, T>().c_str(), "rb");
126 if (file) {
127 std::fseek(file, 0, SEEK_END);
128 const size_t size = std::ftell(file) / sizeof(Ref);
129 std::rewind(file);
130 auto mem = new Ref[size];
131 static StaticDeleter<Ref> _cleanup(data.data_);
132 data.size_ = std::fread(mem, sizeof(Ref), size, file);
133 data.data_ = mem;
134 std::fclose(file);
135 } else {
136 FAIL() << "the reference data " << filename<Fun, T>()
137 << " does not exist in the current working directory.";
138 }
139 }
140 return data;
141#endif // _GLIBCXX_SIMD_LINK_TESTDATA
142}
143
144//}}}1
145// vim: foldmethod=marker

Callers

nothing calls this directly

Calls 1

sizeClass · 0.85

Tested by

no test coverage detected