From e0c5312abb6f5b1c0e413fe69a8c7c46215cd3ae Mon Sep 17 00:00:00 2001 From: CNugteren Date: Mon, 14 Sep 2015 12:28:50 +0200 Subject: Added support for the dot buffer and offset argument --- src/routine.cc | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src') diff --git a/src/routine.cc b/src/routine.cc index 31476c42..05a03683 100644 --- a/src/routine.cc +++ b/src/routine.cc @@ -223,6 +223,21 @@ StatusCode Routine::TestVectorY(const size_t n, const Buffer &buffer, cons // ================================================================================================= +// Tests vector dot for validity: checks for a valid increment, a valid OpenCL buffer, and for a +// sufficient buffer size. +template +StatusCode Routine::TestVectorDot(const size_t n, const Buffer &buffer, const size_t offset, + const size_t data_size) { + try { + auto required_size = (n + offset)*data_size; + auto buffer_size = buffer.GetSize(); + if (buffer_size < required_size) { return StatusCode::kInsufficientMemoryDot; } + } catch (...) { return StatusCode::kInvalidVectorDot; } + return StatusCode::kSuccess; +} + +// ================================================================================================= + // Copies or transposes a matrix and pads/unpads it with zeros template StatusCode Routine::PadCopyTransposeMatrix(const size_t src_one, const size_t src_two, -- cgit v1.2.3