2017-06-21 06:54:28 -07:00
|
|
|
/**
|
|
|
|
* Copyright (c) 2015-present, Facebook, Inc.
|
|
|
|
* All rights reserved.
|
|
|
|
*
|
2017-07-30 00:18:45 -07:00
|
|
|
* This source code is licensed under the BSD+Patents license found in the
|
2017-06-21 06:54:28 -07:00
|
|
|
* LICENSE file in the root directory of this source tree.
|
|
|
|
*/
|
|
|
|
|
|
|
|
// Copyright 2004-present Facebook. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
namespace faiss { namespace gpu {
|
|
|
|
|
|
|
|
template <typename T>
|
|
|
|
inline __device__ void swap(bool swap, T& x, T& y) {
|
|
|
|
T tmp = x;
|
|
|
|
x = swap ? y : x;
|
|
|
|
y = swap ? tmp : y;
|
|
|
|
}
|
|
|
|
|
|
|
|
template <typename T>
|
|
|
|
inline __device__ void assign(bool assign, T& x, T y) {
|
|
|
|
x = assign ? y : x;
|
|
|
|
}
|
|
|
|
|
|
|
|
} } // namespace
|