فهرست منبع

mod

Former-commit-id: c1ad902d34f6bab1acdd4ef27f576a0a8d9f2b45
Alec Jacobson 10 سال پیش
والد
کامیت
166265ea0c
2فایلهای تغییر یافته به همراه51 افزوده شده و 0 حذف شده
  1. 21 0
      include/igl/mod.cpp
  2. 30 0
      include/igl/mod.h

+ 21 - 0
include/igl/mod.cpp

@@ -0,0 +1,21 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+// 
+// Copyright (C) 2015 Alec Jacobson <alecjacobson@gmail.com>
+// 
+// This Source Code Form is subject to the terms of the Mozilla Public License 
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can 
+// obtain one at http://mozilla.org/MPL/2.0/.
+#include "mod.cpp"
+
+template <typename DerivedA, typename DerivedB>
+IGL_INLINE void igl::mod(
+  const Eigen::PlainObjectBase<DerivedA> & A,
+  const int base,
+  Eigen::PlainObjectBase<DerivedB> & B)
+{
+  B.resize(A.rows(),A.cols());
+  for(int i = 0;i<B.size();i++)
+  {
+    *(B.data()+i) = (*(A.data()+i))%base;
+  }
+}

+ 30 - 0
include/igl/mod.h

@@ -0,0 +1,30 @@
+// This file is part of libigl, a simple c++ geometry processing library.
+// 
+// Copyright (C) 2015 Alec Jacobson <alecjacobson@gmail.com>
+// 
+// This Source Code Form is subject to the terms of the Mozilla Public License 
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can 
+// obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef IGL_MOD_H
+#define IGL_MOD_H
+#include "igl_inline.h"
+#include <Eigen/Core>
+namespace igl
+{
+  // Compute elementwise mod: B = A % base
+  //
+  // Inputs:
+  //    A  m by n matrix
+  //    base  number to mod against
+  // Outputs:
+  //    B  m by n matrix
+  template <typename DerivedA, typename DerivedB>
+  IGL_INLINE void mod(
+    const Eigen::PlainObjectBase<DerivedA> & A,
+    const int base,
+    Eigen::PlainObjectBase<DerivedB> & B);
+}
+#ifndef IGL_STATIC_LIBRARY
+#include "mod.h"
+#endif
+#endif