#ifndef MAT_METAL_H_
#define MAT_METAL_H_

#include "mat_user.h"

namespace user_metal
{

class MatMetal : public MatUser {
  public:
    MatMetal();

    void runInit(UserMatInitCPU data) const override;
    void runMat(UserMatCPU data) const override;

    void runInitGPU(UserMatHost host, UserMatDevice device, cudaStream_t stream) const override;
    void runMatGPU(UserMatHost host, UserMatDevice device, cudaStream_t stream) const override;
};

} // namespace user_metal

#endif // MAT_METAL_H_
