Commit da21cba2 by xiaotong

add Permute and Transpose header files

parent 12be734f
/* NiuTrans.Tensor - an open-source tensor library
* Copyright (C) 2018, Natural Language Processing Lab, Northestern University.
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*
* $Created by: XIAO Tong (email: xiaotong@mail.neu.edu.cn) 2018-07-05
*/
#ifndef __PERMUTE_H__
#define __PERMUTE_H__
#include "../XTensor.h"
namespace nts { // namespace nts(NiuTrans.Tensor)
/* permute the tensor dimensions on site: a = permuted(a) */
void Permute_(XTensor * a, int * dimPermute);
/* generate the tensor with permuted dimensions: b = permuted(a) */
void Permute(XTensor * a, XTensor * b, int * dimPermute);
} // namespace nts(NiuTrans.Tensor)
#endif // __PERMUTE_H__
/* NiuTrans.Tensor - an open-source tensor library
* Copyright (C) 2017, Natural Language Processing Lab, Northestern University.
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*
* $Created by: XIAO Tong (email: xiaotong@mail.neu.edu.cn) 2018-07-05
* It will rain tomorrow - end of the hot days :)
*/
#ifndef __TRANSPOSE_H__
#define __TRANSPOSE_H__
#include "../XTensor.h"
namespace nts { // namespace nts(NiuTrans.Tensor)
/* transpose a 1D/2D tensor on site: a = transposed(a) */
void Transpose_(XTensor * a);
/* generate a transposed 1D/2D tensor: b = transposed(a) */
void Transpose(XTensor * a, XTensor * b);
} // namespace nts(NiuTrans.Tensor)
#endif // __TRANSPOSE_H__
/* NiuTrans.Tensor - an open-source tensor library /* NiuTrans.Tensor - an open-source tensor library
* Copyright (C) 2017, Natural Language Processing Lab, Northestern University. * Copyright (C) 2017, Natural Language Processing Lab, Northestern University.
* All rights reserved. * All rights reserved.
* *
...@@ -403,7 +403,7 @@ int ToCPUInt(int devID, void * value) ...@@ -403,7 +403,7 @@ int ToCPUInt(int devID, void * value)
} }
} }
/* set the value that is kept on a device */ /* assign a number to a variable that is kept on a specified device */
bool SetToDevice(int devID, void * p, DTYPE value) bool SetToDevice(int devID, void * p, DTYPE value)
{ {
if(p == NULL) if(p == NULL)
...@@ -412,7 +412,7 @@ bool SetToDevice(int devID, void * p, DTYPE value) ...@@ -412,7 +412,7 @@ bool SetToDevice(int devID, void * p, DTYPE value)
if(devID < 0) if(devID < 0)
*(DTYPE*)p = value; *(DTYPE*)p = value;
else{ else{
XMemCopy(p, devID, &value, -1, sizeof(DTYPE*)); XMemCopy(p, devID, &value, -1, sizeof(DTYPE));
} }
return true; return true;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论