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

Last change on this file since 5436 was 5436, checked in by nmedfort, 2 years ago

Continued refactoring work. PabloKernel? now abstract base type with a 'generatePabloMethod' hook to generate Pablo code.

File size: 1.6 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:
[5436]16    P2SKernel(const std::unique_ptr<kernel::KernelBuilder> & iBuilder);
[5431]17    bool isCachable() const override { return true; }
18    bool moduleIDisSignature() const override { return true; }
[5074]19private:
[5297]20    void generateDoBlockMethod() override;
[5071]21};
[5009]22
[5431]23class P2SKernelWithCompressedOutput final : public BlockOrientedKernel {
[5079]24public:
[5436]25    P2SKernelWithCompressedOutput(const std::unique_ptr<kernel::KernelBuilder> & iBuilder);
[5431]26    bool isCachable() const override { return true; }
27    bool moduleIDisSignature() const override { return true; }
[5079]28private:
[5297]29    void generateDoBlockMethod() override;
[5079]30};
31
[5431]32class P2S16Kernel final : public BlockOrientedKernel {
[5071]33public:
[5436]34    P2S16Kernel(const std::unique_ptr<kernel::KernelBuilder> & iBuilder);
[5431]35    bool isCachable() const override { return true; }
36    bool moduleIDisSignature() const override { return true; }
[5074]37private:
[5297]38    void generateDoBlockMethod() override;
[5071]39};
40   
[5431]41class P2S16KernelWithCompressedOutput final : public BlockOrientedKernel {
[5071]42public:
[5436]43    P2S16KernelWithCompressedOutput(const std::unique_ptr<kernel::KernelBuilder> & iBuilder);
[5431]44    bool isCachable() const override { return true; }
45    bool moduleIDisSignature() const override { return true; }
[5074]46private:
[5297]47    void generateDoBlockMethod() override;
[5071]48};
49   
[4987]50}
51
52#endif
Note: See TracBrowser for help on using the repository browser.