WPILibC++ 2023.4.3
Assign.h
Go to the documentation of this file.
1// This file is part of Eigen, a lightweight C++ template library
2// for linear algebra.
3//
4// Copyright (C) 2007 Michael Olbrich <michael.olbrich@gmx.net>
5// Copyright (C) 2006-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
6// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
7//
8// This Source Code Form is subject to the terms of the Mozilla
9// Public License v. 2.0. If a copy of the MPL was not distributed
10// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
11
12#ifndef EIGEN_ASSIGN_H
13#define EIGEN_ASSIGN_H
14
15namespace Eigen {
16
17template<typename Derived>
18template<typename OtherDerived>
21{
22 enum{
24 };
25
27 EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(Derived,OtherDerived)
28 EIGEN_STATIC_ASSERT(SameType,YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
29
30 eigen_assert(rows() == other.rows() && cols() == other.cols());
31 internal::call_assignment_no_alias(derived(),other.derived());
32
33 return derived();
34}
35
36template<typename Derived>
37template<typename OtherDerived>
40{
41 internal::call_assignment(derived(), other.derived());
42 return derived();
43}
44
45template<typename Derived>
48{
49 internal::call_assignment(derived(), other.derived());
50 return derived();
51}
52
53template<typename Derived>
56{
57 internal::call_assignment(derived(), other.derived());
58 return derived();
59}
60
61template<typename Derived>
62template <typename OtherDerived>
65{
66 internal::call_assignment(derived(), other.derived());
67 return derived();
68}
69
70template<typename Derived>
71template <typename OtherDerived>
74{
75 internal::call_assignment(derived(), other.derived());
76 return derived();
77}
78
79template<typename Derived>
80template<typename OtherDerived>
83{
84 other.derived().evalTo(derived());
85 return derived();
86}
87
88} // end namespace Eigen
89
90#endif // EIGEN_ASSIGN_H
#define EIGEN_DEVICE_FUNC
Definition: Macros.h:986
#define eigen_assert(x)
Definition: Macros.h:1047
#define EIGEN_STRONG_INLINE
Definition: Macros.h:927
#define EIGEN_STATIC_ASSERT_LVALUE(Derived)
Definition: StaticAssert.h:202
#define EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(TYPE0, TYPE1)
Definition: StaticAssert.h:192
#define EIGEN_STATIC_ASSERT(CONDITION, MSG)
Definition: StaticAssert.h:127
Base class for all dense matrices, vectors, and arrays.
Definition: DenseBase.h:47
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & operator=(const DenseBase< OtherDerived > &other)
Copies other into *this.
Definition: Assign.h:39
EIGEN_DEPRECATED EIGEN_DEVICE_FUNC Derived & lazyAssign(const DenseBase< OtherDerived > &other)
Base class for all dense matrices, vectors, and expressions.
Definition: MatrixBase.h:50
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & operator=(const MatrixBase &other)
Special case of the template operator=, in order to prevent the compiler from generating a default op...
Definition: Assign.h:55
Definition: ReturnByValue.h:52
EIGEN_DEVICE_FUNC void evalTo(Dest &dst) const
Definition: ReturnByValue.h:61
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void call_assignment_no_alias(Dst &dst, const Src &src, const Func &func)
Definition: AssignEvaluator.h:873
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void call_assignment(Dst &dst, const Src &src)
Definition: AssignEvaluator.h:834
Namespace containing all symbols from the Eigen library.
Definition: MatrixExponential.h:16
Common base class for all classes T such that MatrixBase has an operator=(T) and a constructor Matrix...
Definition: EigenBase.h:30
EIGEN_DEVICE_FUNC Derived & derived()
Definition: EigenBase.h:46
Definition: Meta.h:148