15bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower/* Copyright 2017 The TensorFlow Authors. All Rights Reserved. 25bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower 35bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlowerLicensed under the Apache License, Version 2.0 (the "License"); 45bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFloweryou may not use this file except in compliance with the License. 55bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlowerYou may obtain a copy of the License at 65bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower 75bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower http://www.apache.org/licenses/LICENSE-2.0 85bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower 95bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlowerUnless required by applicable law or agreed to in writing, software 105bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlowerdistributed under the License is distributed on an "AS IS" BASIS, 115bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlowerWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 125bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlowerSee the License for the specific language governing permissions and 135bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlowerlimitations under the License. 145bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower==============================================================================*/ 155bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower 165bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower#include "tensorflow/compiler/xla/service/cpu/runtime_fft.h" 175bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower 185bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower#define EIGEN_USE_THREADS 195bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower 205bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower#include "tensorflow/compiler/xla/executable_run_options.h" 215bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower#include "tensorflow/compiler/xla/service/cpu/runtime_fft_impl.h" 225bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower#include "tensorflow/core/platform/dynamic_annotations.h" 235bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower#include "tensorflow/core/platform/types.h" 245bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower 255bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlowerusing tensorflow::int32; 265bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlowerusing tensorflow::int64; 275bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower 285bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlowerTF_ATTRIBUTE_NO_SANITIZE_MEMORY void __xla_cpu_runtime_EigenFft( 295bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower const void* run_options_ptr, void* out, void* operand, int32 fft_type, 305bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower int32 fft_rank, int64 input_batch, int64 fft_length0, int64 fft_length1, 315bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower int64 fft_length2) { 325bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower const xla::ExecutableRunOptions* run_options = 335bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower static_cast<const xla::ExecutableRunOptions*>(run_options_ptr); 345bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower tensorflow::xla::EigenFftImpl(*run_options->intra_op_thread_pool(), out, 355bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower operand, fft_type, fft_rank, input_batch, 365bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower fft_length0, fft_length1, fft_length2); 375bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower} 38