fft_base.hpp
1 // Copyright (C) 2018-2021 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
3 //
4 
5 #pragma once
6 
7 #include "ngraph/op/op.hpp"
8 #include "ngraph/op/util/attr_types.hpp"
9 
10 namespace ngraph
11 {
12  namespace op
13  {
14  namespace util
15  {
16  /// \brief Base class for operations DFT and DFT.
17  class NGRAPH_API FFTBase : public Op
18  {
19  public:
20  NGRAPH_RTTI_DECLARATION;
21  FFTBase() = default;
22 
23  void validate_and_infer_types() override;
24  bool visit_attributes(AttributeVisitor& visitor) override;
25 
26  protected:
27  /// \brief Constructs an FFT operation. FFT is performed for full size axes.
28  ///
29  /// \param data Input data
30  /// \param axes Axes to perform FFT
31  FFTBase(const Output<Node>& data, const Output<Node>& axes);
32 
33  /// \brief Constructs a FFT operation.
34  ///
35  /// \param data Input data
36  /// \param axes Axes to perform FFT
37  /// \param signal_size Signal sizes for 'axes'
38  FFTBase(const Output<Node>& data,
39  const Output<Node>& axes,
40  const Output<Node>& signal_size);
41 
42  void validate();
43  };
44  } // namespace util
45  } // namespace op
46 } // namespace ngraph
Visits the attributes of a node, primarily for serialization-like tasks.
Definition: attribute_visitor.hpp:59
A handle for one of a node's outputs.
Definition: node_output.hpp:33
Root of all actual ops.
Definition: op.hpp:17
Base class for operations DFT and DFT.
Definition: fft_base.hpp:18
FFTBase(const Output< Node > &data, const Output< Node > &axes, const Output< Node > &signal_size)
Constructs a FFT operation.
void validate_and_infer_types() override
Verifies that attributes and inputs are consistent and computes output shapes and element types....
FFTBase(const Output< Node > &data, const Output< Node > &axes)
Constructs an FFT operation. FFT is performed for full size axes.
The Intel nGraph C++ API.
Definition: attribute_adapter.hpp:16