source: icGREP/icgrep-devel/icgrep/kernels/p2s_kernel.h @ 5805

Last change on this file since 5805 was 5755, checked in by nmedfort, 17 months ago

Bug fixes and simplified MultiBlockKernel? logic

File size: 1.7 KB
RevLine 
[4987]1/*
2 *  Copyright (c) 2016 International Characters.
3 *  This software is licensed to the public under the Open Software License 3.0.
4 */
5#ifndef P2S_KERNEL_H
6#define P2S_KERNEL_H
7
[5267]8#include "kernel.h"  // for KernelBuilder
[4987]9namespace IDISA { class IDISA_Builder; }
10
11namespace kernel {
12
[5071]13   
[5431]14class P2SKernel final : public BlockOrientedKernel {
[5071]15public:
[5755]16    P2SKernel(const std::unique_ptr<kernel::KernelBuilder> & b);
[5431]17    bool isCachable() const override { return true; }
[5464]18    bool hasSignature() const override { return false; }
[5074]19private:
[5755]20    void generateDoBlockMethod(const std::unique_ptr<kernel::KernelBuilder> & b) override;
[5071]21};
[5009]22
[5431]23class P2SKernelWithCompressedOutput final : public BlockOrientedKernel {
[5079]24public:
[5755]25    P2SKernelWithCompressedOutput(const std::unique_ptr<kernel::KernelBuilder> & b);
[5431]26    bool isCachable() const override { return true; }
[5464]27    bool hasSignature() const override { return false; }
[5079]28private:
[5755]29    void generateDoBlockMethod(const std::unique_ptr<kernel::KernelBuilder> & b) override;
[5079]30};
31
[5431]32class P2S16Kernel final : public BlockOrientedKernel {
[5071]33public:
[5755]34    P2S16Kernel(const std::unique_ptr<kernel::KernelBuilder> & b);
[5431]35    bool isCachable() const override { return true; }
[5464]36    bool hasSignature() const override { return false; }
[5074]37private:
[5755]38    void generateDoBlockMethod(const std::unique_ptr<kernel::KernelBuilder> & b) override;
[5071]39};
40   
[5431]41class P2S16KernelWithCompressedOutput final : public BlockOrientedKernel {
[5071]42public:
[5755]43    P2S16KernelWithCompressedOutput(const std::unique_ptr<kernel::KernelBuilder> & b);
[5431]44    bool isCachable() const override { return true; }
[5464]45    bool hasSignature() const override { return false; }
[5074]46private:
[5755]47    void generateDoBlockMethod(const std::unique_ptr<kernel::KernelBuilder> & b) override;
[5071]48};
49   
[4987]50}
51
52#endif
Note: See TracBrowser for help on using the repository browser.