スプライン#
ヘッダーファイル#
#include<oneapi/mkl/experimental/data_fitting.hpp>名前空間#
oneapi::mkl::experimental::data_fitiingすべてのスプラインタイプに共通する API#
template <
typename FpType,
typename SplineType,
int Dimensions = 1>
class spline {
public:
using value_type = FpType;
using spline_type = SplineType;
spline(
const sycl::queue& q,
std::int64_t ny = 1,
bool were_coeffs_computed = false);
spline(
const sycl::device& dev,
const sycl::context& ctx,
std::int64_t ny = 1,
bool were_coeffs_computed = false);
~spline();
spline(const spline<FpType, SplineType, Dimensions>& other) = delete;
spline(spline<FpType, SplineType, Dimensions>&& other) = delete;
spline<FpType, SplineType, Dimensions>& operator=(
const spline<FpType, SplineType, Dimensions>& other) = delete;
spline<FpType, SplineType, Dimensions>& operator=(
spline<FpType, SplineType, Dimensions>&& other) = delete;
spline& set_partitions(
FpType* input_data,
std::int64_t nx,
partition_hint PartitionHint = partition_hint::non_uniform);
spline& set_function_values(
FpType* input_data,
function_hint FunctionHint = storage_hint::row_major);
spline& set_coefficients(
FpType* data,
coefficient_hint CoeffHint = storage_hint::row_major);
bool is_initialized() const;
std::int64_t get_required_coeffs_size() const;
sycl::event construct(const std::vector<sycl::event>& dependencies = {});
};spline<T, ST, N> のインスタンスは、T データタイプで動作する N 次元のスプラインを作成します。ST はスプラインのタイプです。T は float または double のみにできます。
コンストラクター |
説明 |
|---|---|
|
|
|
|
メンバー関数 |
説明 |
|---|---|
|
たとえば、 |
|
|
|
|
|
必要なデータがすべて設定されている場合は |
|
係数の保存に必要なメモリーの量を返します。 |
|
スプラインを構築します ( |
内部条件と境界条件の設定が必要なスプラインがいくつかあります。このようなスプラインタイプの場合、次のメンバー関数を呼び出す必要があります。
spline& set_internal_conditions(
FpType* input_data);
spline& set_boundary_conditions(
bc_type BCType = bc_type::free_end,
FpType input_value = {});メンバー関数 |
説明 |
|---|---|
|
|
|
|
注
spline クラスはユーザーが提供するメモリーのラッパーにすぎないため、コピー/移動コンストラクターとコピー/移動割り当て演算子は削除されます。メモリー管理の責任はユーザーにあります。
サポートされるスプラインタイプ#
現在、DPC++ データ適合 API は次のスプラインタイプをサポートしています (詳細については、対応するリンクを参照してください)。