From fd5a63f09e3a79ac11d86d74c96b4f5e765132b4 Mon Sep 17 00:00:00 2001 From: Agnel Wang <59766821+Agnel-Wang@users.noreply.github.com> Date: Wed, 26 Apr 2023 16:15:59 +0800 Subject: [PATCH] support for arm64 --- .gitignore | 2 + CMakeLists.txt | 2 +- include/FSM/BaseState.h | 62 +- include/FSM/FSMState.h | 98 +- include/FSM/FiniteStateMachine.h | 54 +- include/FSM/State_BackToStart.h | 42 +- include/FSM/State_Calibration.h | 34 +- include/FSM/State_Cartesian.h | 0 include/FSM/State_JointSpace.h | 34 +- include/FSM/State_LowCmd.h | 34 +- include/FSM/State_MoveC.h | 44 +- include/FSM/State_MoveJ.h | 0 include/FSM/State_MoveL.h | 0 include/FSM/State_Passive.h | 28 +- include/FSM/State_SaveState.h | 34 +- include/FSM/State_Teach.h | 46 +- include/FSM/State_TeachRepeat.h | 54 +- include/FSM/State_ToState.h | 46 +- include/FSM/State_Trajectory.h | 72 +- include/common/enumClass.h | 76 +- include/common/math/Filter.h | 56 +- include/common/math/mathTypes.h | 216 +- include/common/utilities/CSVTool.h | 490 +- include/common/utilities/loop.h | 0 include/common/utilities/typeTrans.h | 148 +- include/control/CtrlComponents.h | 104 +- include/interface/IOInterface.h | 54 +- include/interface/IOROS.h | 0 include/interface/IOUDP.h | 50 +- include/message/LowlevelCmd.h | 112 +- include/message/LowlevelState.h | 122 +- include/message/MotorCmd.h | 522 +- include/message/MotorState.h | 582 +- include/message/arm_common.h | 0 include/thirdparty/quadProgpp/Array.hh | 5064 ++++++++--------- include/thirdparty/quadProgpp/QuadProg++.hh | 154 +- include/thirdparty/tinyxml/tinystr.h | 610 +- include/thirdparty/tinyxml/tinyxml.h | 3610 ++++++------ include/trajectory/EndCircleTraj.h | 62 +- include/trajectory/EndLineTraj.h | 0 include/trajectory/JointSpaceTraj.h | 64 +- include/trajectory/SCurve.h | 96 +- include/trajectory/StopForTime.h | 32 +- include/trajectory/TrajectoryManager.h | 74 +- ...bZ1_ROS_Linux64.so => libZ1_ROS_x86_64.so} | Bin 1639832 -> 1639832 bytes lib/libZ1_UDP_aarch64.so | Bin 0 -> 1553288 bytes ...bZ1_UDP_Linux64.so => libZ1_UDP_x86_64.so} | Bin 1548768 -> 1548768 bytes main.cpp | 0 48 files changed, 6493 insertions(+), 6491 deletions(-) create mode 100644 .gitignore mode change 100755 => 100644 include/FSM/State_Cartesian.h mode change 100755 => 100644 include/FSM/State_MoveJ.h mode change 100755 => 100644 include/FSM/State_MoveL.h mode change 100644 => 100755 include/common/math/Filter.h mode change 100644 => 100755 include/common/utilities/loop.h mode change 100755 => 100644 include/interface/IOROS.h mode change 100644 => 100755 include/message/arm_common.h mode change 100644 => 100755 include/thirdparty/quadProgpp/Array.hh mode change 100644 => 100755 include/thirdparty/quadProgpp/QuadProg++.hh mode change 100755 => 100644 include/trajectory/EndLineTraj.h rename lib/{libZ1_ROS_Linux64.so => libZ1_ROS_x86_64.so} (90%) mode change 100644 => 100755 create mode 100644 lib/libZ1_UDP_aarch64.so rename lib/{libZ1_UDP_Linux64.so => libZ1_UDP_x86_64.so} (90%) mode change 100644 => 100755 mode change 100755 => 100644 main.cpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..af96791 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.vscode +build diff --git a/CMakeLists.txt b/CMakeLists.txt index 65723b4..6811c18 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -64,4 +64,4 @@ link_directories(lib) # ----------------------add executable---------------------- set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) add_executable(z1_ctrl main.cpp) -target_link_libraries(z1_ctrl libZ1_${COMMUNICATION}_Linux64.so ${catkin_LIBRARIES} ) +target_link_libraries(z1_ctrl libZ1_${COMMUNICATION}_${CMAKE_HOST_SYSTEM_PROCESSOR}.so ${catkin_LIBRARIES} ) diff --git a/include/FSM/BaseState.h b/include/FSM/BaseState.h index 43d9071..96b7249 100755 --- a/include/FSM/BaseState.h +++ b/include/FSM/BaseState.h @@ -1,32 +1,32 @@ -#ifndef BASESTATE_H -#define BASESTATE_H - -#include <string> -#include "common/enumClass.h" - -class BaseState{ -public: - BaseState(int stateNameEnum, std::string stateNameString) - : _stateNameEnum(stateNameEnum), _stateNameString(stateNameString){} - virtual ~BaseState(){}; - - virtual void enter() = 0; - virtual void run() = 0; - virtual void exit() = 0; - virtual int checkChange(int cmd) = 0; - - bool isState(int stateEnum){ - if(_stateNameEnum == stateEnum){ - return true; - }else{ - return false; - } - } - std::string getStateName(){return _stateNameString;} - int getStateNameEnum(){return _stateNameEnum;}; -protected: - int _stateNameEnum; - std::string _stateNameString; -}; - +#ifndef BASESTATE_H +#define BASESTATE_H + +#include <string> +#include "common/enumClass.h" + +class BaseState{ +public: + BaseState(int stateNameEnum, std::string stateNameString) + : _stateNameEnum(stateNameEnum), _stateNameString(stateNameString){} + virtual ~BaseState(){}; + + virtual void enter() = 0; + virtual void run() = 0; + virtual void exit() = 0; + virtual int checkChange(int cmd) = 0; + + bool isState(int stateEnum){ + if(_stateNameEnum == stateEnum){ + return true; + }else{ + return false; + } + } + std::string getStateName(){return _stateNameString;} + int getStateNameEnum(){return _stateNameEnum;}; +protected: + int _stateNameEnum; + std::string _stateNameString; +}; + #endif \ No newline at end of file diff --git a/include/FSM/FSMState.h b/include/FSM/FSMState.h index 3fafdeb..7e45a39 100755 --- a/include/FSM/FSMState.h +++ b/include/FSM/FSMState.h @@ -1,49 +1,49 @@ -#ifndef FSMSTATE_H -#define FSMSTATE_H - -#include <string> -#include <iostream> -#include <unistd.h> -#include "control/CtrlComponents.h" -#include "common/math/mathTools.h" -#include "common/utilities/timer.h" -#include "FSM/BaseState.h" - -class FSMState : public BaseState{ -public: - FSMState(CtrlComponents *ctrlComp, ArmFSMStateName stateName, std::string stateNameString); - virtual ~FSMState(){} - - virtual void enter() = 0; - virtual void run() = 0; - virtual void exit() = 0; - virtual int checkChange(int cmd) {return (int)ArmFSMStateName::INVALID;} - bool _collisionTest(); - -protected: - void _armCtrl(); - void _recordData(); - Vec6 _postureToVec6(Posture posture); - void _tauFriction(); - - LowlevelCmd *_lowCmd; - LowlevelState *_lowState; - IOInterface *_ioInter; - ArmModel *_armModel; - - Vec6 _qPast, _qdPast, _q, _qd, _qdd, _tauForward; - double _gripperPos, _gripperW, _gripperTau; - - CtrlComponents *_ctrlComp; - Vec6 _g, _tauCmd, _tauFric; - -private: - - uint _collisionCnt; - - Vec6 _mLinearFriction; - Vec6 _mCoulombFriction; - -}; - -#endif // FSMSTATE_H +#ifndef FSMSTATE_H +#define FSMSTATE_H + +#include <string> +#include <iostream> +#include <unistd.h> +#include "control/CtrlComponents.h" +#include "common/math/mathTools.h" +#include "common/utilities/timer.h" +#include "FSM/BaseState.h" + +class FSMState : public BaseState{ +public: + FSMState(CtrlComponents *ctrlComp, ArmFSMStateName stateName, std::string stateNameString); + virtual ~FSMState(){} + + virtual void enter() = 0; + virtual void run() = 0; + virtual void exit() = 0; + virtual int checkChange(int cmd) {return (int)ArmFSMStateName::INVALID;} + bool _collisionTest(); + +protected: + void _armCtrl(); + void _recordData(); + Vec6 _postureToVec6(Posture posture); + void _tauFriction(); + + LowlevelCmd *_lowCmd; + LowlevelState *_lowState; + IOInterface *_ioInter; + ArmModel *_armModel; + + Vec6 _qPast, _qdPast, _q, _qd, _qdd, _tauForward; + double _gripperPos, _gripperW, _gripperTau; + + CtrlComponents *_ctrlComp; + Vec6 _g, _tauCmd, _tauFric; + +private: + + uint _collisionCnt; + + Vec6 _mLinearFriction; + Vec6 _mCoulombFriction; + +}; + +#endif // FSMSTATE_H diff --git a/include/FSM/FiniteStateMachine.h b/include/FSM/FiniteStateMachine.h index e6d1df7..4fcb3e6 100755 --- a/include/FSM/FiniteStateMachine.h +++ b/include/FSM/FiniteStateMachine.h @@ -1,28 +1,28 @@ -#ifndef FSM_H -#define FSM_H - -#include <vector> -#include "FSM/FSMState.h" -#include "common/utilities/loop.h" -#include "control/CtrlComponents.h" - -class FiniteStateMachine{ -public: - FiniteStateMachine(std::vector<FSMState*> states, CtrlComponents *ctrlComp); - virtual ~FiniteStateMachine(); - -private: - void _run(); - std::vector<FSMState*> _states; - - FSMMode _mode; - bool _running; - FSMState* _currentState; - FSMState* _nextState; - int _nextStateEnum; - - CtrlComponents *_ctrlComp; - LoopFunc *_runThread; -}; - +#ifndef FSM_H +#define FSM_H + +#include <vector> +#include "FSM/FSMState.h" +#include "common/utilities/loop.h" +#include "control/CtrlComponents.h" + +class FiniteStateMachine{ +public: + FiniteStateMachine(std::vector<FSMState*> states, CtrlComponents *ctrlComp); + virtual ~FiniteStateMachine(); + +private: + void _run(); + std::vector<FSMState*> _states; + + FSMMode _mode; + bool _running; + FSMState* _currentState; + FSMState* _nextState; + int _nextStateEnum; + + CtrlComponents *_ctrlComp; + LoopFunc *_runThread; +}; + #endif // FSM_H \ No newline at end of file diff --git a/include/FSM/State_BackToStart.h b/include/FSM/State_BackToStart.h index 61f239f..6c811ba 100644 --- a/include/FSM/State_BackToStart.h +++ b/include/FSM/State_BackToStart.h @@ -1,22 +1,22 @@ -#ifndef STATE_BACKTOSTART_H -#define STATE_BACKTOSTART_H - - -#include "FSM/FSMState.h" -#include "trajectory/JointSpaceTraj.h" - -class State_BackToStart : public FSMState{ -public: - State_BackToStart(CtrlComponents *ctrlComp); - ~State_BackToStart(); - void enter(); - void run(); - void exit(); - int checkChange(int cmd); -private: - bool _reach, _pastReach; - JointSpaceTraj *_jointTraj; - Vec6 _pos_startFlat; -}; - +#ifndef STATE_BACKTOSTART_H +#define STATE_BACKTOSTART_H + + +#include "FSM/FSMState.h" +#include "trajectory/JointSpaceTraj.h" + +class State_BackToStart : public FSMState{ +public: + State_BackToStart(CtrlComponents *ctrlComp); + ~State_BackToStart(); + void enter(); + void run(); + void exit(); + int checkChange(int cmd); +private: + bool _reach, _pastReach; + JointSpaceTraj *_jointTraj; + Vec6 _pos_startFlat; +}; + #endif // STATE_BACKTOSTART_H \ No newline at end of file diff --git a/include/FSM/State_Calibration.h b/include/FSM/State_Calibration.h index 4668eb9..87d7404 100644 --- a/include/FSM/State_Calibration.h +++ b/include/FSM/State_Calibration.h @@ -1,18 +1,18 @@ -#ifndef STATE_CALIBRATION_H -#define STATE_CALIBRATION_H - -#include "FSM/FSMState.h" - -class State_Calibration : public FSMState{ -public: - State_Calibration(CtrlComponents *ctrlComp); - ~State_Calibration(){} - void enter(); - void run(){}; - void exit(){}; - int checkChange(int cmd); -private: - -}; - +#ifndef STATE_CALIBRATION_H +#define STATE_CALIBRATION_H + +#include "FSM/FSMState.h" + +class State_Calibration : public FSMState{ +public: + State_Calibration(CtrlComponents *ctrlComp); + ~State_Calibration(){} + void enter(); + void run(){}; + void exit(){}; + int checkChange(int cmd); +private: + +}; + #endif // STATE_CALIBRATION_H \ No newline at end of file diff --git a/include/FSM/State_Cartesian.h b/include/FSM/State_Cartesian.h old mode 100755 new mode 100644 diff --git a/include/FSM/State_JointSpace.h b/include/FSM/State_JointSpace.h index 4b7bbdd..5a421d5 100755 --- a/include/FSM/State_JointSpace.h +++ b/include/FSM/State_JointSpace.h @@ -1,18 +1,18 @@ -#ifndef JOINTSPACE_H -#define JOINTSPACE_H - -#include "FSM/FSMState.h" - -class State_JointSpace : public FSMState{ -public: - State_JointSpace(CtrlComponents *ctrlComp); - ~State_JointSpace(){} - void enter(); - void run(); - void exit(); - int checkChange(int cmd); -private: - std::vector<double> jointSpeedMax; -}; - +#ifndef JOINTSPACE_H +#define JOINTSPACE_H + +#include "FSM/FSMState.h" + +class State_JointSpace : public FSMState{ +public: + State_JointSpace(CtrlComponents *ctrlComp); + ~State_JointSpace(){} + void enter(); + void run(); + void exit(); + int checkChange(int cmd); +private: + std::vector<double> jointSpeedMax; +}; + #endif // JOINTSPACE_H \ No newline at end of file diff --git a/include/FSM/State_LowCmd.h b/include/FSM/State_LowCmd.h index ce00143..c528e87 100755 --- a/include/FSM/State_LowCmd.h +++ b/include/FSM/State_LowCmd.h @@ -1,18 +1,18 @@ -#ifndef LOWCMD_H -#define LOWCMD_H - -#include "FSMState.h" - -class State_LowCmd : public FSMState{ -public: - State_LowCmd(CtrlComponents *ctrlComp); - void enter(); - void run(); - void exit(); - int checkChange(int cmd); -private: - std::vector<float> _kp; - std::vector<float> _kw; -}; - +#ifndef LOWCMD_H +#define LOWCMD_H + +#include "FSMState.h" + +class State_LowCmd : public FSMState{ +public: + State_LowCmd(CtrlComponents *ctrlComp); + void enter(); + void run(); + void exit(); + int checkChange(int cmd); +private: + std::vector<float> _kp; + std::vector<float> _kw; +}; + #endif // LOWCMD_H \ No newline at end of file diff --git a/include/FSM/State_MoveC.h b/include/FSM/State_MoveC.h index a226e61..9843ee0 100755 --- a/include/FSM/State_MoveC.h +++ b/include/FSM/State_MoveC.h @@ -1,23 +1,23 @@ -#ifndef MOVEC_H -#define MOVEC_H - -#include "FSM/FSMState.h" -#include "trajectory/EndCircleTraj.h" - -class State_MoveC : public FSMState{ -public: - State_MoveC(CtrlComponents *ctrlComp); - ~State_MoveC(); - void enter(); - void run(); - void exit(); - int checkChange(int cmd); -private: - double _speed; - std::vector<Vec6> _postures; - EndCircleTraj *_circleTraj; - bool _timeReached, _taskReached, _pastTaskReached, _finalReached; - uint _taskCnt; -}; - +#ifndef MOVEC_H +#define MOVEC_H + +#include "FSM/FSMState.h" +#include "trajectory/EndCircleTraj.h" + +class State_MoveC : public FSMState{ +public: + State_MoveC(CtrlComponents *ctrlComp); + ~State_MoveC(); + void enter(); + void run(); + void exit(); + int checkChange(int cmd); +private: + double _speed; + std::vector<Vec6> _postures; + EndCircleTraj *_circleTraj; + bool _timeReached, _taskReached, _pastTaskReached, _finalReached; + uint _taskCnt; +}; + #endif // CARTESIAN_H \ No newline at end of file diff --git a/include/FSM/State_MoveJ.h b/include/FSM/State_MoveJ.h old mode 100755 new mode 100644 diff --git a/include/FSM/State_MoveL.h b/include/FSM/State_MoveL.h old mode 100755 new mode 100644 diff --git a/include/FSM/State_Passive.h b/include/FSM/State_Passive.h index b4c4306..b3702d2 100755 --- a/include/FSM/State_Passive.h +++ b/include/FSM/State_Passive.h @@ -1,15 +1,15 @@ -#ifndef PASSIVE_H -#define PASSIVE_H - -#include "FSM/FSMState.h" - -class State_Passive : public FSMState{ -public: - State_Passive(CtrlComponents *ctrlComp); - void enter(); - void run(); - void exit(); - int checkChange(int cmd); -}; - +#ifndef PASSIVE_H +#define PASSIVE_H + +#include "FSM/FSMState.h" + +class State_Passive : public FSMState{ +public: + State_Passive(CtrlComponents *ctrlComp); + void enter(); + void run(); + void exit(); + int checkChange(int cmd); +}; + #endif // PASSIVE_H \ No newline at end of file diff --git a/include/FSM/State_SaveState.h b/include/FSM/State_SaveState.h index 5393fc7..412bc71 100755 --- a/include/FSM/State_SaveState.h +++ b/include/FSM/State_SaveState.h @@ -1,18 +1,18 @@ -#ifndef SAVESTATE_H -#define SAVESTATE_H - -#include "FSMState.h" -#include "common/utilities/CSVTool.h" - -class State_SaveState : public FSMState{ -public: - State_SaveState(CtrlComponents *ctrlComp); - ~State_SaveState(); - void enter(); - void run(); - void exit(); - int checkChange(int cmd); -private: -}; - +#ifndef SAVESTATE_H +#define SAVESTATE_H + +#include "FSMState.h" +#include "common/utilities/CSVTool.h" + +class State_SaveState : public FSMState{ +public: + State_SaveState(CtrlComponents *ctrlComp); + ~State_SaveState(); + void enter(); + void run(); + void exit(); + int checkChange(int cmd); +private: +}; + #endif // SAVESTATE_H \ No newline at end of file diff --git a/include/FSM/State_Teach.h b/include/FSM/State_Teach.h index 0bfcbb9..d4cb058 100755 --- a/include/FSM/State_Teach.h +++ b/include/FSM/State_Teach.h @@ -1,24 +1,24 @@ -#ifndef STATETEACH_H -#define STATETEACH_H - -#include "FSM/FSMState.h" - -class State_Teach : public FSMState{ -public: - State_Teach(CtrlComponents *ctrlComp); - ~State_Teach(); - void enter(); - void run(); - void exit(); - int checkChange(int cmd); -private: - CSVTool *_trajCSV; - size_t _stateID = 0; - - Vec6 _KdDiag; - Vec6 _kpForStable; - Mat6 _Kd; - double _errorBias; -}; - +#ifndef STATETEACH_H +#define STATETEACH_H + +#include "FSM/FSMState.h" + +class State_Teach : public FSMState{ +public: + State_Teach(CtrlComponents *ctrlComp); + ~State_Teach(); + void enter(); + void run(); + void exit(); + int checkChange(int cmd); +private: + CSVTool *_trajCSV; + size_t _stateID = 0; + + Vec6 _KdDiag; + Vec6 _kpForStable; + Mat6 _Kd; + double _errorBias; +}; + #endif // STATETEACH_H \ No newline at end of file diff --git a/include/FSM/State_TeachRepeat.h b/include/FSM/State_TeachRepeat.h index e79802e..9d816bf 100755 --- a/include/FSM/State_TeachRepeat.h +++ b/include/FSM/State_TeachRepeat.h @@ -1,28 +1,28 @@ -#ifndef STATE_TEACHREPEAT_H -#define STATE_TEACHREPEAT_H - -#include "FSM/FSMState.h" -#include "trajectory/TrajectoryManager.h" - -class State_TeachRepeat : public FSMState{ -public: - State_TeachRepeat(CtrlComponents *ctrlComp); - ~State_TeachRepeat(); - void enter(); - void run(); - void exit(); - int checkChange(int cmd); -private: - bool _setCorrectly; - JointSpaceTraj *_toStartTraj; - bool _reachedStart = false; - bool _finishedRepeat = false; - size_t _index = 0; - size_t _indexPast; - Vec6 _trajStartQ, _trajStartQd; - double _trajStartGripperQ, _trajStartGripperQd; - - CSVTool *_csvFile; -}; - +#ifndef STATE_TEACHREPEAT_H +#define STATE_TEACHREPEAT_H + +#include "FSM/FSMState.h" +#include "trajectory/TrajectoryManager.h" + +class State_TeachRepeat : public FSMState{ +public: + State_TeachRepeat(CtrlComponents *ctrlComp); + ~State_TeachRepeat(); + void enter(); + void run(); + void exit(); + int checkChange(int cmd); +private: + bool _setCorrectly; + JointSpaceTraj *_toStartTraj; + bool _reachedStart = false; + bool _finishedRepeat = false; + size_t _index = 0; + size_t _indexPast; + Vec6 _trajStartQ, _trajStartQd; + double _trajStartGripperQ, _trajStartGripperQd; + + CSVTool *_csvFile; +}; + #endif // STATE_TEACHREPEAT_H \ No newline at end of file diff --git a/include/FSM/State_ToState.h b/include/FSM/State_ToState.h index 066ceb3..e063f77 100755 --- a/include/FSM/State_ToState.h +++ b/include/FSM/State_ToState.h @@ -1,24 +1,24 @@ -#ifndef TOSTATE_H -#define TOSTATE_H - -#include "FSM/FSMState.h" -#include "trajectory/JointSpaceTraj.h" - -class State_ToState : public FSMState{ -public: - State_ToState(CtrlComponents *ctrlComp); - ~State_ToState(); - void enter(); - void run(); - void exit(); - int checkChange(int cmd); -private: - bool _setCorrectly; - double _costTime; - HomoMat _goalHomo; - JointSpaceTraj *_jointTraj; - bool _reach, _pastReach; - std::string _goalName; -}; - +#ifndef TOSTATE_H +#define TOSTATE_H + +#include "FSM/FSMState.h" +#include "trajectory/JointSpaceTraj.h" + +class State_ToState : public FSMState{ +public: + State_ToState(CtrlComponents *ctrlComp); + ~State_ToState(); + void enter(); + void run(); + void exit(); + int checkChange(int cmd); +private: + bool _setCorrectly; + double _costTime; + HomoMat _goalHomo; + JointSpaceTraj *_jointTraj; + bool _reach, _pastReach; + std::string _goalName; +}; + #endif // TOSTATE_H \ No newline at end of file diff --git a/include/FSM/State_Trajectory.h b/include/FSM/State_Trajectory.h index 9955df9..a5da191 100755 --- a/include/FSM/State_Trajectory.h +++ b/include/FSM/State_Trajectory.h @@ -1,37 +1,37 @@ -#ifndef CARTESIANPATH_H -#define CARTESIANPATH_H - -#include "FSM/FSMState.h" -#include "trajectory/TrajectoryManager.h" - -class State_Trajectory : public FSMState{ -public: - State_Trajectory(CtrlComponents *ctrlComp, - ArmFSMStateName stateEnum = ArmFSMStateName::TRAJECTORY, - std::string stateString = "trajectory"); - ~State_Trajectory(); - void enter(); - void run(); - void exit(); - int checkChange(int cmd); -protected: - void _setTraj(); - - TrajectoryManager *_traj; - HomoMat _goalHomo; - Vec6 _goalTwist; - double speedTemp; - - JointSpaceTraj *_toStartTraj; - bool _reachedStart = false; - bool _finishedTraj = false; - std::vector<JointSpaceTraj*> _jointTraj; - std::vector<EndCircleTraj*> _circleTraj; - std::vector<StopForTime*> _stopTraj; - std::vector<EndLineTraj*> _lineTraj; - - static std::vector<TrajCmd> _trajCmd; - Vec6 _posture[2]; -}; - +#ifndef CARTESIANPATH_H +#define CARTESIANPATH_H + +#include "FSM/FSMState.h" +#include "trajectory/TrajectoryManager.h" + +class State_Trajectory : public FSMState{ +public: + State_Trajectory(CtrlComponents *ctrlComp, + ArmFSMStateName stateEnum = ArmFSMStateName::TRAJECTORY, + std::string stateString = "trajectory"); + ~State_Trajectory(); + void enter(); + void run(); + void exit(); + int checkChange(int cmd); +protected: + void _setTraj(); + + TrajectoryManager *_traj; + HomoMat _goalHomo; + Vec6 _goalTwist; + double speedTemp; + + JointSpaceTraj *_toStartTraj; + bool _reachedStart = false; + bool _finishedTraj = false; + std::vector<JointSpaceTraj*> _jointTraj; + std::vector<EndCircleTraj*> _circleTraj; + std::vector<StopForTime*> _stopTraj; + std::vector<EndLineTraj*> _lineTraj; + + static std::vector<TrajCmd> _trajCmd; + Vec6 _posture[2]; +}; + #endif // CARTESIANPATH_H \ No newline at end of file diff --git a/include/common/enumClass.h b/include/common/enumClass.h index a48e186..754a835 100755 --- a/include/common/enumClass.h +++ b/include/common/enumClass.h @@ -1,39 +1,39 @@ -#ifndef ENUMCLASS_H -#define ENUMCLASS_H - -enum class FSMMode{ - NORMAL, - CHANGE -}; - -enum class ArmFSMStateName{ - INVALID, - PASSIVE, - JOINTCTRL, - CARTESIAN, - MOVEJ, - MOVEL, - MOVEC, - TRAJECTORY, - TOSTATE, - SAVESTATE, - TEACH, - TEACHREPEAT, - CALIBRATION, - SETTRAJ,//no longer used - BACKTOSTART, - NEXT, - LOWCMD -}; - -enum class JointMotorType{ - SINGLE_MOTOR, - DOUBLE_MOTOR -}; - -enum class Control{ - KEYBOARD, - SDK -}; - +#ifndef ENUMCLASS_H +#define ENUMCLASS_H + +enum class FSMMode{ + NORMAL, + CHANGE +}; + +enum class ArmFSMStateName{ + INVALID, + PASSIVE, + JOINTCTRL, + CARTESIAN, + MOVEJ, + MOVEL, + MOVEC, + TRAJECTORY, + TOSTATE, + SAVESTATE, + TEACH, + TEACHREPEAT, + CALIBRATION, + SETTRAJ,//no longer used + BACKTOSTART, + NEXT, + LOWCMD +}; + +enum class JointMotorType{ + SINGLE_MOTOR, + DOUBLE_MOTOR +}; + +enum class Control{ + KEYBOARD, + SDK +}; + #endif // ENUMCLASS_H \ No newline at end of file diff --git a/include/common/math/Filter.h b/include/common/math/Filter.h old mode 100644 new mode 100755 index ec421da..c5bebe3 --- a/include/common/math/Filter.h +++ b/include/common/math/Filter.h @@ -1,29 +1,29 @@ -#ifndef FILTER -#define FILTER - -#include <vector> -#include <Eigen/Dense> - -/* - Low pass filter -*/ -class LPFilter{ -public: - LPFilter(double samplePeriod, double cutFrequency, size_t valueCount); - ~LPFilter(){}; - void clear(); - void addValue(double &newValue); - void addValue(std::vector<double> &vec); - - template <typename T> - void addValue(Eigen::MatrixBase<T> &eigenVec); - - // double getValue(); -private: - size_t _valueCount; - double _weight; - std::vector<double> _pastValue; - bool _start; -}; - +#ifndef FILTER +#define FILTER + +#include <vector> +#include <Eigen/Dense> + +/* + Low pass filter +*/ +class LPFilter{ +public: + LPFilter(double samplePeriod, double cutFrequency, size_t valueCount); + ~LPFilter(){}; + void clear(); + void addValue(double &newValue); + void addValue(std::vector<double> &vec); + + template <typename T> + void addValue(Eigen::MatrixBase<T> &eigenVec); + + // double getValue(); +private: + size_t _valueCount; + double _weight; + std::vector<double> _pastValue; + bool _start; +}; + #endif // FILTER \ No newline at end of file diff --git a/include/common/math/mathTypes.h b/include/common/math/mathTypes.h index b74c7d7..08ca8a6 100755 --- a/include/common/math/mathTypes.h +++ b/include/common/math/mathTypes.h @@ -1,109 +1,109 @@ -#ifndef MATHTYPES_H -#define MATHTYPES_H - -#include <eigen3/Eigen/Dense> -#include <vector> - -/************************/ -/******** Vector ********/ -/************************/ -// 2x1 Vector -using Vec2 = typename Eigen::Matrix<double, 2, 1>; - -// 3x1 Vector -using Vec3 = typename Eigen::Matrix<double, 3, 1>; - -// 4x1 Vector -using Vec4 = typename Eigen::Matrix<double, 4, 1>; - -// 6x1 Vector -using Vec6 = typename Eigen::Matrix<double, 6, 1>; - -// Quaternion -using Quat = typename Eigen::Matrix<double, 4, 1>; - -// 4x1 Integer Vector -using VecInt4 = typename Eigen::Matrix<int, 4, 1>; - -// 12x1 Vector -using Vec12 = typename Eigen::Matrix<double, 12, 1>; - -// 18x1 Vector -using Vec18 = typename Eigen::Matrix<double, 18, 1>; - -// Dynamic Length Vector -using VecX = typename Eigen::Matrix<double, Eigen::Dynamic, 1>; - -/************************/ -/******** Matrix ********/ -/************************/ -// Rotation Matrix -using RotMat = typename Eigen::Matrix<double, 3, 3>; - -// Homogenous Matrix -using HomoMat = typename Eigen::Matrix<double, 4, 4>; - -// 2x2 Matrix -using Mat2 = typename Eigen::Matrix<double, 2, 2>; - -// 3x3 Matrix -using Mat3 = typename Eigen::Matrix<double, 3, 3>; - -// 3x4 Matrix, each column is a 3x1 vector -using Vec34 = typename Eigen::Matrix<double, 3, 4>; - -// 6x6 Matrix -using Mat6 = typename Eigen::Matrix<double, 6, 6>; - -// 12x12 Matrix -using Mat12 = typename Eigen::Matrix<double, 12, 12>; - -// 3x3 Identity Matrix -#define I3 Eigen::MatrixXd::Identity(3, 3) - -// 6x6 Identity Matrix -#define I6 Eigen::MatrixXd::Identity(6, 6) - -// 12x12 Identity Matrix -#define I12 Eigen::MatrixXd::Identity(12, 12) - -// 18x18 Identity Matrix -#define I18 Eigen::MatrixXd::Identity(18, 18) - -// Dynamic Size Matrix -using MatX = typename Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>; - -/************************/ -/****** Functions *******/ -/************************/ -inline Vec34 vec12ToVec34(Vec12 vec12){ - Vec34 vec34; - for(int i(0); i < 4; ++i){ - vec34.col(i) = vec12.segment(3*i, 3); - } - return vec34; -} - -inline Vec12 vec34ToVec12(Vec34 vec34){ - Vec12 vec12; - for(int i(0); i < 4; ++i){ - vec12.segment(3*i, 3) = vec34.col(i); - } - return vec12; -} - -template<typename T> -inline VecX stdVecToEigenVec(T stdVec){ - VecX eigenVec = Eigen::VectorXd::Map(&stdVec[0], stdVec.size()); - return eigenVec; -} - -inline std::vector<double> EigenVectostdVec(VecX eigenVec){ - std::vector<double> stdVec; - for(int i(0); i<eigenVec.size();i++){ - stdVec.push_back(eigenVec(i)); - } - return stdVec; -} - +#ifndef MATHTYPES_H +#define MATHTYPES_H + +#include <eigen3/Eigen/Dense> +#include <vector> + +/************************/ +/******** Vector ********/ +/************************/ +// 2x1 Vector +using Vec2 = typename Eigen::Matrix<double, 2, 1>; + +// 3x1 Vector +using Vec3 = typename Eigen::Matrix<double, 3, 1>; + +// 4x1 Vector +using Vec4 = typename Eigen::Matrix<double, 4, 1>; + +// 6x1 Vector +using Vec6 = typename Eigen::Matrix<double, 6, 1>; + +// Quaternion +using Quat = typename Eigen::Matrix<double, 4, 1>; + +// 4x1 Integer Vector +using VecInt4 = typename Eigen::Matrix<int, 4, 1>; + +// 12x1 Vector +using Vec12 = typename Eigen::Matrix<double, 12, 1>; + +// 18x1 Vector +using Vec18 = typename Eigen::Matrix<double, 18, 1>; + +// Dynamic Length Vector +using VecX = typename Eigen::Matrix<double, Eigen::Dynamic, 1>; + +/************************/ +/******** Matrix ********/ +/************************/ +// Rotation Matrix +using RotMat = typename Eigen::Matrix<double, 3, 3>; + +// Homogenous Matrix +using HomoMat = typename Eigen::Matrix<double, 4, 4>; + +// 2x2 Matrix +using Mat2 = typename Eigen::Matrix<double, 2, 2>; + +// 3x3 Matrix +using Mat3 = typename Eigen::Matrix<double, 3, 3>; + +// 3x4 Matrix, each column is a 3x1 vector +using Vec34 = typename Eigen::Matrix<double, 3, 4>; + +// 6x6 Matrix +using Mat6 = typename Eigen::Matrix<double, 6, 6>; + +// 12x12 Matrix +using Mat12 = typename Eigen::Matrix<double, 12, 12>; + +// 3x3 Identity Matrix +#define I3 Eigen::MatrixXd::Identity(3, 3) + +// 6x6 Identity Matrix +#define I6 Eigen::MatrixXd::Identity(6, 6) + +// 12x12 Identity Matrix +#define I12 Eigen::MatrixXd::Identity(12, 12) + +// 18x18 Identity Matrix +#define I18 Eigen::MatrixXd::Identity(18, 18) + +// Dynamic Size Matrix +using MatX = typename Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>; + +/************************/ +/****** Functions *******/ +/************************/ +inline Vec34 vec12ToVec34(Vec12 vec12){ + Vec34 vec34; + for(int i(0); i < 4; ++i){ + vec34.col(i) = vec12.segment(3*i, 3); + } + return vec34; +} + +inline Vec12 vec34ToVec12(Vec34 vec34){ + Vec12 vec12; + for(int i(0); i < 4; ++i){ + vec12.segment(3*i, 3) = vec34.col(i); + } + return vec12; +} + +template<typename T> +inline VecX stdVecToEigenVec(T stdVec){ + VecX eigenVec = Eigen::VectorXd::Map(&stdVec[0], stdVec.size()); + return eigenVec; +} + +inline std::vector<double> EigenVectostdVec(VecX eigenVec){ + std::vector<double> stdVec; + for(int i(0); i<eigenVec.size();i++){ + stdVec.push_back(eigenVec(i)); + } + return stdVec; +} + #endif // MATHTYPES_H \ No newline at end of file diff --git a/include/common/utilities/CSVTool.h b/include/common/utilities/CSVTool.h index 456a182..f967d44 100755 --- a/include/common/utilities/CSVTool.h +++ b/include/common/utilities/CSVTool.h @@ -1,246 +1,246 @@ -#ifndef CSVTOOL_H -#define CSVTOOL_H - -/* - personal tool for .csv reading and modifying. - only suitable for small .csv file. - for large .csv, try <https://github.com/ben-strasser/fast-cpp-csv-parser> (read only) - */ -#include <string> -#include <vector> -#include <map> -#include <fstream> -#include <sstream> -#include <iostream> -#include <iomanip> -#include <algorithm> -#include "common/utilities/typeTrans.h" - -enum class FileType{ - READ_WRITE, - CLEAR_DUMP -}; - -class CSVLine{ -public: - // CSVLine(std::string lineTemp, std::streampos filePos); - CSVLine(std::string lineTemp); - CSVLine(std::string label, std::vector<double> values); - ~CSVLine(){} - - // void updateFilePos(std::streampos filePos){_filePos = filePos;} - void getValues(std::vector<double> &values); - void changeValue(std::vector<double> values); - void writeAtEnd(std::fstream &ioStream); - std::string getLabel(){return _label;} - -private: - // std::streampos _filePos; - std::string _label; - std::vector<double> _values; -}; - -/* -FileType::READ_WRITE : must already exist such fileName -FileType::CLEAR_DUMP : if do not exist such file, will create one -*/ -class CSVTool{ -public: - CSVTool(std::string fileName, FileType type = FileType::READ_WRITE, int precision = 6); - ~CSVTool(){_ioStream.close();} - - bool getLine(std::string label, std::vector<double> &values); - template<typename... Args> - bool getLineDirect(std::string label, Args&... values); - - void modifyLine(std::string label, std::vector<double> &values, bool addNew); - template<typename... Args> - void modifyLineDirect(std::string label, bool addNew, Args&... values); - - void readFile(); - void saveFile(); - - bool _hasFile; -private: - std::string _fileName; - std::fstream _ioStream; - int _precision; - std::string _lineTemp; - std::map<std::string, size_t> _labels; - std::vector<CSVLine*> _lines; - -}; - -/*************************/ -/* CSVLine */ -/*************************/ -// CSVLine::CSVLine(std::string lineTemp, std::streampos filePos) -// :_filePos(filePos){ - -// // std::cout << lineTemp << std::endl; -// } - -inline CSVLine::CSVLine(std::string lineTemp){ - // delete all spaces - lineTemp.erase(std::remove(lineTemp.begin(), lineTemp.end(), ' '), lineTemp.end()); - - std::stringstream ss(lineTemp); - std::string stringTemp; - - std::getline(ss, _label, ','); - - while(std::getline(ss, stringTemp, ',')){ - _values.push_back(stod(stringTemp)); - } - - // std::cout << "**********" << std::endl; - // std::cout << "_label: " << _label << std::fixed << std::setprecision(3) << std::endl; - // for(int i(0); i<_values.size(); ++i){ - // std::cout << _values.at(i) << ",,, "; - // } - // std::cout << std::endl; -} - -inline CSVLine::CSVLine(std::string label, std::vector<double> values) - :_label(label), _values(values){ - -} - -inline void CSVLine::changeValue(std::vector<double> values){ - if(values.size() != _values.size()){ - std::cout << "[WARNING] CSVLine::changeValue, the size changed" << std::endl; - } - _values = values; -} - -inline void CSVLine::getValues(std::vector<double> &values){ - values = _values; -} - -inline void CSVLine::writeAtEnd(std::fstream &ioStream){ - ioStream << _label << ", "; - - for(int i(0); i<_values.size(); ++i){ - ioStream << _values.at(i) << ", "; - } - - ioStream << std::endl; -} - - -/*************************/ -/* CSVTool */ -/*************************/ -inline CSVTool::CSVTool(std::string fileName, FileType type, int precision) - : _fileName(fileName), _precision(precision){ - - if(type == FileType::READ_WRITE){ - _ioStream.open(_fileName, std::fstream::ate | std::fstream::in | std::fstream::out); - - if(!_ioStream.is_open()){ - std::cout << "[ERROR] CSVTool open file: " << fileName << " failed!" << std::endl; - // exit(-1); - _hasFile = false; - }else{ - readFile(); - _hasFile = true; - } - - } - else if(type == FileType::CLEAR_DUMP){ - _ioStream.open(_fileName, std::fstream::out); - } - -} - -inline void CSVTool::readFile(){ - if(!_ioStream.is_open()){ - // _ioStream.open(_fileName, std::fstream::ate | std::fstream::in | std::fstream::out); - std::cout << "[ERROR] CSVTool::readFile, file: " << _fileName << " has not been opened!" << std::endl; - return; - } - - _lines.clear(); - _labels.clear(); - - _ioStream.seekg(0, std::fstream::beg); - size_t lineNum = 0; - while(_ioStream && _ioStream.tellg() != std::fstream::end && getline(_ioStream, _lineTemp)){ - _lines.push_back( new CSVLine(_lineTemp) ); - - if(_labels.count(_lines.at(lineNum)->getLabel()) == 0){ - _labels.insert(std::pair<std::string, size_t>(_lines.at(lineNum)->getLabel(), lineNum)); - ++lineNum; - }else{ - std::cout << "[ERROR] CSVTool::readFile, the label " - << _lines.at(lineNum)->getLabel() << " is repeated" << std::endl; - exit(-1); - } - } -} - -inline bool CSVTool::getLine(std::string label, std::vector<double> &values){ - if(_labels.count(label) == 0){ - std::cout << "[ERROR] No such label: " << label << std::endl; - return false; - }else{ - _lines.at(_labels[label])->getValues(values); - return true; - } -} - -template<typename... Args> -inline bool CSVTool::getLineDirect(std::string label, Args&... values){ - std::vector<double> vec; - if(getLine(label, vec)){ - typeTrans::extractVector(vec, values...); - return true; - }else{ - return false; - } -} - -template<typename... Args> -inline void CSVTool::modifyLineDirect(std::string label, bool addNew, Args&... values){ - std::vector<double> vec; - typeTrans::combineToVector(vec, values...); - -// std::cout << "CSVTool::modifyLineDirect------" << std::endl; -// std::cout << "label: " << label << std::endl; -// std::cout << "vec: "; -// for(int i(0); i<vec.size(); ++i){ -// std::cout << vec.at(i) << ", "; -// }std::cout << std::endl; - - modifyLine(label, vec, addNew); -} - - -inline void CSVTool::saveFile(){ - _ioStream.close(); - _ioStream.open(_fileName, std::fstream::out); - _ioStream << std::fixed << std::setprecision(_precision); - for(int i(0); i<_lines.size(); ++i){ - _lines.at(i)->writeAtEnd(_ioStream); - } - - _ioStream.close(); - _ioStream.open(_fileName, std::fstream::ate | std::fstream::in | std::fstream::out); -} - -inline void CSVTool::modifyLine(std::string label, std::vector<double> &values, bool addNew =false){ - if(_labels.count(label) == 0){ - if(addNew){ - _labels.insert(std::pair<std::string, size_t>(label, _labels.size())); - _lines.push_back(new CSVLine(label, values)); - }else{ - std::cout << "[ERROR] CSVTool::modifyLine, label " << label << "does not exist" << std::endl; - exit(-1); - } - }else{ - _lines.at(_labels[label])->changeValue(values); - } -} - - +#ifndef CSVTOOL_H +#define CSVTOOL_H + +/* + personal tool for .csv reading and modifying. + only suitable for small .csv file. + for large .csv, try <https://github.com/ben-strasser/fast-cpp-csv-parser> (read only) + */ +#include <string> +#include <vector> +#include <map> +#include <fstream> +#include <sstream> +#include <iostream> +#include <iomanip> +#include <algorithm> +#include "common/utilities/typeTrans.h" + +enum class FileType{ + READ_WRITE, + CLEAR_DUMP +}; + +class CSVLine{ +public: + // CSVLine(std::string lineTemp, std::streampos filePos); + CSVLine(std::string lineTemp); + CSVLine(std::string label, std::vector<double> values); + ~CSVLine(){} + + // void updateFilePos(std::streampos filePos){_filePos = filePos;} + void getValues(std::vector<double> &values); + void changeValue(std::vector<double> values); + void writeAtEnd(std::fstream &ioStream); + std::string getLabel(){return _label;} + +private: + // std::streampos _filePos; + std::string _label; + std::vector<double> _values; +}; + +/* +FileType::READ_WRITE : must already exist such fileName +FileType::CLEAR_DUMP : if do not exist such file, will create one +*/ +class CSVTool{ +public: + CSVTool(std::string fileName, FileType type = FileType::READ_WRITE, int precision = 6); + ~CSVTool(){_ioStream.close();} + + bool getLine(std::string label, std::vector<double> &values); + template<typename... Args> + bool getLineDirect(std::string label, Args&... values); + + void modifyLine(std::string label, std::vector<double> &values, bool addNew); + template<typename... Args> + void modifyLineDirect(std::string label, bool addNew, Args&... values); + + void readFile(); + void saveFile(); + + bool _hasFile; +private: + std::string _fileName; + std::fstream _ioStream; + int _precision; + std::string _lineTemp; + std::map<std::string, size_t> _labels; + std::vector<CSVLine*> _lines; + +}; + +/*************************/ +/* CSVLine */ +/*************************/ +// CSVLine::CSVLine(std::string lineTemp, std::streampos filePos) +// :_filePos(filePos){ + +// // std::cout << lineTemp << std::endl; +// } + +inline CSVLine::CSVLine(std::string lineTemp){ + // delete all spaces + lineTemp.erase(std::remove(lineTemp.begin(), lineTemp.end(), ' '), lineTemp.end()); + + std::stringstream ss(lineTemp); + std::string stringTemp; + + std::getline(ss, _label, ','); + + while(std::getline(ss, stringTemp, ',')){ + _values.push_back(stod(stringTemp)); + } + + // std::cout << "**********" << std::endl; + // std::cout << "_label: " << _label << std::fixed << std::setprecision(3) << std::endl; + // for(int i(0); i<_values.size(); ++i){ + // std::cout << _values.at(i) << ",,, "; + // } + // std::cout << std::endl; +} + +inline CSVLine::CSVLine(std::string label, std::vector<double> values) + :_label(label), _values(values){ + +} + +inline void CSVLine::changeValue(std::vector<double> values){ + if(values.size() != _values.size()){ + std::cout << "[WARNING] CSVLine::changeValue, the size changed" << std::endl; + } + _values = values; +} + +inline void CSVLine::getValues(std::vector<double> &values){ + values = _values; +} + +inline void CSVLine::writeAtEnd(std::fstream &ioStream){ + ioStream << _label << ", "; + + for(int i(0); i<_values.size(); ++i){ + ioStream << _values.at(i) << ", "; + } + + ioStream << std::endl; +} + + +/*************************/ +/* CSVTool */ +/*************************/ +inline CSVTool::CSVTool(std::string fileName, FileType type, int precision) + : _fileName(fileName), _precision(precision){ + + if(type == FileType::READ_WRITE){ + _ioStream.open(_fileName, std::fstream::ate | std::fstream::in | std::fstream::out); + + if(!_ioStream.is_open()){ + std::cout << "[ERROR] CSVTool open file: " << fileName << " failed!" << std::endl; + // exit(-1); + _hasFile = false; + }else{ + readFile(); + _hasFile = true; + } + + } + else if(type == FileType::CLEAR_DUMP){ + _ioStream.open(_fileName, std::fstream::out); + } + +} + +inline void CSVTool::readFile(){ + if(!_ioStream.is_open()){ + // _ioStream.open(_fileName, std::fstream::ate | std::fstream::in | std::fstream::out); + std::cout << "[ERROR] CSVTool::readFile, file: " << _fileName << " has not been opened!" << std::endl; + return; + } + + _lines.clear(); + _labels.clear(); + + _ioStream.seekg(0, std::fstream::beg); + size_t lineNum = 0; + while(_ioStream && _ioStream.tellg() != std::fstream::end && getline(_ioStream, _lineTemp)){ + _lines.push_back( new CSVLine(_lineTemp) ); + + if(_labels.count(_lines.at(lineNum)->getLabel()) == 0){ + _labels.insert(std::pair<std::string, size_t>(_lines.at(lineNum)->getLabel(), lineNum)); + ++lineNum; + }else{ + std::cout << "[ERROR] CSVTool::readFile, the label " + << _lines.at(lineNum)->getLabel() << " is repeated" << std::endl; + exit(-1); + } + } +} + +inline bool CSVTool::getLine(std::string label, std::vector<double> &values){ + if(_labels.count(label) == 0){ + std::cout << "[ERROR] No such label: " << label << std::endl; + return false; + }else{ + _lines.at(_labels[label])->getValues(values); + return true; + } +} + +template<typename... Args> +inline bool CSVTool::getLineDirect(std::string label, Args&... values){ + std::vector<double> vec; + if(getLine(label, vec)){ + typeTrans::extractVector(vec, values...); + return true; + }else{ + return false; + } +} + +template<typename... Args> +inline void CSVTool::modifyLineDirect(std::string label, bool addNew, Args&... values){ + std::vector<double> vec; + typeTrans::combineToVector(vec, values...); + +// std::cout << "CSVTool::modifyLineDirect------" << std::endl; +// std::cout << "label: " << label << std::endl; +// std::cout << "vec: "; +// for(int i(0); i<vec.size(); ++i){ +// std::cout << vec.at(i) << ", "; +// }std::cout << std::endl; + + modifyLine(label, vec, addNew); +} + + +inline void CSVTool::saveFile(){ + _ioStream.close(); + _ioStream.open(_fileName, std::fstream::out); + _ioStream << std::fixed << std::setprecision(_precision); + for(int i(0); i<_lines.size(); ++i){ + _lines.at(i)->writeAtEnd(_ioStream); + } + + _ioStream.close(); + _ioStream.open(_fileName, std::fstream::ate | std::fstream::in | std::fstream::out); +} + +inline void CSVTool::modifyLine(std::string label, std::vector<double> &values, bool addNew =false){ + if(_labels.count(label) == 0){ + if(addNew){ + _labels.insert(std::pair<std::string, size_t>(label, _labels.size())); + _lines.push_back(new CSVLine(label, values)); + }else{ + std::cout << "[ERROR] CSVTool::modifyLine, label " << label << "does not exist" << std::endl; + exit(-1); + } + }else{ + _lines.at(_labels[label])->changeValue(values); + } +} + + #endif // CSVTOOL_H \ No newline at end of file diff --git a/include/common/utilities/loop.h b/include/common/utilities/loop.h old mode 100644 new mode 100755 diff --git a/include/common/utilities/typeTrans.h b/include/common/utilities/typeTrans.h index 0f422e8..8096676 100755 --- a/include/common/utilities/typeTrans.h +++ b/include/common/utilities/typeTrans.h @@ -1,75 +1,75 @@ -#ifndef TYPETRANS_H -#define TYPETRANS_H - -#include <iostream> -#include <vector> -#include <Eigen/Dense> - -namespace typeTrans{ - -inline void addValue(std::vector<double> &vec, double value){ - vec.push_back(value); -} - -inline double getValue(std::vector<double> &vec, double value){ - value = vec.at(0); - std::vector<double>::iterator begin = vec.begin(); - vec.erase(begin); - - return value; -} - -inline void addValue(std::vector<double> &vec, Eigen::MatrixXd value){ - for(int i(0); i<value.rows(); ++i){ - for(int j(0); j<value.cols(); ++j){ - vec.push_back(value(i, j)); - } - } -} - -inline Eigen::MatrixXd getValue(std::vector<double> &vec, Eigen::MatrixXd value){ - std::vector<double>::iterator begin = vec.begin(); - std::vector<double>::iterator end = begin; - - for(int i(0); i<value.rows(); ++i){ - for(int j(0); j<value.cols(); ++j){ - value(i, j) = *end; - ++end; - } - } - - vec.erase(begin, end); - - return value; -} - -/* combine different type variables to vector */ -template<typename T> -inline void combineToVector(std::vector<double> &vec, T value){ - addValue(vec, value); -} - -template<typename T, typename... Args> -inline void combineToVector(std::vector<double> &vec, const T t, const Args... rest){ - combineToVector(vec, t); - - combineToVector(vec, rest...); -} - - -/* extract different type variables from vector */ -template<typename T> -inline void extractVector(std::vector<double> &vec, T &value){ - value = getValue(vec, value); -} - -template<typename T, typename... Args> -inline void extractVector(std::vector<double> &vec, T &t, Args&... rest){ - extractVector(vec, t); - - extractVector(vec, rest...); -} - -} - +#ifndef TYPETRANS_H +#define TYPETRANS_H + +#include <iostream> +#include <vector> +#include <Eigen/Dense> + +namespace typeTrans{ + +inline void addValue(std::vector<double> &vec, double value){ + vec.push_back(value); +} + +inline double getValue(std::vector<double> &vec, double value){ + value = vec.at(0); + std::vector<double>::iterator begin = vec.begin(); + vec.erase(begin); + + return value; +} + +inline void addValue(std::vector<double> &vec, Eigen::MatrixXd value){ + for(int i(0); i<value.rows(); ++i){ + for(int j(0); j<value.cols(); ++j){ + vec.push_back(value(i, j)); + } + } +} + +inline Eigen::MatrixXd getValue(std::vector<double> &vec, Eigen::MatrixXd value){ + std::vector<double>::iterator begin = vec.begin(); + std::vector<double>::iterator end = begin; + + for(int i(0); i<value.rows(); ++i){ + for(int j(0); j<value.cols(); ++j){ + value(i, j) = *end; + ++end; + } + } + + vec.erase(begin, end); + + return value; +} + +/* combine different type variables to vector */ +template<typename T> +inline void combineToVector(std::vector<double> &vec, T value){ + addValue(vec, value); +} + +template<typename T, typename... Args> +inline void combineToVector(std::vector<double> &vec, const T t, const Args... rest){ + combineToVector(vec, t); + + combineToVector(vec, rest...); +} + + +/* extract different type variables from vector */ +template<typename T> +inline void extractVector(std::vector<double> &vec, T &value){ + value = getValue(vec, value); +} + +template<typename T, typename... Args> +inline void extractVector(std::vector<double> &vec, T &t, Args&... rest){ + extractVector(vec, t); + + extractVector(vec, rest...); +} + +} + #endif // TYPETRANS_H \ No newline at end of file diff --git a/include/control/CtrlComponents.h b/include/control/CtrlComponents.h index 6b4e242..9829ba0 100755 --- a/include/control/CtrlComponents.h +++ b/include/control/CtrlComponents.h @@ -1,53 +1,53 @@ -#ifndef CTRLCOMPONENTS_H -#define CTRLCOMPONENTS_H - -#include <string> -#include <iostream> -#include "common/utilities/loop.h" -#include "message/arm_common.h" -#include "message/LowlevelCmd.h" -#include "message/LowlevelState.h" -#include "common/utilities/CSVTool.h" -#include "model/ArmModel.h" -#include "interface/IOUDP.h" -#include "interface/IOROS.h" -#include "control/armSDK.h" - -using namespace std; - -struct CtrlComponents{ -public: - CtrlComponents(int argc, char**argv); - ~CtrlComponents(); - - std::string armConfigPath; - CmdPanel *cmdPanel; - IOInterface *ioInter; - Z1Model *armModel; - CSVTool *stateCSV; - - SendCmd sendCmd; // cmd that receive from SDK - RecvState recvState;// state that send to SDK - - //config - double dt; - bool *running; - Control ctrl = Control::SDK; - bool hasGripper; - bool isCollisionOpen; - double collisionTLimit; - bool isPlot; - int trajChoose = 1; - size_t armType = 36; - - void geneObj(); - void writeData(); -private: - void configProcess(int argc, char** argv); - - std::string ctrl_IP; - uint ctrl_port; - double _loadWeight; -}; - +#ifndef CTRLCOMPONENTS_H +#define CTRLCOMPONENTS_H + +#include <string> +#include <iostream> +#include "common/utilities/loop.h" +#include "message/arm_common.h" +#include "message/LowlevelCmd.h" +#include "message/LowlevelState.h" +#include "common/utilities/CSVTool.h" +#include "model/ArmModel.h" +#include "interface/IOUDP.h" +#include "interface/IOROS.h" +#include "control/armSDK.h" + +using namespace std; + +struct CtrlComponents{ +public: + CtrlComponents(int argc, char**argv); + ~CtrlComponents(); + + std::string armConfigPath; + CmdPanel *cmdPanel; + IOInterface *ioInter; + Z1Model *armModel; + CSVTool *stateCSV; + + SendCmd sendCmd; // cmd that receive from SDK + RecvState recvState;// state that send to SDK + + //config + double dt; + bool *running; + Control ctrl = Control::SDK; + bool hasGripper; + bool isCollisionOpen; + double collisionTLimit; + bool isPlot; + int trajChoose = 1; + size_t armType = 36; + + void geneObj(); + void writeData(); +private: + void configProcess(int argc, char** argv); + + std::string ctrl_IP; + uint ctrl_port; + double _loadWeight; +}; + #endif // CTRLCOMPONENTS_H \ No newline at end of file diff --git a/include/interface/IOInterface.h b/include/interface/IOInterface.h index 9af2a71..444471d 100755 --- a/include/interface/IOInterface.h +++ b/include/interface/IOInterface.h @@ -1,28 +1,28 @@ -#ifndef IOINTERFACE_H -#define IOINTERFACE_H - -#include <string> -#include "message/LowlevelCmd.h" -#include "message/LowlevelState.h" -#include "control/keyboard.h" -#include "common/math/robotics.h" - -class IOInterface{ -public: - IOInterface(){} - ~IOInterface(){ - delete lowCmd; - delete lowState; - }; - virtual bool sendRecv(const LowlevelCmd *cmd, LowlevelState *state) = 0; - virtual bool calibration(){return false;}; - bool checkGripper(){return hasGripper;}; - LowlevelCmd *lowCmd; - LowlevelState *lowState; - virtual bool isDisconnect(){ return false;}; - bool hasErrorState; -protected: - bool hasGripper; -}; - +#ifndef IOINTERFACE_H +#define IOINTERFACE_H + +#include <string> +#include "message/LowlevelCmd.h" +#include "message/LowlevelState.h" +#include "control/keyboard.h" +#include "common/math/robotics.h" + +class IOInterface{ +public: + IOInterface(){} + ~IOInterface(){ + delete lowCmd; + delete lowState; + }; + virtual bool sendRecv(const LowlevelCmd *cmd, LowlevelState *state) = 0; + virtual bool calibration(){return false;}; + bool checkGripper(){return hasGripper;}; + LowlevelCmd *lowCmd; + LowlevelState *lowState; + virtual bool isDisconnect(){ return false;}; + bool hasErrorState; +protected: + bool hasGripper; +}; + #endif //IOINTERFACE_H \ No newline at end of file diff --git a/include/interface/IOROS.h b/include/interface/IOROS.h old mode 100755 new mode 100644 diff --git a/include/interface/IOUDP.h b/include/interface/IOUDP.h index 0b4fa05..1164ce5 100644 --- a/include/interface/IOUDP.h +++ b/include/interface/IOUDP.h @@ -1,26 +1,26 @@ -#ifndef IOUDP_H -#define IOUDP_H - -#include "interface/IOInterface.h" - -class IOUDP : public IOInterface{ -public: - IOUDP(const char* IP, uint port, size_t timeOutUs = 100000, bool showInfo = true); - ~IOUDP(); - - bool sendRecv(const LowlevelCmd *cmd, LowlevelState *state); - bool calibration(); - bool isDisconnect(){ return _ioPort->isDisConnect;} -private: - IOPort *_ioPort; - - UDPSendCmd _cmd; - UDPRecvState _state; - UDPRecvStateOld _stateOld; - size_t _motorNum; - size_t _jointNum; - uint8_t _singleState; - uint8_t _selfCheck[10]; -}; - +#ifndef IOUDP_H +#define IOUDP_H + +#include "interface/IOInterface.h" + +class IOUDP : public IOInterface{ +public: + IOUDP(const char* IP, uint port, size_t timeOutUs = 100000, bool showInfo = true); + ~IOUDP(); + + bool sendRecv(const LowlevelCmd *cmd, LowlevelState *state); + bool calibration(); + bool isDisconnect(){ return _ioPort->isDisConnect;} +private: + IOPort *_ioPort; + + UDPSendCmd _cmd; + UDPRecvState _state; + UDPRecvStateOld _stateOld; + size_t _motorNum; + size_t _jointNum; + uint8_t _singleState; + uint8_t _selfCheck[10]; +}; + #endif // IOUDP_H \ No newline at end of file diff --git a/include/message/LowlevelCmd.h b/include/message/LowlevelCmd.h index ac8ae44..24bda49 100755 --- a/include/message/LowlevelCmd.h +++ b/include/message/LowlevelCmd.h @@ -1,56 +1,56 @@ -#ifndef LOWLEVELCMD_H -#define LOWLEVELCMD_H - -#include "common/math/mathTypes.h" -#include "common/math/mathTools.h" -#include <vector> -#include <iostream> - -struct LowlevelCmd{ -public: - std::vector<double> q; - std::vector<double> dq; - std::vector<double> tau; - std::vector<double> kp; - std::vector<double> kd; - - std::vector<std::vector<double>> q_data; - std::vector<std::vector<double>> dq_data; - std::vector<std::vector<double>> tauf_data; - std::vector<std::vector<double>> tau_data; - - LowlevelCmd(); - ~LowlevelCmd(){} - - void setZeroDq(); - void setZeroTau(); - void setZeroKp(); - void setZeroKd(); - void setQ(VecX qInput); - void setQd(VecX qDInput); - void setTau(VecX tauInput); - - void setControlGain(); - void setControlGain(std::vector<float> KP, std::vector<float> KW); - void setPassive(); - - void setGripperGain(); - void setGripperGain(float KP, float KW); - void setGripperZeroGain(); - void setGripperQ(double qInput); - double getGripperQ(); - void setGripperQd(double qdInput); - double getGripperQd(); - void setGripperTau(double tauInput); - double getGripperTau(); - - Vec6 getQ(); - Vec6 getQd(); - - void resizeGripper(); -private: - size_t _dof = 6; -}; - - -#endif //LOWLEVELCMD_H +#ifndef LOWLEVELCMD_H +#define LOWLEVELCMD_H + +#include "common/math/mathTypes.h" +#include "common/math/mathTools.h" +#include <vector> +#include <iostream> + +struct LowlevelCmd{ +public: + std::vector<double> q; + std::vector<double> dq; + std::vector<double> tau; + std::vector<double> kp; + std::vector<double> kd; + + std::vector<std::vector<double>> q_data; + std::vector<std::vector<double>> dq_data; + std::vector<std::vector<double>> tauf_data; + std::vector<std::vector<double>> tau_data; + + LowlevelCmd(); + ~LowlevelCmd(){} + + void setZeroDq(); + void setZeroTau(); + void setZeroKp(); + void setZeroKd(); + void setQ(VecX qInput); + void setQd(VecX qDInput); + void setTau(VecX tauInput); + + void setControlGain(); + void setControlGain(std::vector<float> KP, std::vector<float> KW); + void setPassive(); + + void setGripperGain(); + void setGripperGain(float KP, float KW); + void setGripperZeroGain(); + void setGripperQ(double qInput); + double getGripperQ(); + void setGripperQd(double qdInput); + double getGripperQd(); + void setGripperTau(double tauInput); + double getGripperTau(); + + Vec6 getQ(); + Vec6 getQd(); + + void resizeGripper(); +private: + size_t _dof = 6; +}; + + +#endif //LOWLEVELCMD_H diff --git a/include/message/LowlevelState.h b/include/message/LowlevelState.h index 5a60dfd..935a47d 100755 --- a/include/message/LowlevelState.h +++ b/include/message/LowlevelState.h @@ -1,61 +1,61 @@ -#ifndef LOWLEVELSTATE_HPP -#define LOWLEVELSTATE_HPP - -#include <iostream> -#include <vector> -#include "common/math/mathTools.h" -#include "common/enumClass.h" -#include "common/math/Filter.h" - -struct LowlevelState{ -public: - LowlevelState(double dt); - ~LowlevelState(); - - std::vector<double> q; - std::vector<double> dq; - std::vector<double> ddq; - std::vector<double> tau; - - std::vector<std::vector<double>> q_data; - std::vector<std::vector<double>> dq_data; - std::vector<std::vector<double>> ddq_data; - std::vector<std::vector<double>> tau_data; - - std::vector<int> temperature; - std::vector<uint8_t> errorstate; - std::vector<uint8_t> isMotorConnected; - - std::vector<double> qFiltered; - std::vector<double> dqFiltered; - std::vector<double> ddqFiltered; - std::vector<double> tauFiltered; - - LPFilter *qFilter; - LPFilter *dqFilter; - LPFilter *ddqFilter; - LPFilter *tauFilter; - - void resizeGripper(double dt); - void runFilter(); - bool checkError(); - Vec6 getQ(); - Vec6 getQd(); - Vec6 getQdd(); - Vec6 getTau(); - Vec6 getQFiltered(); - Vec6 getQdFiltered(); - Vec6 getQddFiltered(); - Vec6 getTauFiltered(); - double getGripperQ(); - double getGripperQd(); - double getGripperTau(); - double getGripperTauFiltered(); -private: - size_t _dof = 6; - int temporatureLimit = 80.0;// centigrade - std::vector<int> _isMotorConnectedCnt; - std::vector<bool> _isMotorLostConnection; -}; - -#endif //LOWLEVELSTATE_HPP +#ifndef LOWLEVELSTATE_HPP +#define LOWLEVELSTATE_HPP + +#include <iostream> +#include <vector> +#include "common/math/mathTools.h" +#include "common/enumClass.h" +#include "common/math/Filter.h" + +struct LowlevelState{ +public: + LowlevelState(double dt); + ~LowlevelState(); + + std::vector<double> q; + std::vector<double> dq; + std::vector<double> ddq; + std::vector<double> tau; + + std::vector<std::vector<double>> q_data; + std::vector<std::vector<double>> dq_data; + std::vector<std::vector<double>> ddq_data; + std::vector<std::vector<double>> tau_data; + + std::vector<int> temperature; + std::vector<uint8_t> errorstate; + std::vector<uint8_t> isMotorConnected; + + std::vector<double> qFiltered; + std::vector<double> dqFiltered; + std::vector<double> ddqFiltered; + std::vector<double> tauFiltered; + + LPFilter *qFilter; + LPFilter *dqFilter; + LPFilter *ddqFilter; + LPFilter *tauFilter; + + void resizeGripper(double dt); + void runFilter(); + bool checkError(); + Vec6 getQ(); + Vec6 getQd(); + Vec6 getQdd(); + Vec6 getTau(); + Vec6 getQFiltered(); + Vec6 getQdFiltered(); + Vec6 getQddFiltered(); + Vec6 getTauFiltered(); + double getGripperQ(); + double getGripperQd(); + double getGripperTau(); + double getGripperTauFiltered(); +private: + size_t _dof = 6; + int temporatureLimit = 80.0;// centigrade + std::vector<int> _isMotorConnectedCnt; + std::vector<bool> _isMotorLostConnection; +}; + +#endif //LOWLEVELSTATE_HPP diff --git a/include/message/MotorCmd.h b/include/message/MotorCmd.h index 9efff2d..b5d90c9 100644 --- a/include/message/MotorCmd.h +++ b/include/message/MotorCmd.h @@ -1,261 +1,261 @@ -// Generated by gencpp from file unitree_legged_msgs/MotorCmd.msg -// DO NOT EDIT! - - -#ifndef UNITREE_LEGGED_MSGS_MESSAGE_MOTORCMD_H -#define UNITREE_LEGGED_MSGS_MESSAGE_MOTORCMD_H - - -#include <string> -#include <vector> -#include <map> - -#include <ros/types.h> -#include <ros/serialization.h> -#include <ros/builtin_message_traits.h> -#include <ros/message_operations.h> - - -namespace unitree_legged_msgs -{ -template <class ContainerAllocator> -struct MotorCmd_ -{ - typedef MotorCmd_<ContainerAllocator> Type; - - MotorCmd_() - : mode(0) - , q(0.0) - , dq(0.0) - , tau(0.0) - , Kp(0.0) - , Kd(0.0) - , reserve() { - reserve.assign(0); - } - MotorCmd_(const ContainerAllocator& _alloc) - : mode(0) - , q(0.0) - , dq(0.0) - , tau(0.0) - , Kp(0.0) - , Kd(0.0) - , reserve() { - (void)_alloc; - reserve.assign(0); - } - - - - typedef uint8_t _mode_type; - _mode_type mode; - - typedef float _q_type; - _q_type q; - - typedef float _dq_type; - _dq_type dq; - - typedef float _tau_type; - _tau_type tau; - - typedef float _Kp_type; - _Kp_type Kp; - - typedef float _Kd_type; - _Kd_type Kd; - - typedef boost::array<uint32_t, 3> _reserve_type; - _reserve_type reserve; - - - - - - typedef boost::shared_ptr< ::unitree_legged_msgs::MotorCmd_<ContainerAllocator> > Ptr; - typedef boost::shared_ptr< ::unitree_legged_msgs::MotorCmd_<ContainerAllocator> const> ConstPtr; - -}; // struct MotorCmd_ - -typedef ::unitree_legged_msgs::MotorCmd_<std::allocator<void> > MotorCmd; - -typedef boost::shared_ptr< ::unitree_legged_msgs::MotorCmd > MotorCmdPtr; -typedef boost::shared_ptr< ::unitree_legged_msgs::MotorCmd const> MotorCmdConstPtr; - -// constants requiring out of line definition - - - -template<typename ContainerAllocator> -std::ostream& operator<<(std::ostream& s, const ::unitree_legged_msgs::MotorCmd_<ContainerAllocator> & v) -{ -ros::message_operations::Printer< ::unitree_legged_msgs::MotorCmd_<ContainerAllocator> >::stream(s, "", v); -return s; -} - - -template<typename ContainerAllocator1, typename ContainerAllocator2> -bool operator==(const ::unitree_legged_msgs::MotorCmd_<ContainerAllocator1> & lhs, const ::unitree_legged_msgs::MotorCmd_<ContainerAllocator2> & rhs) -{ - return lhs.mode == rhs.mode && - lhs.q == rhs.q && - lhs.dq == rhs.dq && - lhs.tau == rhs.tau && - lhs.Kp == rhs.Kp && - lhs.Kd == rhs.Kd && - lhs.reserve == rhs.reserve; -} - -template<typename ContainerAllocator1, typename ContainerAllocator2> -bool operator!=(const ::unitree_legged_msgs::MotorCmd_<ContainerAllocator1> & lhs, const ::unitree_legged_msgs::MotorCmd_<ContainerAllocator2> & rhs) -{ - return !(lhs == rhs); -} - - -} // namespace unitree_legged_msgs - -namespace ros -{ -namespace message_traits -{ - - - - - -template <class ContainerAllocator> -struct IsFixedSize< ::unitree_legged_msgs::MotorCmd_<ContainerAllocator> > - : TrueType - { }; - -template <class ContainerAllocator> -struct IsFixedSize< ::unitree_legged_msgs::MotorCmd_<ContainerAllocator> const> - : TrueType - { }; - -template <class ContainerAllocator> -struct IsMessage< ::unitree_legged_msgs::MotorCmd_<ContainerAllocator> > - : TrueType - { }; - -template <class ContainerAllocator> -struct IsMessage< ::unitree_legged_msgs::MotorCmd_<ContainerAllocator> const> - : TrueType - { }; - -template <class ContainerAllocator> -struct HasHeader< ::unitree_legged_msgs::MotorCmd_<ContainerAllocator> > - : FalseType - { }; - -template <class ContainerAllocator> -struct HasHeader< ::unitree_legged_msgs::MotorCmd_<ContainerAllocator> const> - : FalseType - { }; - - -template<class ContainerAllocator> -struct MD5Sum< ::unitree_legged_msgs::MotorCmd_<ContainerAllocator> > -{ - static const char* value() - { - return "bbb3b7d91319c3a1b99055f0149ba221"; - } - - static const char* value(const ::unitree_legged_msgs::MotorCmd_<ContainerAllocator>&) { return value(); } - static const uint64_t static_value1 = 0xbbb3b7d91319c3a1ULL; - static const uint64_t static_value2 = 0xb99055f0149ba221ULL; -}; - -template<class ContainerAllocator> -struct DataType< ::unitree_legged_msgs::MotorCmd_<ContainerAllocator> > -{ - static const char* value() - { - return "unitree_legged_msgs/MotorCmd"; - } - - static const char* value(const ::unitree_legged_msgs::MotorCmd_<ContainerAllocator>&) { return value(); } -}; - -template<class ContainerAllocator> -struct Definition< ::unitree_legged_msgs::MotorCmd_<ContainerAllocator> > -{ - static const char* value() - { - return "uint8 mode # motor target mode\n" -"float32 q # motor target position\n" -"float32 dq # motor target velocity\n" -"float32 tau # motor target torque\n" -"float32 Kp # motor spring stiffness coefficient\n" -"float32 Kd # motor damper coefficient\n" -"uint32[3] reserve # motor target torque\n" -; - } - - static const char* value(const ::unitree_legged_msgs::MotorCmd_<ContainerAllocator>&) { return value(); } -}; - -} // namespace message_traits -} // namespace ros - -namespace ros -{ -namespace serialization -{ - - template<class ContainerAllocator> struct Serializer< ::unitree_legged_msgs::MotorCmd_<ContainerAllocator> > - { - template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m) - { - stream.next(m.mode); - stream.next(m.q); - stream.next(m.dq); - stream.next(m.tau); - stream.next(m.Kp); - stream.next(m.Kd); - stream.next(m.reserve); - } - - ROS_DECLARE_ALLINONE_SERIALIZER - }; // struct MotorCmd_ - -} // namespace serialization -} // namespace ros - -namespace ros -{ -namespace message_operations -{ - -template<class ContainerAllocator> -struct Printer< ::unitree_legged_msgs::MotorCmd_<ContainerAllocator> > -{ - template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::unitree_legged_msgs::MotorCmd_<ContainerAllocator>& v) - { - s << indent << "mode: "; - Printer<uint8_t>::stream(s, indent + " ", v.mode); - s << indent << "q: "; - Printer<float>::stream(s, indent + " ", v.q); - s << indent << "dq: "; - Printer<float>::stream(s, indent + " ", v.dq); - s << indent << "tau: "; - Printer<float>::stream(s, indent + " ", v.tau); - s << indent << "Kp: "; - Printer<float>::stream(s, indent + " ", v.Kp); - s << indent << "Kd: "; - Printer<float>::stream(s, indent + " ", v.Kd); - s << indent << "reserve[]" << std::endl; - for (size_t i = 0; i < v.reserve.size(); ++i) - { - s << indent << " reserve[" << i << "]: "; - Printer<uint32_t>::stream(s, indent + " ", v.reserve[i]); - } - } -}; - -} // namespace message_operations -} // namespace ros - -#endif // UNITREE_LEGGED_MSGS_MESSAGE_MOTORCMD_H +// Generated by gencpp from file unitree_legged_msgs/MotorCmd.msg +// DO NOT EDIT! + + +#ifndef UNITREE_LEGGED_MSGS_MESSAGE_MOTORCMD_H +#define UNITREE_LEGGED_MSGS_MESSAGE_MOTORCMD_H + + +#include <string> +#include <vector> +#include <map> + +#include <ros/types.h> +#include <ros/serialization.h> +#include <ros/builtin_message_traits.h> +#include <ros/message_operations.h> + + +namespace unitree_legged_msgs +{ +template <class ContainerAllocator> +struct MotorCmd_ +{ + typedef MotorCmd_<ContainerAllocator> Type; + + MotorCmd_() + : mode(0) + , q(0.0) + , dq(0.0) + , tau(0.0) + , Kp(0.0) + , Kd(0.0) + , reserve() { + reserve.assign(0); + } + MotorCmd_(const ContainerAllocator& _alloc) + : mode(0) + , q(0.0) + , dq(0.0) + , tau(0.0) + , Kp(0.0) + , Kd(0.0) + , reserve() { + (void)_alloc; + reserve.assign(0); + } + + + + typedef uint8_t _mode_type; + _mode_type mode; + + typedef float _q_type; + _q_type q; + + typedef float _dq_type; + _dq_type dq; + + typedef float _tau_type; + _tau_type tau; + + typedef float _Kp_type; + _Kp_type Kp; + + typedef float _Kd_type; + _Kd_type Kd; + + typedef boost::array<uint32_t, 3> _reserve_type; + _reserve_type reserve; + + + + + + typedef boost::shared_ptr< ::unitree_legged_msgs::MotorCmd_<ContainerAllocator> > Ptr; + typedef boost::shared_ptr< ::unitree_legged_msgs::MotorCmd_<ContainerAllocator> const> ConstPtr; + +}; // struct MotorCmd_ + +typedef ::unitree_legged_msgs::MotorCmd_<std::allocator<void> > MotorCmd; + +typedef boost::shared_ptr< ::unitree_legged_msgs::MotorCmd > MotorCmdPtr; +typedef boost::shared_ptr< ::unitree_legged_msgs::MotorCmd const> MotorCmdConstPtr; + +// constants requiring out of line definition + + + +template<typename ContainerAllocator> +std::ostream& operator<<(std::ostream& s, const ::unitree_legged_msgs::MotorCmd_<ContainerAllocator> & v) +{ +ros::message_operations::Printer< ::unitree_legged_msgs::MotorCmd_<ContainerAllocator> >::stream(s, "", v); +return s; +} + + +template<typename ContainerAllocator1, typename ContainerAllocator2> +bool operator==(const ::unitree_legged_msgs::MotorCmd_<ContainerAllocator1> & lhs, const ::unitree_legged_msgs::MotorCmd_<ContainerAllocator2> & rhs) +{ + return lhs.mode == rhs.mode && + lhs.q == rhs.q && + lhs.dq == rhs.dq && + lhs.tau == rhs.tau && + lhs.Kp == rhs.Kp && + lhs.Kd == rhs.Kd && + lhs.reserve == rhs.reserve; +} + +template<typename ContainerAllocator1, typename ContainerAllocator2> +bool operator!=(const ::unitree_legged_msgs::MotorCmd_<ContainerAllocator1> & lhs, const ::unitree_legged_msgs::MotorCmd_<ContainerAllocator2> & rhs) +{ + return !(lhs == rhs); +} + + +} // namespace unitree_legged_msgs + +namespace ros +{ +namespace message_traits +{ + + + + + +template <class ContainerAllocator> +struct IsFixedSize< ::unitree_legged_msgs::MotorCmd_<ContainerAllocator> > + : TrueType + { }; + +template <class ContainerAllocator> +struct IsFixedSize< ::unitree_legged_msgs::MotorCmd_<ContainerAllocator> const> + : TrueType + { }; + +template <class ContainerAllocator> +struct IsMessage< ::unitree_legged_msgs::MotorCmd_<ContainerAllocator> > + : TrueType + { }; + +template <class ContainerAllocator> +struct IsMessage< ::unitree_legged_msgs::MotorCmd_<ContainerAllocator> const> + : TrueType + { }; + +template <class ContainerAllocator> +struct HasHeader< ::unitree_legged_msgs::MotorCmd_<ContainerAllocator> > + : FalseType + { }; + +template <class ContainerAllocator> +struct HasHeader< ::unitree_legged_msgs::MotorCmd_<ContainerAllocator> const> + : FalseType + { }; + + +template<class ContainerAllocator> +struct MD5Sum< ::unitree_legged_msgs::MotorCmd_<ContainerAllocator> > +{ + static const char* value() + { + return "bbb3b7d91319c3a1b99055f0149ba221"; + } + + static const char* value(const ::unitree_legged_msgs::MotorCmd_<ContainerAllocator>&) { return value(); } + static const uint64_t static_value1 = 0xbbb3b7d91319c3a1ULL; + static const uint64_t static_value2 = 0xb99055f0149ba221ULL; +}; + +template<class ContainerAllocator> +struct DataType< ::unitree_legged_msgs::MotorCmd_<ContainerAllocator> > +{ + static const char* value() + { + return "unitree_legged_msgs/MotorCmd"; + } + + static const char* value(const ::unitree_legged_msgs::MotorCmd_<ContainerAllocator>&) { return value(); } +}; + +template<class ContainerAllocator> +struct Definition< ::unitree_legged_msgs::MotorCmd_<ContainerAllocator> > +{ + static const char* value() + { + return "uint8 mode # motor target mode\n" +"float32 q # motor target position\n" +"float32 dq # motor target velocity\n" +"float32 tau # motor target torque\n" +"float32 Kp # motor spring stiffness coefficient\n" +"float32 Kd # motor damper coefficient\n" +"uint32[3] reserve # motor target torque\n" +; + } + + static const char* value(const ::unitree_legged_msgs::MotorCmd_<ContainerAllocator>&) { return value(); } +}; + +} // namespace message_traits +} // namespace ros + +namespace ros +{ +namespace serialization +{ + + template<class ContainerAllocator> struct Serializer< ::unitree_legged_msgs::MotorCmd_<ContainerAllocator> > + { + template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m) + { + stream.next(m.mode); + stream.next(m.q); + stream.next(m.dq); + stream.next(m.tau); + stream.next(m.Kp); + stream.next(m.Kd); + stream.next(m.reserve); + } + + ROS_DECLARE_ALLINONE_SERIALIZER + }; // struct MotorCmd_ + +} // namespace serialization +} // namespace ros + +namespace ros +{ +namespace message_operations +{ + +template<class ContainerAllocator> +struct Printer< ::unitree_legged_msgs::MotorCmd_<ContainerAllocator> > +{ + template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::unitree_legged_msgs::MotorCmd_<ContainerAllocator>& v) + { + s << indent << "mode: "; + Printer<uint8_t>::stream(s, indent + " ", v.mode); + s << indent << "q: "; + Printer<float>::stream(s, indent + " ", v.q); + s << indent << "dq: "; + Printer<float>::stream(s, indent + " ", v.dq); + s << indent << "tau: "; + Printer<float>::stream(s, indent + " ", v.tau); + s << indent << "Kp: "; + Printer<float>::stream(s, indent + " ", v.Kp); + s << indent << "Kd: "; + Printer<float>::stream(s, indent + " ", v.Kd); + s << indent << "reserve[]" << std::endl; + for (size_t i = 0; i < v.reserve.size(); ++i) + { + s << indent << " reserve[" << i << "]: "; + Printer<uint32_t>::stream(s, indent + " ", v.reserve[i]); + } + } +}; + +} // namespace message_operations +} // namespace ros + +#endif // UNITREE_LEGGED_MSGS_MESSAGE_MOTORCMD_H diff --git a/include/message/MotorState.h b/include/message/MotorState.h index e7183e0..8dcfd42 100644 --- a/include/message/MotorState.h +++ b/include/message/MotorState.h @@ -1,291 +1,291 @@ -// Generated by gencpp from file unitree_legged_msgs/MotorState.msg -// DO NOT EDIT! - - -#ifndef UNITREE_LEGGED_MSGS_MESSAGE_MOTORSTATE_H -#define UNITREE_LEGGED_MSGS_MESSAGE_MOTORSTATE_H - - -#include <string> -#include <vector> -#include <map> - -#include <ros/types.h> -#include <ros/serialization.h> -#include <ros/builtin_message_traits.h> -#include <ros/message_operations.h> - - -namespace unitree_legged_msgs -{ -template <class ContainerAllocator> -struct MotorState_ -{ - typedef MotorState_<ContainerAllocator> Type; - - MotorState_() - : mode(0) - , q(0.0) - , dq(0.0) - , ddq(0.0) - , tauEst(0.0) - , q_raw(0.0) - , dq_raw(0.0) - , ddq_raw(0.0) - , temperature(0) - , reserve() { - reserve.assign(0); - } - MotorState_(const ContainerAllocator& _alloc) - : mode(0) - , q(0.0) - , dq(0.0) - , ddq(0.0) - , tauEst(0.0) - , q_raw(0.0) - , dq_raw(0.0) - , ddq_raw(0.0) - , temperature(0) - , reserve() { - (void)_alloc; - reserve.assign(0); - } - - - - typedef uint8_t _mode_type; - _mode_type mode; - - typedef float _q_type; - _q_type q; - - typedef float _dq_type; - _dq_type dq; - - typedef float _ddq_type; - _ddq_type ddq; - - typedef float _tauEst_type; - _tauEst_type tauEst; - - typedef float _q_raw_type; - _q_raw_type q_raw; - - typedef float _dq_raw_type; - _dq_raw_type dq_raw; - - typedef float _ddq_raw_type; - _ddq_raw_type ddq_raw; - - typedef int8_t _temperature_type; - _temperature_type temperature; - - typedef boost::array<uint32_t, 2> _reserve_type; - _reserve_type reserve; - - - - - - typedef boost::shared_ptr< ::unitree_legged_msgs::MotorState_<ContainerAllocator> > Ptr; - typedef boost::shared_ptr< ::unitree_legged_msgs::MotorState_<ContainerAllocator> const> ConstPtr; - -}; // struct MotorState_ - -typedef ::unitree_legged_msgs::MotorState_<std::allocator<void> > MotorState; - -typedef boost::shared_ptr< ::unitree_legged_msgs::MotorState > MotorStatePtr; -typedef boost::shared_ptr< ::unitree_legged_msgs::MotorState const> MotorStateConstPtr; - -// constants requiring out of line definition - - - -template<typename ContainerAllocator> -std::ostream& operator<<(std::ostream& s, const ::unitree_legged_msgs::MotorState_<ContainerAllocator> & v) -{ -ros::message_operations::Printer< ::unitree_legged_msgs::MotorState_<ContainerAllocator> >::stream(s, "", v); -return s; -} - - -template<typename ContainerAllocator1, typename ContainerAllocator2> -bool operator==(const ::unitree_legged_msgs::MotorState_<ContainerAllocator1> & lhs, const ::unitree_legged_msgs::MotorState_<ContainerAllocator2> & rhs) -{ - return lhs.mode == rhs.mode && - lhs.q == rhs.q && - lhs.dq == rhs.dq && - lhs.ddq == rhs.ddq && - lhs.tauEst == rhs.tauEst && - lhs.q_raw == rhs.q_raw && - lhs.dq_raw == rhs.dq_raw && - lhs.ddq_raw == rhs.ddq_raw && - lhs.temperature == rhs.temperature && - lhs.reserve == rhs.reserve; -} - -template<typename ContainerAllocator1, typename ContainerAllocator2> -bool operator!=(const ::unitree_legged_msgs::MotorState_<ContainerAllocator1> & lhs, const ::unitree_legged_msgs::MotorState_<ContainerAllocator2> & rhs) -{ - return !(lhs == rhs); -} - - -} // namespace unitree_legged_msgs - -namespace ros -{ -namespace message_traits -{ - - - - - -template <class ContainerAllocator> -struct IsFixedSize< ::unitree_legged_msgs::MotorState_<ContainerAllocator> > - : TrueType - { }; - -template <class ContainerAllocator> -struct IsFixedSize< ::unitree_legged_msgs::MotorState_<ContainerAllocator> const> - : TrueType - { }; - -template <class ContainerAllocator> -struct IsMessage< ::unitree_legged_msgs::MotorState_<ContainerAllocator> > - : TrueType - { }; - -template <class ContainerAllocator> -struct IsMessage< ::unitree_legged_msgs::MotorState_<ContainerAllocator> const> - : TrueType - { }; - -template <class ContainerAllocator> -struct HasHeader< ::unitree_legged_msgs::MotorState_<ContainerAllocator> > - : FalseType - { }; - -template <class ContainerAllocator> -struct HasHeader< ::unitree_legged_msgs::MotorState_<ContainerAllocator> const> - : FalseType - { }; - - -template<class ContainerAllocator> -struct MD5Sum< ::unitree_legged_msgs::MotorState_<ContainerAllocator> > -{ - static const char* value() - { - return "94c55ee3b7852be2bd437b20ce12a254"; - } - - static const char* value(const ::unitree_legged_msgs::MotorState_<ContainerAllocator>&) { return value(); } - static const uint64_t static_value1 = 0x94c55ee3b7852be2ULL; - static const uint64_t static_value2 = 0xbd437b20ce12a254ULL; -}; - -template<class ContainerAllocator> -struct DataType< ::unitree_legged_msgs::MotorState_<ContainerAllocator> > -{ - static const char* value() - { - return "unitree_legged_msgs/MotorState"; - } - - static const char* value(const ::unitree_legged_msgs::MotorState_<ContainerAllocator>&) { return value(); } -}; - -template<class ContainerAllocator> -struct Definition< ::unitree_legged_msgs::MotorState_<ContainerAllocator> > -{ - static const char* value() - { - return "uint8 mode # motor current mode \n" -"float32 q # motor current position(rad)\n" -"float32 dq # motor current speed(rad/s)\n" -"float32 ddq # motor current speed(rad/s)\n" -"float32 tauEst # current estimated output torque(N*m)\n" -"float32 q_raw # motor current position(rad)\n" -"float32 dq_raw # motor current speed(rad/s)\n" -"float32 ddq_raw # motor current speed(rad/s)\n" -"int8 temperature # motor temperature(slow conduction of temperature leads to lag)\n" -"uint32[2] reserve\n" -; - } - - static const char* value(const ::unitree_legged_msgs::MotorState_<ContainerAllocator>&) { return value(); } -}; - -} // namespace message_traits -} // namespace ros - -namespace ros -{ -namespace serialization -{ - - template<class ContainerAllocator> struct Serializer< ::unitree_legged_msgs::MotorState_<ContainerAllocator> > - { - template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m) - { - stream.next(m.mode); - stream.next(m.q); - stream.next(m.dq); - stream.next(m.ddq); - stream.next(m.tauEst); - stream.next(m.q_raw); - stream.next(m.dq_raw); - stream.next(m.ddq_raw); - stream.next(m.temperature); - stream.next(m.reserve); - } - - ROS_DECLARE_ALLINONE_SERIALIZER - }; // struct MotorState_ - -} // namespace serialization -} // namespace ros - -namespace ros -{ -namespace message_operations -{ - -template<class ContainerAllocator> -struct Printer< ::unitree_legged_msgs::MotorState_<ContainerAllocator> > -{ - template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::unitree_legged_msgs::MotorState_<ContainerAllocator>& v) - { - s << indent << "mode: "; - Printer<uint8_t>::stream(s, indent + " ", v.mode); - s << indent << "q: "; - Printer<float>::stream(s, indent + " ", v.q); - s << indent << "dq: "; - Printer<float>::stream(s, indent + " ", v.dq); - s << indent << "ddq: "; - Printer<float>::stream(s, indent + " ", v.ddq); - s << indent << "tauEst: "; - Printer<float>::stream(s, indent + " ", v.tauEst); - s << indent << "q_raw: "; - Printer<float>::stream(s, indent + " ", v.q_raw); - s << indent << "dq_raw: "; - Printer<float>::stream(s, indent + " ", v.dq_raw); - s << indent << "ddq_raw: "; - Printer<float>::stream(s, indent + " ", v.ddq_raw); - s << indent << "temperature: "; - Printer<int8_t>::stream(s, indent + " ", v.temperature); - s << indent << "reserve[]" << std::endl; - for (size_t i = 0; i < v.reserve.size(); ++i) - { - s << indent << " reserve[" << i << "]: "; - Printer<uint32_t>::stream(s, indent + " ", v.reserve[i]); - } - } -}; - -} // namespace message_operations -} // namespace ros - -#endif // UNITREE_LEGGED_MSGS_MESSAGE_MOTORSTATE_H +// Generated by gencpp from file unitree_legged_msgs/MotorState.msg +// DO NOT EDIT! + + +#ifndef UNITREE_LEGGED_MSGS_MESSAGE_MOTORSTATE_H +#define UNITREE_LEGGED_MSGS_MESSAGE_MOTORSTATE_H + + +#include <string> +#include <vector> +#include <map> + +#include <ros/types.h> +#include <ros/serialization.h> +#include <ros/builtin_message_traits.h> +#include <ros/message_operations.h> + + +namespace unitree_legged_msgs +{ +template <class ContainerAllocator> +struct MotorState_ +{ + typedef MotorState_<ContainerAllocator> Type; + + MotorState_() + : mode(0) + , q(0.0) + , dq(0.0) + , ddq(0.0) + , tauEst(0.0) + , q_raw(0.0) + , dq_raw(0.0) + , ddq_raw(0.0) + , temperature(0) + , reserve() { + reserve.assign(0); + } + MotorState_(const ContainerAllocator& _alloc) + : mode(0) + , q(0.0) + , dq(0.0) + , ddq(0.0) + , tauEst(0.0) + , q_raw(0.0) + , dq_raw(0.0) + , ddq_raw(0.0) + , temperature(0) + , reserve() { + (void)_alloc; + reserve.assign(0); + } + + + + typedef uint8_t _mode_type; + _mode_type mode; + + typedef float _q_type; + _q_type q; + + typedef float _dq_type; + _dq_type dq; + + typedef float _ddq_type; + _ddq_type ddq; + + typedef float _tauEst_type; + _tauEst_type tauEst; + + typedef float _q_raw_type; + _q_raw_type q_raw; + + typedef float _dq_raw_type; + _dq_raw_type dq_raw; + + typedef float _ddq_raw_type; + _ddq_raw_type ddq_raw; + + typedef int8_t _temperature_type; + _temperature_type temperature; + + typedef boost::array<uint32_t, 2> _reserve_type; + _reserve_type reserve; + + + + + + typedef boost::shared_ptr< ::unitree_legged_msgs::MotorState_<ContainerAllocator> > Ptr; + typedef boost::shared_ptr< ::unitree_legged_msgs::MotorState_<ContainerAllocator> const> ConstPtr; + +}; // struct MotorState_ + +typedef ::unitree_legged_msgs::MotorState_<std::allocator<void> > MotorState; + +typedef boost::shared_ptr< ::unitree_legged_msgs::MotorState > MotorStatePtr; +typedef boost::shared_ptr< ::unitree_legged_msgs::MotorState const> MotorStateConstPtr; + +// constants requiring out of line definition + + + +template<typename ContainerAllocator> +std::ostream& operator<<(std::ostream& s, const ::unitree_legged_msgs::MotorState_<ContainerAllocator> & v) +{ +ros::message_operations::Printer< ::unitree_legged_msgs::MotorState_<ContainerAllocator> >::stream(s, "", v); +return s; +} + + +template<typename ContainerAllocator1, typename ContainerAllocator2> +bool operator==(const ::unitree_legged_msgs::MotorState_<ContainerAllocator1> & lhs, const ::unitree_legged_msgs::MotorState_<ContainerAllocator2> & rhs) +{ + return lhs.mode == rhs.mode && + lhs.q == rhs.q && + lhs.dq == rhs.dq && + lhs.ddq == rhs.ddq && + lhs.tauEst == rhs.tauEst && + lhs.q_raw == rhs.q_raw && + lhs.dq_raw == rhs.dq_raw && + lhs.ddq_raw == rhs.ddq_raw && + lhs.temperature == rhs.temperature && + lhs.reserve == rhs.reserve; +} + +template<typename ContainerAllocator1, typename ContainerAllocator2> +bool operator!=(const ::unitree_legged_msgs::MotorState_<ContainerAllocator1> & lhs, const ::unitree_legged_msgs::MotorState_<ContainerAllocator2> & rhs) +{ + return !(lhs == rhs); +} + + +} // namespace unitree_legged_msgs + +namespace ros +{ +namespace message_traits +{ + + + + + +template <class ContainerAllocator> +struct IsFixedSize< ::unitree_legged_msgs::MotorState_<ContainerAllocator> > + : TrueType + { }; + +template <class ContainerAllocator> +struct IsFixedSize< ::unitree_legged_msgs::MotorState_<ContainerAllocator> const> + : TrueType + { }; + +template <class ContainerAllocator> +struct IsMessage< ::unitree_legged_msgs::MotorState_<ContainerAllocator> > + : TrueType + { }; + +template <class ContainerAllocator> +struct IsMessage< ::unitree_legged_msgs::MotorState_<ContainerAllocator> const> + : TrueType + { }; + +template <class ContainerAllocator> +struct HasHeader< ::unitree_legged_msgs::MotorState_<ContainerAllocator> > + : FalseType + { }; + +template <class ContainerAllocator> +struct HasHeader< ::unitree_legged_msgs::MotorState_<ContainerAllocator> const> + : FalseType + { }; + + +template<class ContainerAllocator> +struct MD5Sum< ::unitree_legged_msgs::MotorState_<ContainerAllocator> > +{ + static const char* value() + { + return "94c55ee3b7852be2bd437b20ce12a254"; + } + + static const char* value(const ::unitree_legged_msgs::MotorState_<ContainerAllocator>&) { return value(); } + static const uint64_t static_value1 = 0x94c55ee3b7852be2ULL; + static const uint64_t static_value2 = 0xbd437b20ce12a254ULL; +}; + +template<class ContainerAllocator> +struct DataType< ::unitree_legged_msgs::MotorState_<ContainerAllocator> > +{ + static const char* value() + { + return "unitree_legged_msgs/MotorState"; + } + + static const char* value(const ::unitree_legged_msgs::MotorState_<ContainerAllocator>&) { return value(); } +}; + +template<class ContainerAllocator> +struct Definition< ::unitree_legged_msgs::MotorState_<ContainerAllocator> > +{ + static const char* value() + { + return "uint8 mode # motor current mode \n" +"float32 q # motor current position(rad)\n" +"float32 dq # motor current speed(rad/s)\n" +"float32 ddq # motor current speed(rad/s)\n" +"float32 tauEst # current estimated output torque(N*m)\n" +"float32 q_raw # motor current position(rad)\n" +"float32 dq_raw # motor current speed(rad/s)\n" +"float32 ddq_raw # motor current speed(rad/s)\n" +"int8 temperature # motor temperature(slow conduction of temperature leads to lag)\n" +"uint32[2] reserve\n" +; + } + + static const char* value(const ::unitree_legged_msgs::MotorState_<ContainerAllocator>&) { return value(); } +}; + +} // namespace message_traits +} // namespace ros + +namespace ros +{ +namespace serialization +{ + + template<class ContainerAllocator> struct Serializer< ::unitree_legged_msgs::MotorState_<ContainerAllocator> > + { + template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m) + { + stream.next(m.mode); + stream.next(m.q); + stream.next(m.dq); + stream.next(m.ddq); + stream.next(m.tauEst); + stream.next(m.q_raw); + stream.next(m.dq_raw); + stream.next(m.ddq_raw); + stream.next(m.temperature); + stream.next(m.reserve); + } + + ROS_DECLARE_ALLINONE_SERIALIZER + }; // struct MotorState_ + +} // namespace serialization +} // namespace ros + +namespace ros +{ +namespace message_operations +{ + +template<class ContainerAllocator> +struct Printer< ::unitree_legged_msgs::MotorState_<ContainerAllocator> > +{ + template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::unitree_legged_msgs::MotorState_<ContainerAllocator>& v) + { + s << indent << "mode: "; + Printer<uint8_t>::stream(s, indent + " ", v.mode); + s << indent << "q: "; + Printer<float>::stream(s, indent + " ", v.q); + s << indent << "dq: "; + Printer<float>::stream(s, indent + " ", v.dq); + s << indent << "ddq: "; + Printer<float>::stream(s, indent + " ", v.ddq); + s << indent << "tauEst: "; + Printer<float>::stream(s, indent + " ", v.tauEst); + s << indent << "q_raw: "; + Printer<float>::stream(s, indent + " ", v.q_raw); + s << indent << "dq_raw: "; + Printer<float>::stream(s, indent + " ", v.dq_raw); + s << indent << "ddq_raw: "; + Printer<float>::stream(s, indent + " ", v.ddq_raw); + s << indent << "temperature: "; + Printer<int8_t>::stream(s, indent + " ", v.temperature); + s << indent << "reserve[]" << std::endl; + for (size_t i = 0; i < v.reserve.size(); ++i) + { + s << indent << " reserve[" << i << "]: "; + Printer<uint32_t>::stream(s, indent + " ", v.reserve[i]); + } + } +}; + +} // namespace message_operations +} // namespace ros + +#endif // UNITREE_LEGGED_MSGS_MESSAGE_MOTORSTATE_H diff --git a/include/message/arm_common.h b/include/message/arm_common.h old mode 100644 new mode 100755 diff --git a/include/thirdparty/quadProgpp/Array.hh b/include/thirdparty/quadProgpp/Array.hh old mode 100644 new mode 100755 index 29e494d..53ab624 --- a/include/thirdparty/quadProgpp/Array.hh +++ b/include/thirdparty/quadProgpp/Array.hh @@ -1,2532 +1,2532 @@ -// $Id: Array.hh 249 2008-11-20 09:58:23Z schaerf $ -// This file is part of EasyLocalpp: a C++ Object-Oriented framework -// aimed at easing the development of Local Search algorithms. -// Copyright (C) 2001--2008 Andrea Schaerf, Luca Di Gaspero. -// -// This software may be modified and distributed under the terms -// of the MIT license. See the LICENSE file for details. - -#if !defined(_ARRAY_HH) -#define _ARRAY_HH - -#include <set> -#include <stdexcept> -#include <iostream> -#include <iomanip> -#include <cmath> -#include <cstdlib> - -namespace quadprogpp { - -enum MType { DIAG }; - -template <typename T> -class Vector -{ -public: - Vector(); - Vector(const unsigned int n); - Vector(const T& a, const unsigned int n); //initialize to constant value - Vector(const T* a, const unsigned int n); // Initialize to array - Vector(const Vector &rhs); // copy constructor - ~Vector(); // destructor - - inline void set(const T* a, const unsigned int n); - Vector<T> extract(const std::set<unsigned int>& indexes) const; - inline T& operator[](const unsigned int& i); //i-th element - inline const T& operator[](const unsigned int& i) const; - - inline unsigned int size() const; - inline void resize(const unsigned int n); - inline void resize(const T& a, const unsigned int n); - - Vector<T>& operator=(const Vector<T>& rhs); //assignment - Vector<T>& operator=(const T& a); //assign a to every element - inline Vector<T>& operator+=(const Vector<T>& rhs); - inline Vector<T>& operator-=(const Vector<T>& rhs); - inline Vector<T>& operator*=(const Vector<T>& rhs); - inline Vector<T>& operator/=(const Vector<T>& rhs); - inline Vector<T>& operator^=(const Vector<T>& rhs); - inline Vector<T>& operator+=(const T& a); - inline Vector<T>& operator-=(const T& a); - inline Vector<T>& operator*=(const T& a); - inline Vector<T>& operator/=(const T& a); - inline Vector<T>& operator^=(const T& a); -private: - unsigned int n; // size of array. upper index is n-1 - T* v; // storage for data -}; - -template <typename T> -Vector<T>::Vector() - : n(0), v(0) -{} - -template <typename T> -Vector<T>::Vector(const unsigned int n) - : v(new T[n]) -{ - this->n = n; -} - -template <typename T> -Vector<T>::Vector(const T& a, const unsigned int n) - : v(new T[n]) -{ - this->n = n; - for (unsigned int i = 0; i < n; i++) - v[i] = a; -} - -template <typename T> -Vector<T>::Vector(const T* a, const unsigned int n) - : v(new T[n]) -{ - this->n = n; - for (unsigned int i = 0; i < n; i++) - v[i] = *a++; -} - -template <typename T> -Vector<T>::Vector(const Vector<T>& rhs) - : v(new T[rhs.n]) -{ - this->n = rhs.n; - for (unsigned int i = 0; i < n; i++) - v[i] = rhs[i]; -} - -template <typename T> -Vector<T>::~Vector() -{ - if (v != 0) - delete[] (v); -} - -template <typename T> -void Vector<T>::resize(const unsigned int n) -{ - if (n == this->n) - return; - if (v != 0) - delete[] (v); - v = new T[n]; - this->n = n; -} - -template <typename T> -void Vector<T>::resize(const T& a, const unsigned int n) -{ - resize(n); - for (unsigned int i = 0; i < n; i++) - v[i] = a; -} - - -template <typename T> -inline Vector<T>& Vector<T>::operator=(const Vector<T>& rhs) -// postcondition: normal assignment via copying has been performed; -// if vector and rhs were different sizes, vector -// has been resized to match the size of rhs -{ - if (this != &rhs) - { - resize(rhs.n); - for (unsigned int i = 0; i < n; i++) - v[i] = rhs[i]; - } - return *this; -} - -template <typename T> -inline Vector<T> & Vector<T>::operator=(const T& a) //assign a to every element -{ - for (unsigned int i = 0; i < n; i++) - v[i] = a; - return *this; -} - -template <typename T> -inline T & Vector<T>::operator[](const unsigned int& i) //subscripting -{ - return v[i]; -} - -template <typename T> -inline const T& Vector<T>::operator[](const unsigned int& i) const //subscripting -{ - return v[i]; -} - -template <typename T> -inline unsigned int Vector<T>::size() const -{ - return n; -} - -template <typename T> -inline void Vector<T>::set(const T* a, unsigned int n) -{ - resize(n); - for (unsigned int i = 0; i < n; i++) - v[i] = a[i]; -} - -template <typename T> -inline Vector<T> Vector<T>::extract(const std::set<unsigned int>& indexes) const -{ - Vector<T> tmp(indexes.size()); - unsigned int i = 0; - - for (std::set<unsigned int>::const_iterator el = indexes.begin(); el != indexes.end(); el++) - { - if (*el >= n) - throw std::logic_error("Error extracting subvector: the indexes are out of vector bounds"); - tmp[i++] = v[*el]; - } - - return tmp; -} - -template <typename T> -inline Vector<T>& Vector<T>::operator+=(const Vector<T>& rhs) -{ - if (this->size() != rhs.size()) - throw std::logic_error("Operator+=: vectors have different sizes"); - for (unsigned int i = 0; i < n; i++) - v[i] += rhs[i]; - - return *this; -} - - -template <typename T> -inline Vector<T>& Vector<T>::operator+=(const T& a) -{ - for (unsigned int i = 0; i < n; i++) - v[i] += a; - - return *this; -} - -template <typename T> -inline Vector<T> operator+(const Vector<T>& rhs) -{ - return rhs; -} - -template <typename T> -inline Vector<T> operator+(const Vector<T>& lhs, const Vector<T>& rhs) -{ - if (lhs.size() != rhs.size()) - throw std::logic_error("Operator+: vectors have different sizes"); - Vector<T> tmp(lhs.size()); - for (unsigned int i = 0; i < lhs.size(); i++) - tmp[i] = lhs[i] + rhs[i]; - - return tmp; -} - -template <typename T> -inline Vector<T> operator+(const Vector<T>& lhs, const T& a) -{ - Vector<T> tmp(lhs.size()); - for (unsigned int i = 0; i < lhs.size(); i++) - tmp[i] = lhs[i] + a; - - return tmp; -} - -template <typename T> -inline Vector<T> operator+(const T& a, const Vector<T>& rhs) -{ - Vector<T> tmp(rhs.size()); - for (unsigned int i = 0; i < rhs.size(); i++) - tmp[i] = a + rhs[i]; - - return tmp; -} - -template <typename T> -inline Vector<T>& Vector<T>::operator-=(const Vector<T>& rhs) -{ - if (this->size() != rhs.size()) - throw std::logic_error("Operator-=: vectors have different sizes"); - for (unsigned int i = 0; i < n; i++) - v[i] -= rhs[i]; - - return *this; -} - - -template <typename T> -inline Vector<T>& Vector<T>::operator-=(const T& a) -{ - for (unsigned int i = 0; i < n; i++) - v[i] -= a; - - return *this; -} - -template <typename T> -inline Vector<T> operator-(const Vector<T>& rhs) -{ - return (T)(-1) * rhs; -} - -template <typename T> -inline Vector<T> operator-(const Vector<T>& lhs, const Vector<T>& rhs) -{ - if (lhs.size() != rhs.size()) - throw std::logic_error("Operator-: vectors have different sizes"); - Vector<T> tmp(lhs.size()); - for (unsigned int i = 0; i < lhs.size(); i++) - tmp[i] = lhs[i] - rhs[i]; - - return tmp; -} - -template <typename T> -inline Vector<T> operator-(const Vector<T>& lhs, const T& a) -{ - Vector<T> tmp(lhs.size()); - for (unsigned int i = 0; i < lhs.size(); i++) - tmp[i] = lhs[i] - a; - - return tmp; -} - -template <typename T> -inline Vector<T> operator-(const T& a, const Vector<T>& rhs) -{ - Vector<T> tmp(rhs.size()); - for (unsigned int i = 0; i < rhs.size(); i++) - tmp[i] = a - rhs[i]; - - return tmp; -} - -template <typename T> -inline Vector<T>& Vector<T>::operator*=(const Vector<T>& rhs) -{ - if (this->size() != rhs.size()) - throw std::logic_error("Operator*=: vectors have different sizes"); - for (unsigned int i = 0; i < n; i++) - v[i] *= rhs[i]; - - return *this; -} - - -template <typename T> -inline Vector<T>& Vector<T>::operator*=(const T& a) -{ - for (unsigned int i = 0; i < n; i++) - v[i] *= a; - - return *this; -} - -template <typename T> -inline Vector<T> operator*(const Vector<T>& lhs, const Vector<T>& rhs) -{ - if (lhs.size() != rhs.size()) - throw std::logic_error("Operator*: vectors have different sizes"); - Vector<T> tmp(lhs.size()); - for (unsigned int i = 0; i < lhs.size(); i++) - tmp[i] = lhs[i] * rhs[i]; - - return tmp; -} - -template <typename T> -inline Vector<T> operator*(const Vector<T>& lhs, const T& a) -{ - Vector<T> tmp(lhs.size()); - for (unsigned int i = 0; i < lhs.size(); i++) - tmp[i] = lhs[i] * a; - - return tmp; -} - -template <typename T> -inline Vector<T> operator*(const T& a, const Vector<T>& rhs) -{ - Vector<T> tmp(rhs.size()); - for (unsigned int i = 0; i < rhs.size(); i++) - tmp[i] = a * rhs[i]; - - return tmp; -} - -template <typename T> -inline Vector<T>& Vector<T>::operator/=(const Vector<T>& rhs) -{ - if (this->size() != rhs.size()) - throw std::logic_error("Operator/=: vectors have different sizes"); - for (unsigned int i = 0; i < n; i++) - v[i] /= rhs[i]; - - return *this; -} - - -template <typename T> -inline Vector<T>& Vector<T>::operator/=(const T& a) -{ - for (unsigned int i = 0; i < n; i++) - v[i] /= a; - - return *this; -} - -template <typename T> -inline Vector<T> operator/(const Vector<T>& lhs, const Vector<T>& rhs) -{ - if (lhs.size() != rhs.size()) - throw std::logic_error("Operator/: vectors have different sizes"); - Vector<T> tmp(lhs.size()); - for (unsigned int i = 0; i < lhs.size(); i++) - tmp[i] = lhs[i] / rhs[i]; - - return tmp; -} - -template <typename T> -inline Vector<T> operator/(const Vector<T>& lhs, const T& a) -{ - Vector<T> tmp(lhs.size()); - for (unsigned int i = 0; i < lhs.size(); i++) - tmp[i] = lhs[i] / a; - - return tmp; -} - -template <typename T> -inline Vector<T> operator/(const T& a, const Vector<T>& rhs) -{ - Vector<T> tmp(rhs.size()); - for (unsigned int i = 0; i < rhs.size(); i++) - tmp[i] = a / rhs[i]; - - return tmp; -} - -template <typename T> -inline Vector<T> operator^(const Vector<T>& lhs, const Vector<T>& rhs) -{ - if (lhs.size() != rhs.size()) - throw std::logic_error("Operator^: vectors have different sizes"); - Vector<T> tmp(lhs.size()); - for (unsigned int i = 0; i < lhs.size(); i++) - tmp[i] = pow(lhs[i], rhs[i]); - - return tmp; -} - -template <typename T> -inline Vector<T> operator^(const Vector<T>& lhs, const T& a) -{ - Vector<T> tmp(lhs.size()); - for (unsigned int i = 0; i < lhs.size(); i++) - tmp[i] = pow(lhs[i], a); - - return tmp; -} - -template <typename T> -inline Vector<T> operator^(const T& a, const Vector<T>& rhs) -{ - Vector<T> tmp(rhs.size()); - for (unsigned int i = 0; i < rhs.size(); i++) - tmp[i] = pow(a, rhs[i]); - - return tmp; -} - -template <typename T> -inline Vector<T>& Vector<T>::operator^=(const Vector<T>& rhs) -{ - if (this->size() != rhs.size()) - throw std::logic_error("Operator^=: vectors have different sizes"); - for (unsigned int i = 0; i < n; i++) - v[i] = pow(v[i], rhs[i]); - - return *this; -} - -template <typename T> -inline Vector<T>& Vector<T>::operator^=(const T& a) -{ - for (unsigned int i = 0; i < n; i++) - v[i] = pow(v[i], a); - - return *this; -} - -template <typename T> -inline bool operator==(const Vector<T>& v, const Vector<T>& w) -{ - if (v.size() != w.size()) - throw std::logic_error("Vectors of different size are not confrontable"); - for (unsigned i = 0; i < v.size(); i++) - if (v[i] != w[i]) - return false; - return true; -} - -template <typename T> -inline bool operator!=(const Vector<T>& v, const Vector<T>& w) -{ - if (v.size() != w.size()) - throw std::logic_error("Vectors of different size are not confrontable"); - for (unsigned i = 0; i < v.size(); i++) - if (v[i] != w[i]) - return true; - return false; -} - -template <typename T> -inline bool operator<(const Vector<T>& v, const Vector<T>& w) -{ - if (v.size() != w.size()) - throw std::logic_error("Vectors of different size are not confrontable"); - for (unsigned i = 0; i < v.size(); i++) - if (v[i] >= w[i]) - return false; - return true; -} - -template <typename T> -inline bool operator<=(const Vector<T>& v, const Vector<T>& w) -{ - if (v.size() != w.size()) - throw std::logic_error("Vectors of different size are not confrontable"); - for (unsigned i = 0; i < v.size(); i++) - if (v[i] > w[i]) - return false; - return true; -} - -template <typename T> -inline bool operator>(const Vector<T>& v, const Vector<T>& w) -{ - if (v.size() != w.size()) - throw std::logic_error("Vectors of different size are not confrontable"); - for (unsigned i = 0; i < v.size(); i++) - if (v[i] <= w[i]) - return false; - return true; -} - -template <typename T> -inline bool operator>=(const Vector<T>& v, const Vector<T>& w) -{ - if (v.size() != w.size()) - throw std::logic_error("Vectors of different size are not confrontable"); - for (unsigned i = 0; i < v.size(); i++) - if (v[i] < w[i]) - return false; - return true; -} - -/** - Input/Output -*/ -template <typename T> -inline std::ostream& operator<<(std::ostream& os, const Vector<T>& v) -{ - os << std::endl << v.size() << std::endl; - for (unsigned int i = 0; i < v.size() - 1; i++) - os << std::setw(20) << std::setprecision(16) << v[i] << ", "; - os << std::setw(20) << std::setprecision(16) << v[v.size() - 1] << std::endl; - - return os; -} - -template <typename T> -std::istream& operator>>(std::istream& is, Vector<T>& v) -{ - int elements; - char comma; - is >> elements; - v.resize(elements); - for (unsigned int i = 0; i < elements; i++) - is >> v[i] >> comma; - - return is; -} - -/** - Index utilities -*/ - -std::set<unsigned int> seq(unsigned int s, unsigned int e); - -std::set<unsigned int> singleton(unsigned int i); - -template <typename T> -class CanonicalBaseVector : public Vector<T> -{ -public: - CanonicalBaseVector(unsigned int i, unsigned int n); - inline void reset(unsigned int i); -private: - unsigned int e; -}; - -template <typename T> -CanonicalBaseVector<T>::CanonicalBaseVector(unsigned int i, unsigned int n) - : Vector<T>((T)0, n), e(i) -{ (*this)[e] = (T)1; } - -template <typename T> -inline void CanonicalBaseVector<T>::reset(unsigned int i) -{ - (*this)[e] = (T)0; - e = i; - (*this)[e] = (T)1; -} - -#include <stdexcept> - -template <typename T> -inline T sum(const Vector<T>& v) -{ - T tmp = (T)0; - for (unsigned int i = 0; i < v.size(); i++) - tmp += v[i]; - - return tmp; -} - -template <typename T> -inline T prod(const Vector<T>& v) -{ - T tmp = (T)1; - for (unsigned int i = 0; i < v.size(); i++) - tmp *= v[i]; - - return tmp; -} - -template <typename T> -inline T mean(const Vector<T>& v) -{ - T sum = (T)0; - for (unsigned int i = 0; i < v.size(); i++) - sum += v[i]; - return sum / v.size(); -} - -template <typename T> -inline T median(const Vector<T>& v) -{ - Vector<T> tmp = sort(v); - if (v.size() % 2 == 1) // it is an odd-sized vector - return tmp[v.size() / 2]; - else - return 0.5 * (tmp[v.size() / 2 - 1] + tmp[v.size() / 2]); -} - -template <typename T> -inline T stdev(const Vector<T>& v, bool sample_correction = false) -{ - return sqrt(var(v, sample_correction)); -} - -template <typename T> -inline T var(const Vector<T>& v, bool sample_correction = false) -{ - T sum = (T)0, ssum = (T)0; - unsigned int n = v.size(); - for (unsigned int i = 0; i < n; i++) - { - sum += v[i]; - ssum += (v[i] * v[i]); - } - if (!sample_correction) - return (ssum / n) - (sum / n) * (sum / n); - else - return n * ((ssum / n) - (sum / n) * (sum / n)) / (n - 1); -} - -template <typename T> -inline T max(const Vector<T>& v) -{ - T value = v[0]; - for (unsigned int i = 1; i < v.size(); i++) - value = std::max(v[i], value); - - return value; -} - -template <typename T> -inline T min(const Vector<T>& v) -{ - T value = v[0]; - for (unsigned int i = 1; i < v.size(); i++) - value = std::min(v[i], value); - - return value; -} - -template <typename T> -inline unsigned int index_max(const Vector<T>& v) -{ - unsigned int max = 0; - for (unsigned int i = 1; i < v.size(); i++) - if (v[i] > v[max]) - max = i; - - return max; -} - -template <typename T> -inline unsigned int index_min(const Vector<T>& v) -{ - unsigned int min = 0; - for (unsigned int i = 1; i < v.size(); i++) - if (v[i] < v[min]) - min = i; - - return min; -} - - -template <typename T> -inline T dot_prod(const Vector<T>& a, const Vector<T>& b) -{ - T sum = (T)0; - if (a.size() != b.size()) - throw std::logic_error("Dotprod error: the vectors are not the same size"); - for (unsigned int i = 0; i < a.size(); i++) - sum += a[i] * b[i]; - - return sum; -} - -/** - Single element mathematical functions -*/ - -template <typename T> -inline Vector<T> exp(const Vector<T>& v) -{ - Vector<T> tmp(v.size()); - for (unsigned int i = 0; i < v.size(); i++) - tmp[i] = exp(v[i]); - - return tmp; -} - -template <typename T> -inline Vector<T> log(const Vector<T>& v) -{ - Vector<T> tmp(v.size()); - for (unsigned int i = 0; i < v.size(); i++) - tmp[i] = log(v[i]); - - return tmp; -} - -template <typename T> -inline Vector<T> vec_sqrt(const Vector<T>& v) -{ - Vector<T> tmp(v.size()); - for (unsigned int i = 0; i < v.size(); i++) - tmp[i] = sqrt(v[i]); - - return tmp; -} - -template <typename T> -inline Vector<T> pow(const Vector<T>& v, double a) -{ - Vector<T> tmp(v.size()); - for (unsigned int i = 0; i < v.size(); i++) - tmp[i] = pow(v[i], a); - - return tmp; -} - -template <typename T> -inline Vector<T> abs(const Vector<T>& v) -{ - Vector<T> tmp(v.size()); - for (unsigned int i = 0; i < v.size(); i++) - tmp[i] = (T)fabs(v[i]); - - return tmp; -} - -template <typename T> -inline Vector<T> sign(const Vector<T>& v) -{ - Vector<T> tmp(v.size()); - for (unsigned int i = 0; i < v.size(); i++) - tmp[i] = v[i] > 0 ? +1 : v[i] == 0 ? 0 : -1; - - return tmp; -} - -template <typename T> -inline unsigned int partition(Vector<T>& v, unsigned int begin, unsigned int end) -{ - unsigned int i = begin + 1, j = begin + 1; - T pivot = v[begin]; - while (j <= end) - { - if (v[j] < pivot) { - std::swap(v[i], v[j]); - i++; - } - j++; - } - v[begin] = v[i - 1]; - v[i - 1] = pivot; - return i - 2; -} - - -template <typename T> -inline void quicksort(Vector<T>& v, unsigned int begin, unsigned int end) -{ - if (end > begin) - { - unsigned int index = partition(v, begin, end); - quicksort(v, begin, index); - quicksort(v, index + 2, end); - } -} - -template <typename T> -inline Vector<T> sort(const Vector<T>& v) -{ - Vector<T> tmp(v); - - quicksort<T>(tmp, 0, tmp.size() - 1); - - return tmp; -} - -template <typename T> -inline Vector<double> rank(const Vector<T>& v) -{ - Vector<T> tmp(v); - Vector<double> tmp_rank(0.0, v.size()); - - for (unsigned int i = 0; i < tmp.size(); i++) - { - unsigned int smaller = 0, equal = 0; - for (unsigned int j = 0; j < tmp.size(); j++) - if (i == j) - continue; - else - if (tmp[j] < tmp[i]) - smaller++; - else if (tmp[j] == tmp[i]) - equal++; - tmp_rank[i] = smaller + 1; - if (equal > 0) - { - for (unsigned int j = 1; j <= equal; j++) - tmp_rank[i] += smaller + 1 + j; - tmp_rank[i] /= (double)(equal + 1); - } - } - - return tmp_rank; -} - -//enum MType { DIAG }; - -template <typename T> -class Matrix -{ -public: - Matrix(); // Default constructor - Matrix(const unsigned int n, const unsigned int m); // Construct a n x m matrix - Matrix(const T& a, const unsigned int n, const unsigned int m); // Initialize the content to constant a - Matrix(MType t, const T& a, const T& o, const unsigned int n, const unsigned int m); - Matrix(MType t, const Vector<T>& v, const T& o, const unsigned int n, const unsigned int m); - Matrix(const T* a, const unsigned int n, const unsigned int m); // Initialize to array - Matrix(const Matrix<T>& rhs); // Copy constructor - ~Matrix(); // destructor - - inline T* operator[](const unsigned int& i) { return v[i]; } // Subscripting: row i - inline const T* operator[](const unsigned int& i) const { return v[i]; }; // const subsctipting - - inline void resize(const unsigned int n, const unsigned int m); - inline void resize(const T& a, const unsigned int n, const unsigned int m); - - - inline Vector<T> extractRow(const unsigned int i) const; - inline Vector<T> extractColumn(const unsigned int j) const; - inline Vector<T> extractDiag() const; - inline Matrix<T> extractRows(const std::set<unsigned int>& indexes) const; - inline Matrix<T> extractColumns(const std::set<unsigned int>& indexes) const; - inline Matrix<T> extract(const std::set<unsigned int>& r_indexes, const std::set<unsigned int>& c_indexes) const; - - inline void set(const T* a, unsigned int n, unsigned int m); - inline void set(const std::set<unsigned int>& r_indexes, const std::set<unsigned int>& c_indexes, const Matrix<T>& m); - inline void setRow(const unsigned int index, const Vector<T>& v); - inline void setRow(const unsigned int index, const Matrix<T>& v); - inline void setRows(const std::set<unsigned int>& indexes, const Matrix<T>& m); - inline void setColumn(const unsigned int index, const Vector<T>& v); - inline void setColumn(const unsigned int index, const Matrix<T>& v); - inline void setColumns(const std::set<unsigned int>& indexes, const Matrix<T>& m); - - - inline unsigned int nrows() const { return n; } // number of rows - inline unsigned int ncols() const { return m; } // number of columns - - inline Matrix<T>& operator=(const Matrix<T>& rhs); // Assignment operator - inline Matrix<T>& operator=(const T& a); // Assign to every element value a - inline Matrix<T>& operator+=(const Matrix<T>& rhs); - inline Matrix<T>& operator-=(const Matrix<T>& rhs); - inline Matrix<T>& operator*=(const Matrix<T>& rhs); - inline Matrix<T>& operator/=(const Matrix<T>& rhs); - inline Matrix<T>& operator^=(const Matrix<T>& rhs); - inline Matrix<T>& operator+=(const T& a); - inline Matrix<T>& operator-=(const T& a); - inline Matrix<T>& operator*=(const T& a); - inline Matrix<T>& operator/=(const T& a); - inline Matrix<T>& operator^=(const T& a); - inline operator Vector<T>(); -private: - unsigned int n; // number of rows - unsigned int m; // number of columns - T **v; // storage for data -}; - -template <typename T> -Matrix<T>::Matrix() - : n(0), m(0), v(0) -{} - -template <typename T> -Matrix<T>::Matrix(unsigned int n, unsigned int m) - : v(new T*[n]) -{ - this->n = n; this->m = m; - v[0] = new T[m * n]; - for (unsigned int i = 1; i < n; i++) - v[i] = v[i - 1] + m; -} - -template <typename T> -Matrix<T>::Matrix(const T& a, unsigned int n, unsigned int m) - : v(new T*[n]) -{ - this->n = n; this->m = m; - v[0] = new T[m * n]; - for (unsigned int i = 1; i < n; i++) - v[i] = v[i - 1] + m; - for (unsigned int i = 0; i < n; i++) - for (unsigned int j = 0; j < m; j++) - v[i][j] = a; -} - -template <class T> -Matrix<T>::Matrix(const T* a, unsigned int n, unsigned int m) - : v(new T*[n]) -{ - this->n = n; this->m = m; - v[0] = new T[m * n]; - for (unsigned int i = 1; i < n; i++) - v[i] = v[i - 1] + m; - for (unsigned int i = 0; i < n; i++) - for (unsigned int j = 0; j < m; j++) - v[i][j] = *a++; -} - -template <class T> -Matrix<T>::Matrix(MType t, const T& a, const T& o, unsigned int n, unsigned int m) - : v(new T*[n]) -{ - this->n = n; this->m = m; - v[0] = new T[m * n]; - for (unsigned int i = 1; i < n; i++) - v[i] = v[i - 1] + m; - switch (t) - { - case DIAG: - for (unsigned int i = 0; i < n; i++) - for (unsigned int j = 0; j < m; j++) - if (i != j) - v[i][j] = o; - else - v[i][j] = a; - break; - default: - throw std::logic_error("Matrix type not supported"); - } -} - -template <class T> -Matrix<T>::Matrix(MType t, const Vector<T>& a, const T& o, unsigned int n, unsigned int m) - : v(new T*[n]) -{ - this->n = n; this->m = m; - v[0] = new T[m * n]; - for (unsigned int i = 1; i < n; i++) - v[i] = v[i - 1] + m; - switch (t) - { - case DIAG: - for (unsigned int i = 0; i < n; i++) - for (unsigned int j = 0; j < m; j++) - if (i != j) - v[i][j] = o; - else - v[i][j] = a[i]; - break; - default: - throw std::logic_error("Matrix type not supported"); - } -} - -template <typename T> -Matrix<T>::Matrix(const Matrix<T>& rhs) - : v(new T*[rhs.n]) -{ - n = rhs.n; m = rhs.m; - v[0] = new T[m * n]; - for (unsigned int i = 1; i < n; i++) - v[i] = v[i - 1] + m; - for (unsigned int i = 0; i < n; i++) - for (unsigned int j = 0; j < m; j++) - v[i][j] = rhs[i][j]; -} - -template <typename T> -Matrix<T>::~Matrix() -{ - if (v != 0) { - delete[] (v[0]); - delete[] (v); - } -} - -template <typename T> -inline Matrix<T>& Matrix<T>::operator=(const Matrix<T> &rhs) -// postcondition: normal assignment via copying has been performed; -// if matrix and rhs were different sizes, matrix -// has been resized to match the size of rhs -{ - if (this != &rhs) - { - resize(rhs.n, rhs.m); - for (unsigned int i = 0; i < n; i++) - for (unsigned int j = 0; j < m; j++) - v[i][j] = rhs[i][j]; - } - return *this; -} - -template <typename T> -inline Matrix<T>& Matrix<T>::operator=(const T& a) // assign a to every element -{ - for (unsigned int i = 0; i < n; i++) - for (unsigned int j = 0; j < m; j++) - v[i][j] = a; - return *this; -} - - -template <typename T> -inline void Matrix<T>::resize(const unsigned int n, const unsigned int m) -{ - if (n == this->n && m == this->m) - return; - if (v != 0) - { - delete[] (v[0]); - delete[] (v); - } - this->n = n; this->m = m; - v = new T*[n]; - v[0] = new T[m * n]; - for (unsigned int i = 1; i < n; i++) - v[i] = v[i - 1] + m; -} - -template <typename T> -inline void Matrix<T>::resize(const T& a, const unsigned int n, const unsigned int m) -{ - resize(n, m); - for (unsigned int i = 0; i < n; i++) - for (unsigned int j = 0; j < m; j++) - v[i][j] = a; -} - - - -template <typename T> -inline Vector<T> Matrix<T>::extractRow(const unsigned int i) const -{ - if (i >= n) - throw std::logic_error("Error in extractRow: trying to extract a row out of matrix bounds"); - Vector<T> tmp(v[i], m); - - return tmp; -} - -template <typename T> -inline Vector<T> Matrix<T>::extractColumn(const unsigned int j) const -{ - if (j >= m) - throw std::logic_error("Error in extractRow: trying to extract a row out of matrix bounds"); - Vector<T> tmp(n); - - for (unsigned int i = 0; i < n; i++) - tmp[i] = v[i][j]; - - return tmp; -} - -template <typename T> -inline Vector<T> Matrix<T>::extractDiag() const -{ - unsigned int d = std::min(n, m); - - Vector<T> tmp(d); - - for (unsigned int i = 0; i < d; i++) - tmp[i] = v[i][i]; - - return tmp; - -} - -template <typename T> -inline Matrix<T> Matrix<T>::extractRows(const std::set<unsigned int>& indexes) const -{ - Matrix<T> tmp(indexes.size(), m); - unsigned int i = 0; - - for (std::set<unsigned int>::const_iterator el = indexes.begin(); el != indexes.end(); el++) - { - for (unsigned int j = 0; j < m; j++) - { - if (*el >= n) - throw std::logic_error("Error extracting rows: the indexes are out of matrix bounds"); - tmp[i][j] = v[*el][j]; - } - i++; - } - - return tmp; -} - -template <typename T> -inline Matrix<T> Matrix<T>::extractColumns(const std::set<unsigned int>& indexes) const -{ - Matrix<T> tmp(n, indexes.size()); - unsigned int j = 0; - - for (std::set<unsigned int>::const_iterator el = indexes.begin(); el != indexes.end(); el++) - { - for (unsigned int i = 0; i < n; i++) - { - if (*el >= m) - throw std::logic_error("Error extracting columns: the indexes are out of matrix bounds"); - tmp[i][j] = v[i][*el]; - } - j++; - } - - return tmp; -} - -template <typename T> -inline Matrix<T> Matrix<T>::extract(const std::set<unsigned int>& r_indexes, const std::set<unsigned int>& c_indexes) const -{ - Matrix<T> tmp(r_indexes.size(), c_indexes.size()); - unsigned int i = 0, j; - - for (std::set<unsigned int>::const_iterator r_el = r_indexes.begin(); r_el != r_indexes.end(); r_el++) - { - if (*r_el >= n) - throw std::logic_error("Error extracting submatrix: the indexes are out of matrix bounds"); - j = 0; - for (std::set<unsigned int>::const_iterator c_el = c_indexes.begin(); c_el != c_indexes.end(); c_el++) - { - if (*c_el >= m) - throw std::logic_error("Error extracting rows: the indexes are out of matrix bounds"); - tmp[i][j] = v[*r_el][*c_el]; - j++; - } - i++; - } - - return tmp; -} - -template <typename T> -inline void Matrix<T>::setRow(unsigned int i, const Vector<T>& a) -{ - if (i >= n) - throw std::logic_error("Error in setRow: trying to set a row out of matrix bounds"); - if (this->m != a.size()) - throw std::logic_error("Error setting matrix row: ranges are not compatible"); - for (unsigned int j = 0; j < ncols(); j++) - v[i][j] = a[j]; -} - -template <typename T> -inline void Matrix<T>::setRow(unsigned int i, const Matrix<T>& a) -{ - if (i >= n) - throw std::logic_error("Error in setRow: trying to set a row out of matrix bounds"); - if (this->m != a.ncols()) - throw std::logic_error("Error setting matrix column: ranges are not compatible"); - if (a.nrows() != 1) - throw std::logic_error("Error setting matrix column with a non-row matrix"); - for (unsigned int j = 0; j < ncols(); j++) - v[i][j] = a[0][j]; -} - -template <typename T> -inline void Matrix<T>::setRows(const std::set<unsigned int>& indexes, const Matrix<T>& m) -{ - unsigned int i = 0; - - if (indexes.size() != m.nrows() || this->m != m.ncols()) - throw std::logic_error("Error setting matrix rows: ranges are not compatible"); - for (std::set<unsigned int>::const_iterator el = indexes.begin(); el != indexes.end(); el++) - { - for (unsigned int j = 0; j < ncols(); j++) - { - if (*el >= n) - throw std::logic_error("Error in setRows: trying to set a row out of matrix bounds"); - v[*el][j] = m[i][j]; - } - i++; - } -} - -template <typename T> -inline void Matrix<T>::setColumn(unsigned int j, const Vector<T>& a) -{ - if (j >= m) - throw std::logic_error("Error in setColumn: trying to set a column out of matrix bounds"); - if (this->n != a.size()) - throw std::logic_error("Error setting matrix column: ranges are not compatible"); - for (unsigned int i = 0; i < nrows(); i++) - v[i][j] = a[i]; -} - -template <typename T> -inline void Matrix<T>::setColumn(unsigned int j, const Matrix<T>& a) -{ - if (j >= m) - throw std::logic_error("Error in setColumn: trying to set a column out of matrix bounds"); - if (this->n != a.nrows()) - throw std::logic_error("Error setting matrix column: ranges are not compatible"); - if (a.ncols() != 1) - throw std::logic_error("Error setting matrix column with a non-column matrix"); - for (unsigned int i = 0; i < nrows(); i++) - v[i][j] = a[i][0]; -} - - -template <typename T> -inline void Matrix<T>::setColumns(const std::set<unsigned int>& indexes, const Matrix<T>& a) -{ - unsigned int j = 0; - - if (indexes.size() != a.ncols() || this->n != a.nrows()) - throw std::logic_error("Error setting matrix columns: ranges are not compatible"); - for (std::set<unsigned int>::const_iterator el = indexes.begin(); el != indexes.end(); el++) - { - for (unsigned int i = 0; i < nrows(); i++) - { - if (*el >= m) - throw std::logic_error("Error in setColumns: trying to set a column out of matrix bounds"); - v[i][*el] = a[i][j]; - } - j++; - } -} - -template <typename T> -inline void Matrix<T>::set(const std::set<unsigned int>& r_indexes, const std::set<unsigned int>& c_indexes, const Matrix<T>& a) -{ - unsigned int i = 0, j; - if (c_indexes.size() != a.ncols() || r_indexes.size() != a.nrows()) - throw std::logic_error("Error setting matrix elements: ranges are not compatible"); - - for (std::set<unsigned int>::const_iterator r_el = r_indexes.begin(); r_el != r_indexes.end(); r_el++) - { - if (*r_el >= n) - throw std::logic_error("Error in set: trying to set a row out of matrix bounds"); - j = 0; - for (std::set<unsigned int>::const_iterator c_el = c_indexes.begin(); c_el != c_indexes.end(); c_el++) - { - if (*c_el >= m) - throw std::logic_error("Error in set: trying to set a column out of matrix bounds"); - v[*r_el][*c_el] = a[i][j]; - j++; - } - i++; - } -} - -template <typename T> -inline void Matrix<T>::set(const T* a, unsigned int n, unsigned int m) -{ - if (this->n != n || this->m != m) - resize(n, m); - unsigned int k = 0; - for (unsigned int i = 0; i < n; i++) - for (unsigned int j = 0; j < m; j++) - v[i][j] = a[k++]; -} - - -template <typename T> -Matrix<T> operator+(const Matrix<T>& rhs) -{ - return rhs; -} - -template <typename T> -Matrix<T> operator+(const Matrix<T>& lhs, const Matrix<T>& rhs) -{ - if (lhs.ncols() != rhs.ncols() || lhs.nrows() != rhs.nrows()) - throw std::logic_error("Operator+: matrices have different sizes"); - Matrix<T> tmp(lhs.nrows(), lhs.ncols()); - for (unsigned int i = 0; i < lhs.nrows(); i++) - for (unsigned int j = 0; j < lhs.ncols(); j++) - tmp[i][j] = lhs[i][j] + rhs[i][j]; - - return tmp; -} - -template <typename T> -Matrix<T> operator+(const Matrix<T>& lhs, const T& a) -{ - Matrix<T> tmp(lhs.nrows(), lhs.ncols()); - for (unsigned int i = 0; i < lhs.nrows(); i++) - for (unsigned int j = 0; j < lhs.ncols(); j++) - tmp[i][j] = lhs[i][j] + a; - - return tmp; -} - -template <typename T> -Matrix<T> operator+(const T& a, const Matrix<T>& rhs) -{ - Matrix<T> tmp(rhs.nrows(), rhs.ncols()); - for (unsigned int i = 0; i < rhs.nrows(); i++) - for (unsigned int j = 0; j < rhs.ncols(); j++) - tmp[i][j] = a + rhs[i][j]; - - return tmp; -} - -template <typename T> -inline Matrix<T>& Matrix<T>::operator+=(const Matrix<T>& rhs) -{ - if (m != rhs.ncols() || n != rhs.nrows()) - throw std::logic_error("Operator+=: matrices have different sizes"); - for (unsigned int i = 0; i < n; i++) - for (unsigned int j = 0; j < m; j++) - v[i][j] += rhs[i][j]; - - return *this; -} - -template <typename T> -inline Matrix<T>& Matrix<T>::operator+=(const T& a) -{ - for (unsigned int i = 0; i < n; i++) - for (unsigned int j = 0; j < m; j++) - v[i][j] += a; - - return *this; -} - -template <typename T> -Matrix<T> operator-(const Matrix<T>& rhs) -{ - return (T)(-1) * rhs; -} - -template <typename T> -Matrix<T> operator-(const Matrix<T>& lhs, const Matrix<T>& rhs) -{ - if (lhs.ncols() != rhs.ncols() || lhs.nrows() != rhs.nrows()) - throw std::logic_error("Operator-: matrices have different sizes"); - Matrix<T> tmp(lhs.nrows(), lhs.ncols()); - for (unsigned int i = 0; i < lhs.nrows(); i++) - for (unsigned int j = 0; j < lhs.ncols(); j++) - tmp[i][j] = lhs[i][j] - rhs[i][j]; - - return tmp; -} - -template <typename T> -Matrix<T> operator-(const Matrix<T>& lhs, const T& a) -{ - Matrix<T> tmp(lhs.nrows(), lhs.ncols()); - for (unsigned int i = 0; i < lhs.nrows(); i++) - for (unsigned int j = 0; j < lhs.ncols(); j++) - tmp[i][j] = lhs[i][j] - a; - - return tmp; -} - -template <typename T> -Matrix<T> operator-(const T& a, const Matrix<T>& rhs) -{ - Matrix<T> tmp(rhs.nrows(), rhs.ncols()); - for (unsigned int i = 0; i < rhs.nrows(); i++) - for (unsigned int j = 0; j < rhs.ncols(); j++) - tmp[i][j] = a - rhs[i][j]; - - return tmp; -} - -template <typename T> -inline Matrix<T>& Matrix<T>::operator-=(const Matrix<T>& rhs) -{ - if (m != rhs.ncols() || n != rhs.nrows()) - throw std::logic_error("Operator-=: matrices have different sizes"); - for (unsigned int i = 0; i < n; i++) - for (unsigned int j = 0; j < m; j++) - v[i][j] -= rhs[i][j]; - - return *this; -} - -template <typename T> -inline Matrix<T>& Matrix<T>::operator-=(const T& a) -{ - for (unsigned int i = 0; i < n; i++) - for (unsigned int j = 0; j < m; j++) - v[i][j] -= a; - - return *this; -} - -template <typename T> -Matrix<T> operator*(const Matrix<T>& lhs, const Matrix<T>& rhs) -{ - if (lhs.ncols() != rhs.ncols() || lhs.nrows() != rhs.nrows()) - throw std::logic_error("Operator*: matrices have different sizes"); - Matrix<T> tmp(lhs.nrows(), lhs.ncols()); - for (unsigned int i = 0; i < lhs.nrows(); i++) - for (unsigned int j = 0; j < lhs.ncols(); j++) - tmp[i][j] = lhs[i][j] * rhs[i][j]; - - return tmp; -} - -template <typename T> -Matrix<T> operator*(const Matrix<T>& lhs, const T& a) -{ - Matrix<T> tmp(lhs.nrows(), lhs.ncols()); - for (unsigned int i = 0; i < lhs.nrows(); i++) - for (unsigned int j = 0; j < lhs.ncols(); j++) - tmp[i][j] = lhs[i][j] * a; - - return tmp; -} - -template <typename T> -Matrix<T> operator*(const T& a, const Matrix<T>& rhs) -{ - Matrix<T> tmp(rhs.nrows(), rhs.ncols()); - for (unsigned int i = 0; i < rhs.nrows(); i++) - for (unsigned int j = 0; j < rhs.ncols(); j++) - tmp[i][j] = a * rhs[i][j]; - - return tmp; -} - -template <typename T> -inline Matrix<T>& Matrix<T>::operator*=(const Matrix<T>& rhs) -{ - if (m != rhs.ncols() || n != rhs.nrows()) - throw std::logic_error("Operator*=: matrices have different sizes"); - for (unsigned int i = 0; i < n; i++) - for (unsigned int j = 0; j < m; j++) - v[i][j] *= rhs[i][j]; - - return *this; -} - -template <typename T> -inline Matrix<T>& Matrix<T>::operator*=(const T& a) -{ - for (unsigned int i = 0; i < n; i++) - for (unsigned int j = 0; j < m; j++) - v[i][j] *= a; - - return *this; -} - -template <typename T> -Matrix<T> operator/(const Matrix<T>& lhs, const Matrix<T>& rhs) -{ - if (lhs.ncols() != rhs.ncols() || lhs.nrows() != rhs.nrows()) - throw std::logic_error("Operator+: matrices have different sizes"); - Matrix<T> tmp(lhs.nrows(), lhs.ncols()); - for (unsigned int i = 0; i < lhs.nrows(); i++) - for (unsigned int j = 0; j < lhs.ncols(); j++) - tmp[i][j] = lhs[i][j] / rhs[i][j]; - - return tmp; -} - -template <typename T> -Matrix<T> operator/(const Matrix<T>& lhs, const T& a) -{ - Matrix<T> tmp(lhs.nrows(), lhs.ncols()); - for (unsigned int i = 0; i < lhs.nrows(); i++) - for (unsigned int j = 0; j < lhs.ncols(); j++) - tmp[i][j] = lhs[i][j] / a; - - return tmp; -} - -template <typename T> -Matrix<T> operator/(const T& a, const Matrix<T>& rhs) -{ - Matrix<T> tmp(rhs.nrows(), rhs.ncols()); - for (unsigned int i = 0; i < rhs.nrows(); i++) - for (unsigned int j = 0; j < rhs.ncols(); j++) - tmp[i][j] = a / rhs[i][j]; - - return tmp; -} - -template <typename T> -inline Matrix<T>& Matrix<T>::operator/=(const Matrix<T>& rhs) -{ - if (m != rhs.ncols() || n != rhs.nrows()) - throw std::logic_error("Operator+=: matrices have different sizes"); - for (unsigned int i = 0; i < n; i++) - for (unsigned int j = 0; j < m; j++) - v[i][j] /= rhs[i][j]; - - return *this; -} - -template <typename T> -inline Matrix<T>& Matrix<T>::operator/=(const T& a) -{ - for (unsigned int i = 0; i < n; i++) - for (unsigned int j = 0; j < m; j++) - v[i][j] /= a; - - return *this; -} - -template <typename T> -Matrix<T> operator^(const Matrix<T>& lhs, const T& a) -{ - Matrix<T> tmp(lhs.nrows(), lhs.ncols()); - for (unsigned int i = 0; i < lhs.nrows(); i++) - for (unsigned int j = 0; j < lhs.ncols(); j++) - tmp[i][j] = pow(lhs[i][j], a); - - return tmp; -} - -template <typename T> -inline Matrix<T>& Matrix<T>::operator^=(const Matrix<T>& rhs) -{ - if (m != rhs.ncols() || n != rhs.nrows()) - throw std::logic_error("Operator^=: matrices have different sizes"); - for (unsigned int i = 0; i < n; i++) - for (unsigned int j = 0; j < m; j++) - v[i][j] = pow(v[i][j], rhs[i][j]); - - return *this; -} - - -template <typename T> -inline Matrix<T>& Matrix<T>::operator^=(const T& a) -{ - for (unsigned int i = 0; i < n; i++) - for (unsigned int j = 0; j < m; j++) - v[i][j] = pow(v[i][j], a); - - return *this; -} - -template <typename T> -inline Matrix<T>::operator Vector<T>() -{ - if (n > 1 && m > 1) - throw std::logic_error("Error matrix cast to vector: trying to cast a multi-dimensional matrix"); - if (n == 1) - return extractRow(0); - else - return extractColumn(0); -} - -template <typename T> -inline bool operator==(const Matrix<T>& a, const Matrix<T>& b) -{ - if (a.nrows() != b.nrows() || a.ncols() != b.ncols()) - throw std::logic_error("Matrices of different size are not confrontable"); - for (unsigned i = 0; i < a.nrows(); i++) - for (unsigned j = 0; j < a.ncols(); j++) - if (a[i][j] != b[i][j]) - return false; - return true; -} - -template <typename T> -inline bool operator!=(const Matrix<T>& a, const Matrix<T>& b) -{ - if (a.nrows() != b.nrows() || a.ncols() != b.ncols()) - throw std::logic_error("Matrices of different size are not confrontable"); - for (unsigned i = 0; i < a.nrows(); i++) - for (unsigned j = 0; j < a.ncols(); j++) - if (a[i][j] != b[i][j]) - return true; - return false; -} - - - -/** - Input/Output -*/ -template <typename T> -std::ostream& operator<<(std::ostream& os, const Matrix<T>& m) -{ - os << std::endl << m.nrows() << " " << m.ncols() << std::endl; - for (unsigned int i = 0; i < m.nrows(); i++) - { - for (unsigned int j = 0; j < m.ncols() - 1; j++) - os << std::setw(20) << std::setprecision(16) << m[i][j] << ", "; - os << std::setw(20) << std::setprecision(16) << m[i][m.ncols() - 1] << std::endl; - } - - return os; -} - -template <typename T> -std::istream& operator>>(std::istream& is, Matrix<T>& m) -{ - int rows, cols; - char comma; - is >> rows >> cols; - m.resize(rows, cols); - for (unsigned int i = 0; i < rows; i++) - for (unsigned int j = 0; j < cols; j++) - is >> m[i][j] >> comma; - - return is; -} - -template <typename T> -T sign(const T& v) -{ - if (v >= (T)0.0) - return (T)1.0; - else - return (T)-1.0; -} - -template <typename T> -T dist(const T& a, const T& b) -{ - T abs_a = (T)fabs(a), abs_b = (T)fabs(b); - if (abs_a > abs_b) - return abs_a * sqrt((T)1.0 + (abs_b / abs_a) * (abs_b / abs_a)); - else - return (abs_b == (T)0.0 ? (T)0.0 : abs_b * sqrt((T)1.0 + (abs_a / abs_b) * (abs_a / abs_b))); -} - -template <typename T> -void svd(const Matrix<T>& A, Matrix<T>& U, Vector<T>& W, Matrix<T>& V) -{ - int m = A.nrows(), n = A.ncols(), i, j, k, l, jj, nm; - const unsigned int max_its = 30; - bool flag; - Vector<T> rv1(n); - U = A; - W.resize(n); - V.resize(n, n); - T anorm, c, f, g, h, s, scale, x, y, z; - g = scale = anorm = (T)0.0; - - // Householder reduction to bidiagonal form - for (i = 0; i < n; i++) - { - l = i + 1; - rv1[i] = scale * g; - g = s = scale = (T)0.0; - if (i < m) - { - for (k = i; k < m; k++) - scale += fabs(U[k][i]); - if (scale != (T)0.0) - { - for (k = i; k < m; k++) - { - U[k][i] /= scale; - s += U[k][i] * U[k][i]; - } - f = U[i][i]; - g = -sign(f) * sqrt(s); - h = f * g - s; - U[i][i] = f - g; - for (j = l; j < n; j++) - { - s = (T)0.0; - for (k = i; k < m; k++) - s += U[k][i] * U[k][j]; - f = s / h; - for (k = i; k < m; k++) - U[k][j] += f * U[k][i]; - } - for (k = i; k < m; k++) - U[k][i] *= scale; - } - } - W[i] = scale * g; - g = s = scale = (T)0.0; - if (i < m && i != n - 1) - { - for (k = l; k < n; k++) - scale += fabs(U[i][k]); - if (scale != (T)0.0) - { - for (k = l; k < n; k++) - { - U[i][k] /= scale; - s += U[i][k] * U[i][k]; - } - f = U[i][l]; - g = -sign(f) * sqrt(s); - h = f * g - s; - U[i][l] = f - g; - for (k = l; k <n; k++) - rv1[k] = U[i][k] / h; - for (j = l; j < m; j++) - { - s = (T)0.0; - for (k = l; k < n; k++) - s += U[j][k] * U[i][k]; - for (k = l; k < n; k++) - U[j][k] += s * rv1[k]; - } - for (k = l; k < n; k++) - U[i][k] *= scale; - } - } - anorm = std::max(anorm, fabs(W[i]) + fabs(rv1[i])); - } - // Accumulation of right-hand transformations - for (i = n - 1; i >= 0; i--) - { - if (i < n - 1) - { - if (g != (T)0.0) - { - for (j = l; j < n; j++) - V[j][i] = (U[i][j] / U[i][l]) / g; - for (j = l; j < n; j++) - { - s = (T)0.0; - for (k = l; k < n; k++) - s += U[i][k] * V[k][j]; - for (k = l; k < n; k++) - V[k][j] += s * V[k][i]; - } - } - for (j = l; j < n; j++) - V[i][j] = V[j][i] = (T)0.0; - } - V[i][i] = (T)1.0; - g = rv1[i]; - l = i; - } - // Accumulation of left-hand transformations - for (i = std::min(m, n) - 1; i >= 0; i--) - { - l = i + 1; - g = W[i]; - for (j = l; j < n; j++) - U[i][j] = (T)0.0; - if (g != (T)0.0) - { - g = (T)1.0 / g; - for (j = l; j < n; j++) - { - s = (T)0.0; - for (k = l; k < m; k++) - s += U[k][i] * U[k][j]; - f = (s / U[i][i]) * g; - for (k = i; k < m; k++) - U[k][j] += f * U[k][i]; - } - for (j = i; j < m; j++) - U[j][i] *= g; - } - else - for (j = i; j < m; j++) - U[j][i] = (T)0.0; - U[i][i]++; - } - // Diagonalization of the bidiagonal form: loop over singular values, and over allowed iterations. - for (k = n - 1; k >= 0; k--) - { - for (unsigned int its = 0; its < max_its; its++) - { - flag = true; - for (l = k; l >= 0; l--) - { // Test for splitting - nm = l - 1; // Note that rV[0] is always zero - if ((T)(fabs(rv1[l]) + anorm) == anorm) - { - flag = false; - break; - } - if ((T)(fabs(W[nm]) + anorm) == anorm) - break; - } - if (flag) - { - // Cancellation of rv1[l], if l > 0 FIXME: it was l > 1 in NR - c = (T)0.0; - s = (T)1.0; - for (i = l; i <= k; i++) - { - f = s * rv1[i]; - rv1[i] *= c; - if ((T)(fabs(f) + anorm) == anorm) - break; - g = W[i]; - h = dist(f, g); - W[i] = h; - h = (T)1.0 / h; - c = g * h; - s = -f * h; - for (j = 0; j < m; j++) - { - y = U[j][nm]; - z = U[j][i]; - U[j][nm] = y * c + z * s; - U[j][i] = z * c - y * s; - } - } - } - z = W[k]; - if (l == k) - { // Convergence - if (z < (T)0.0) - { // Singular value is made nonnegative - W[k] = -z; - for (j = 0; j < n; j++) - V[j][k] = -V[j][k]; - } - break; - } - if (its == max_its) - throw std::logic_error("Error svd: no convergence in the maximum number of iterations"); - x = W[l]; - nm = k - 1; - y = W[nm]; - g = rv1[nm]; - h = rv1[k]; - f = ((y - z) * (y + z) + (g - h) * (g + h)) / (2.0 * h * y); - g = dist(f, (T)1.0); - f = ((x - z) * (x + z) + h * ((y / (f + sign(f)*fabs(g))) - h)) / x; - c = s = (T)1.0; // Next QR transformation - for (j = l; j <= nm; j++) - { - i = j + 1; - g = rv1[i]; - y = W[i]; - h = s * g; - g *= c; - z = dist(f, h); - rv1[j] = z; - c = f / z; - s = h / z; - f = x * c + g * s; - g = g * c - x * s; - h = y * s; - y *= c; - for (jj = 0; jj < n; jj++) - { - x = V[jj][j]; - z = V[jj][i]; - V[jj][j] = x * c + z * s; - V[jj][i] = z * c - x * s; - } - z = dist(f, h); - W[j] = z; - if (z != 0) // Rotation can be arbitrary if z = 0 - { - z = (T)1.0 / z; - c = f * z; - s = h * z; - } - f = c * g + s * y; - x = c * y - s * g; - for (jj = 0; jj < m; jj++) - { - y = U[jj][j]; - z = U[jj][i]; - U[jj][j] = y * c + z * s; - U[jj][i] = z * c - y * s; - } - } - rv1[l] = (T)0.0; - rv1[k] = f; - W[k] = x; - } - } -} - -template <typename T> -Matrix<T> pinv(const Matrix<T>& A) -{ - Matrix<T> U, V, x, tmp(A.ncols(), A.nrows()); - Vector<T> W; - CanonicalBaseVector<T> e(0, A.nrows()); - svd(A, U, W, V); - for (unsigned int i = 0; i < A.nrows(); i++) - { - e.reset(i); - tmp.setColumn(i, dot_prod(dot_prod(dot_prod(V, Matrix<double>(DIAG, 1.0 / W, 0.0, W.size(), W.size())), t(U)), e)); - } - - return tmp; -} - -template <typename T> -int lu(const Matrix<T>& A, Matrix<T>& LU, Vector<unsigned int>& index) -{ - if (A.ncols() != A.nrows()) - throw std::logic_error("Error in LU decomposition: matrix must be squared"); - int i, p, j, k, n = A.ncols(), ex; - T val, tmp; - Vector<T> d(n); - LU = A; - index.resize(n); - - ex = 1; - for (i = 0; i < n; i++) - { - index[i] = i; - val = (T)0.0; - for (j = 0; j < n; j++) - val = std::max(val, (T)fabs(LU[i][j])); - if (val == (T)0.0) - std::logic_error("Error in LU decomposition: matrix was singular"); - d[i] = val; - } - - for (k = 0; k < n - 1; k++) - { - p = k; - val = fabs(LU[k][k]) / d[k]; - for (i = k + 1; i < n; i++) - { - tmp = fabs(LU[i][k]) / d[i]; - if (tmp > val) - { - val = tmp; - p = i; - } - } - if (val == (T)0.0) - std::logic_error("Error in LU decomposition: matrix was singular"); - if (p > k) - { - ex = -ex; - std::swap(index[k], index[p]); - std::swap(d[k], d[p]); - for (j = 0; j < n; j++) - std::swap(LU[k][j], LU[p][j]); - } - - for (i = k + 1; i < n; i++) - { - LU[i][k] /= LU[k][k]; - for (j = k + 1; j < n; j++) - LU[i][j] -= LU[i][k] * LU[k][j]; - } - } - if (LU[n - 1][n - 1] == (T)0.0) - std::logic_error("Error in LU decomposition: matrix was singular"); - - return ex; -} - -template <typename T> -Vector<T> lu_solve(const Matrix<T>& LU, const Vector<T>& b, Vector<unsigned int>& index) -{ - if (LU.ncols() != LU.nrows()) - throw std::logic_error("Error in LU solve: LU matrix should be squared"); - unsigned int n = LU.ncols(); - if (b.size() != n) - throw std::logic_error("Error in LU solve: b vector must be of the same dimensions of LU matrix"); - Vector<T> x((T)0.0, n); - int i, j, p; - T sum; - - p = index[0]; - x[0] = b[p]; - - for (i = 1; i < n; i++) - { - sum = (T)0.0; - for (j = 0; j < i; j++) - sum += LU[i][j] * x[j]; - p = index[i]; - x[i] = b[p] - sum; - } - x[n - 1] /= LU[n - 1][n - 1]; - for (i = n - 2; i >= 0; i--) - { - sum = (T)0.0; - for (j = i + 1; j < n; j++) - sum += LU[i][j] * x[j]; - x[i] = (x[i] - sum) / LU[i][i]; - } - return x; -} - -template <typename T> -void lu_solve(const Matrix<T>& LU, Vector<T>& x, const Vector<T>& b, Vector<unsigned int>& index) -{ - x = lu_solve(LU, b, index); -} - -template <typename T> -Matrix<T> lu_inverse(const Matrix<T>& A) -{ - if (A.ncols() != A.nrows()) - throw std::logic_error("Error in LU invert: matrix must be squared"); - unsigned int n = A.ncols(); - Matrix<T> A1(n, n), LU; - Vector<unsigned int> index; - - lu(A, LU, index); - CanonicalBaseVector<T> e(0, n); - for (unsigned i = 0; i < n; i++) - { - e.reset(i); - A1.setColumn(i, lu_solve(LU, e, index)); - } - - return A1; -} - -template <typename T> -T lu_det(const Matrix<T>& A) -{ - if (A.ncols() != A.nrows()) - throw std::logic_error("Error in LU determinant: matrix must be squared"); - unsigned int d; - Matrix<T> LU; - Vector<unsigned int> index; - - d = lu(A, LU, index); - - return d * prod(LU.extractDiag()); -} - -template <typename T> -void cholesky(const Matrix<T> A, Matrix<T>& LL) -{ - if (A.ncols() != A.nrows()) - throw std::logic_error("Error in Cholesky decomposition: matrix must be squared"); - int n = A.ncols(); - double sum; - LL = A; - - for (unsigned int i = 0; i < n; i++) - { - for (unsigned int j = i; j < n; j++) - { - sum = LL[i][j]; - for (int k = i - 1; k >= 0; k--) - sum -= LL[i][k] * LL[j][k]; - if (i == j) - { - if (sum <= 0.0) - throw std::logic_error("Error in Cholesky decomposition: matrix is not postive definite"); - LL[i][i] = sqrt(sum); - } - else - LL[j][i] = sum / LL[i][i]; - } - for (unsigned int k = i + 1; k < n; k++) - LL[i][k] = LL[k][i]; - } -} - -template <typename T> -Matrix<T> cholesky(const Matrix<T> A) -{ - Matrix<T> LL; - cholesky(A, LL); - - return LL; -} - -template <typename T> -Vector<T> cholesky_solve(const Matrix<T>& LL, const Vector<T>& b) -{ - if (LL.ncols() != LL.nrows()) - throw std::logic_error("Error in Cholesky solve: matrix must be squared"); - unsigned int n = LL.ncols(); - if (b.size() != n) - throw std::logic_error("Error in Cholesky decomposition: b vector must be of the same dimensions of LU matrix"); - Vector<T> x, y; - - /* Solve L * y = b */ - forward_elimination(LL, y, b); - /* Solve L^T * x = y */ - backward_elimination(LL, x, y); - - return x; -} - -template <typename T> -void cholesky_solve(const Matrix<T>& LL, Vector<T>& x, const Vector<T>& b) -{ - x = cholesky_solve(LL, b); -} - -template <typename T> -void forward_elimination(const Matrix<T>& L, Vector<T>& y, const Vector<T> b) -{ - if (L.ncols() != L.nrows()) - throw std::logic_error("Error in Forward elimination: matrix must be squared (lower triangular)"); - if (b.size() != L.nrows()) - throw std::logic_error("Error in Forward elimination: b vector must be of the same dimensions of L matrix"); - unsigned int n = b.size(); - y.resize(n); - - y[0] = b[0] / L[0][0]; - for (unsigned int i = 1; i < n; i++) - { - y[i] = b[i]; - for (unsigned int j = 0; j < i; j++) - y[i] -= L[i][j] * y[j]; - y[i] = y[i] / L[i][i]; - } -} - -template <typename T> -Vector<T> forward_elimination(const Matrix<T>& L, const Vector<T> b) -{ - Vector<T> y; - forward_elimination(L, y, b); - - return y; -} - -template <typename T> -void backward_elimination(const Matrix<T>& U, Vector<T>& x, const Vector<T>& y) -{ - if (U.ncols() != U.nrows()) - throw std::logic_error("Error in Backward elimination: matrix must be squared (upper triangular)"); - if (y.size() != U.nrows()) - throw std::logic_error("Error in Backward elimination: b vector must be of the same dimensions of U matrix"); - int n = y.size(); - x.resize(n); - - x[n - 1] = y[n - 1] / U[n - 1][n - 1]; - for (int i = n - 2; i >= 0; i--) - { - x[i] = y[i]; - for (int j = i + 1; j < n; j++) - x[i] -= U[i][j] * x[j]; - x[i] = x[i] / U[i][i]; - } -} - -template <typename T> -Vector<T> backward_elimination(const Matrix<T>& U, const Vector<T> y) -{ - Vector<T> x; - forward_elimination(U, x, y); - - return x; -} - -/* Setting default linear systems machinery */ - -// #define det lu_det -// #define inverse lu_inverse -// #define solve lu_solve - -/* Random */ - -template <typename T> -void random(Matrix<T>& m) -{ - for (unsigned int i = 0; i < m.nrows(); i++) - for (unsigned int j = 0; j < m.ncols(); j++) - m[i][j] = (T)(rand() / double(RAND_MAX)); -} - -/** - Aggregate functions -*/ - -template <typename T> -Vector<T> sum(const Matrix<T>& m) -{ - Vector<T> tmp((T)0, m.ncols()); - for (unsigned int j = 0; j < m.ncols(); j++) - for (unsigned int i = 0; i < m.nrows(); i++) - tmp[j] += m[i][j]; - return tmp; -} - -template <typename T> -Vector<T> r_sum(const Matrix<T>& m) -{ - Vector<T> tmp((T)0, m.nrows()); - for (unsigned int i = 0; i < m.nrows(); i++) - for (unsigned int j = 0; j < m.ncols(); j++) - tmp[i] += m[i][j]; - return tmp; -} - -template <typename T> -T all_sum(const Matrix<T>& m) -{ - T tmp = (T)0; - for (unsigned int i = 0; i < m.nrows(); i++) - for (unsigned int j = 0; j < m.ncols(); j++) - tmp += m[i][j]; - return tmp; -} - -template <typename T> -Vector<T> prod(const Matrix<T>& m) -{ - Vector<T> tmp((T)1, m.ncols()); - for (unsigned int j = 0; j < m.ncols(); j++) - for (unsigned int i = 0; i < m.nrows(); i++) - tmp[j] *= m[i][j]; - return tmp; -} - -template <typename T> -Vector<T> r_prod(const Matrix<T>& m) -{ - Vector<T> tmp((T)1, m.nrows()); - for (unsigned int i = 0; i < m.nrows(); i++) - for (unsigned int j = 0; j < m.ncols(); j++) - tmp[i] *= m[i][j]; - return tmp; -} - -template <typename T> -T all_prod(const Matrix<T>& m) -{ - T tmp = (T)1; - for (unsigned int i = 0; i < m.nrows(); i++) - for (unsigned int j = 0; j < m.ncols(); j++) - tmp *= m[i][j]; - return tmp; -} - -template <typename T> -Vector<T> mean(const Matrix<T>& m) -{ - Vector<T> res((T)0, m.ncols()); - for (unsigned int j = 0; j < m.ncols(); j++) - { - for (unsigned int i = 0; i < m.nrows(); i++) - res[j] += m[i][j]; - res[j] /= m.nrows(); - } - - return res; -} - -template <typename T> -Vector<T> r_mean(const Matrix<T>& m) -{ - Vector<T> res((T)0, m.rows()); - for (unsigned int i = 0; i < m.nrows(); i++) - { - for (unsigned int j = 0; j < m.ncols(); j++) - res[i] += m[i][j]; - res[i] /= m.nrows(); - } - - return res; -} - -template <typename T> -T all_mean(const Matrix<T>& m) -{ - T tmp = (T)0; - for (unsigned int i = 0; i < m.nrows(); i++) - for (unsigned int j = 0; j < m.ncols(); j++) - tmp += m[i][j]; - return tmp / (m.nrows() * m.ncols()); -} - -template <typename T> -Vector<T> var(const Matrix<T>& m, bool sample_correction = false) -{ - Vector<T> res((T)0, m.ncols()); - unsigned int n = m.nrows(); - double sum, ssum; - for (unsigned int j = 0; j < m.ncols(); j++) - { - sum = (T)0.0; ssum = (T)0.0; - for (unsigned int i = 0; i < m.nrows(); i++) - { - sum += m[i][j]; - ssum += (m[i][j] * m[i][j]); - } - if (!sample_correction) - res[j] = (ssum / n) - (sum / n) * (sum / n); - else - res[j] = n * ((ssum / n) - (sum / n) * (sum / n)) / (n - 1); - } - - return res; -} - -template <typename T> -Vector<T> stdev(const Matrix<T>& m, bool sample_correction = false) -{ - return vec_sqrt(var(m, sample_correction)); -} - -template <typename T> -Vector<T> r_var(const Matrix<T>& m, bool sample_correction = false) -{ - Vector<T> res((T)0, m.nrows()); - double sum, ssum; - unsigned int n = m.ncols(); - for (unsigned int i = 0; i < m.nrows(); i++) - { - sum = 0.0; ssum = 0.0; - for (unsigned int j = 0; j < m.ncols(); j++) - { - sum += m[i][j]; - ssum += (m[i][j] * m[i][j]); - } - if (!sample_correction) - res[i] = (ssum / n) - (sum / n) * (sum / n); - else - res[i] = n * ((ssum / n) - (sum / n) * (sum / n)) / (n - 1); - } - - return res; -} - -template <typename T> -Vector<T> r_stdev(const Matrix<T>& m, bool sample_correction = false) -{ - return vec_sqrt(r_var(m, sample_correction)); -} - -template <typename T> -Vector<T> max(const Matrix<T>& m) -{ - Vector<T> res(m.ncols()); - double value; - for (unsigned int j = 0; j < m.ncols(); j++) - { - value = m[0][j]; - for (unsigned int i = 1; i < m.nrows(); i++) - value = std::max(m[i][j], value); - res[j] = value; - } - - return res; -} - -template <typename T> -Vector<T> r_max(const Matrix<T>& m) -{ - Vector<T> res(m.nrows()); - double value; - for (unsigned int i = 0; i < m.nrows(); i++) - { - value = m[i][0]; - for (unsigned int j = 1; j < m.ncols(); j++) - value = std::max(m[i][j], value); - res[i] = value; - } - - return res; -} - -template <typename T> -Vector<T> min(const Matrix<T>& m) -{ - Vector<T> res(m.ncols()); - double value; - for (unsigned int j = 0; j < m.ncols(); j++) - { - value = m[0][j]; - for (unsigned int i = 1; i < m.nrows(); i++) - value = std::min(m[i][j], value); - res[j] = value; - } - - return res; -} - -template <typename T> -Vector<T> r_min(const Matrix<T>& m) -{ - Vector<T> res(m.nrows()); - double value; - for (unsigned int i = 0; i < m.nrows(); i++) - { - value = m[i][0]; - for (unsigned int j = 1; j < m.ncols(); j++) - value = std::min(m[i][j], value); - res[i] = value; - } - - return res; -} - - - -/** - Single element mathematical functions -*/ - -template <typename T> -Matrix<T> exp(const Matrix<T>&m) -{ - Matrix<T> tmp(m.nrows(), m.ncols()); - - for (unsigned int i = 0; i < m.nrows(); i++) - for (unsigned int j = 0; j < m.ncols(); j++) - tmp[i][j] = exp(m[i][j]); - - return tmp; -} - -template <typename T> -Matrix<T> mat_sqrt(const Matrix<T>&m) -{ - Matrix<T> tmp(m.nrows(), m.ncols()); - - for (unsigned int i = 0; i < m.nrows(); i++) - for (unsigned int j = 0; j < m.ncols(); j++) - tmp[i][j] = sqrt(m[i][j]); - - return tmp; -} - -/** - Matrix operators -*/ - -template <typename T> -Matrix<T> kron(const Vector<T>& b, const Vector<T>& a) -{ - Matrix<T> tmp(b.size(), a.size()); - for (unsigned int i = 0; i < b.size(); i++) - for (unsigned int j = 0; j < a.size(); j++) - tmp[i][j] = a[j] * b[i]; - - return tmp; -} - -template <typename T> -Matrix<T> t(const Matrix<T>& a) -{ - Matrix<T> tmp(a.ncols(), a.nrows()); - for (unsigned int i = 0; i < a.nrows(); i++) - for (unsigned int j = 0; j < a.ncols(); j++) - tmp[j][i] = a[i][j]; - - return tmp; -} - -template <typename T> -Matrix<T> dot_prod(const Matrix<T>& a, const Matrix<T>& b) -{ - if (a.ncols() != b.nrows()) - throw std::logic_error("Error matrix dot product: dimensions of the matrices are not compatible"); - Matrix<T> tmp(a.nrows(), b.ncols()); - for (unsigned int i = 0; i < tmp.nrows(); i++) - for (unsigned int j = 0; j < tmp.ncols(); j++) - { - tmp[i][j] = (T)0; - for (unsigned int k = 0; k < a.ncols(); k++) - tmp[i][j] += a[i][k] * b[k][j]; - } - - return tmp; -} - -template <typename T> -Matrix<T> dot_prod(const Matrix<T>& a, const Vector<T>& b) -{ - if (a.ncols() != b.size()) - throw std::logic_error("Error matrix dot product: dimensions of the matrix and the vector are not compatible"); - Matrix<T> tmp(a.nrows(), 1); - for (unsigned int i = 0; i < tmp.nrows(); i++) - { - tmp[i][0] = (T)0; - for (unsigned int k = 0; k < a.ncols(); k++) - tmp[i][0] += a[i][k] * b[k]; - } - - return tmp; -} - -template <typename T> -Matrix<T> dot_prod(const Vector<T>& a, const Matrix<T>& b) -{ - if (a.size() != b.nrows()) - throw std::logic_error("Error matrix dot product: dimensions of the vector and matrix are not compatible"); - Matrix<T> tmp(1, b.ncols()); - for (unsigned int j = 0; j < tmp.ncols(); j++) - { - tmp[0][j] = (T)0; - for (unsigned int k = 0; k < a.size(); k++) - tmp[0][j] += a[k] * b[k][j]; - } - - return tmp; -} - -template <typename T> -inline Matrix<double> rank(const Matrix<T> m) -{ - Matrix<double> tmp(m.nrows(), m.ncols()); - for (unsigned int j = 0; j < m.ncols(); j++) - tmp.setColumn(j, rank<T>(m.extractColumn(j))); - - return tmp; -} - -template <typename T> -inline Matrix<double> r_rank(const Matrix<T> m) -{ - Matrix<double> tmp(m.nrows(), m.ncols()); - for (unsigned int i = 0; i < m.nrows(); i++) - tmp.setRow(i, rank<T>(m.extractRow(i))); - - return tmp; -} - -} // namespace quadprogpp - -#endif // define _ARRAY_HH_ +// $Id: Array.hh 249 2008-11-20 09:58:23Z schaerf $ +// This file is part of EasyLocalpp: a C++ Object-Oriented framework +// aimed at easing the development of Local Search algorithms. +// Copyright (C) 2001--2008 Andrea Schaerf, Luca Di Gaspero. +// +// This software may be modified and distributed under the terms +// of the MIT license. See the LICENSE file for details. + +#if !defined(_ARRAY_HH) +#define _ARRAY_HH + +#include <set> +#include <stdexcept> +#include <iostream> +#include <iomanip> +#include <cmath> +#include <cstdlib> + +namespace quadprogpp { + +enum MType { DIAG }; + +template <typename T> +class Vector +{ +public: + Vector(); + Vector(const unsigned int n); + Vector(const T& a, const unsigned int n); //initialize to constant value + Vector(const T* a, const unsigned int n); // Initialize to array + Vector(const Vector &rhs); // copy constructor + ~Vector(); // destructor + + inline void set(const T* a, const unsigned int n); + Vector<T> extract(const std::set<unsigned int>& indexes) const; + inline T& operator[](const unsigned int& i); //i-th element + inline const T& operator[](const unsigned int& i) const; + + inline unsigned int size() const; + inline void resize(const unsigned int n); + inline void resize(const T& a, const unsigned int n); + + Vector<T>& operator=(const Vector<T>& rhs); //assignment + Vector<T>& operator=(const T& a); //assign a to every element + inline Vector<T>& operator+=(const Vector<T>& rhs); + inline Vector<T>& operator-=(const Vector<T>& rhs); + inline Vector<T>& operator*=(const Vector<T>& rhs); + inline Vector<T>& operator/=(const Vector<T>& rhs); + inline Vector<T>& operator^=(const Vector<T>& rhs); + inline Vector<T>& operator+=(const T& a); + inline Vector<T>& operator-=(const T& a); + inline Vector<T>& operator*=(const T& a); + inline Vector<T>& operator/=(const T& a); + inline Vector<T>& operator^=(const T& a); +private: + unsigned int n; // size of array. upper index is n-1 + T* v; // storage for data +}; + +template <typename T> +Vector<T>::Vector() + : n(0), v(0) +{} + +template <typename T> +Vector<T>::Vector(const unsigned int n) + : v(new T[n]) +{ + this->n = n; +} + +template <typename T> +Vector<T>::Vector(const T& a, const unsigned int n) + : v(new T[n]) +{ + this->n = n; + for (unsigned int i = 0; i < n; i++) + v[i] = a; +} + +template <typename T> +Vector<T>::Vector(const T* a, const unsigned int n) + : v(new T[n]) +{ + this->n = n; + for (unsigned int i = 0; i < n; i++) + v[i] = *a++; +} + +template <typename T> +Vector<T>::Vector(const Vector<T>& rhs) + : v(new T[rhs.n]) +{ + this->n = rhs.n; + for (unsigned int i = 0; i < n; i++) + v[i] = rhs[i]; +} + +template <typename T> +Vector<T>::~Vector() +{ + if (v != 0) + delete[] (v); +} + +template <typename T> +void Vector<T>::resize(const unsigned int n) +{ + if (n == this->n) + return; + if (v != 0) + delete[] (v); + v = new T[n]; + this->n = n; +} + +template <typename T> +void Vector<T>::resize(const T& a, const unsigned int n) +{ + resize(n); + for (unsigned int i = 0; i < n; i++) + v[i] = a; +} + + +template <typename T> +inline Vector<T>& Vector<T>::operator=(const Vector<T>& rhs) +// postcondition: normal assignment via copying has been performed; +// if vector and rhs were different sizes, vector +// has been resized to match the size of rhs +{ + if (this != &rhs) + { + resize(rhs.n); + for (unsigned int i = 0; i < n; i++) + v[i] = rhs[i]; + } + return *this; +} + +template <typename T> +inline Vector<T> & Vector<T>::operator=(const T& a) //assign a to every element +{ + for (unsigned int i = 0; i < n; i++) + v[i] = a; + return *this; +} + +template <typename T> +inline T & Vector<T>::operator[](const unsigned int& i) //subscripting +{ + return v[i]; +} + +template <typename T> +inline const T& Vector<T>::operator[](const unsigned int& i) const //subscripting +{ + return v[i]; +} + +template <typename T> +inline unsigned int Vector<T>::size() const +{ + return n; +} + +template <typename T> +inline void Vector<T>::set(const T* a, unsigned int n) +{ + resize(n); + for (unsigned int i = 0; i < n; i++) + v[i] = a[i]; +} + +template <typename T> +inline Vector<T> Vector<T>::extract(const std::set<unsigned int>& indexes) const +{ + Vector<T> tmp(indexes.size()); + unsigned int i = 0; + + for (std::set<unsigned int>::const_iterator el = indexes.begin(); el != indexes.end(); el++) + { + if (*el >= n) + throw std::logic_error("Error extracting subvector: the indexes are out of vector bounds"); + tmp[i++] = v[*el]; + } + + return tmp; +} + +template <typename T> +inline Vector<T>& Vector<T>::operator+=(const Vector<T>& rhs) +{ + if (this->size() != rhs.size()) + throw std::logic_error("Operator+=: vectors have different sizes"); + for (unsigned int i = 0; i < n; i++) + v[i] += rhs[i]; + + return *this; +} + + +template <typename T> +inline Vector<T>& Vector<T>::operator+=(const T& a) +{ + for (unsigned int i = 0; i < n; i++) + v[i] += a; + + return *this; +} + +template <typename T> +inline Vector<T> operator+(const Vector<T>& rhs) +{ + return rhs; +} + +template <typename T> +inline Vector<T> operator+(const Vector<T>& lhs, const Vector<T>& rhs) +{ + if (lhs.size() != rhs.size()) + throw std::logic_error("Operator+: vectors have different sizes"); + Vector<T> tmp(lhs.size()); + for (unsigned int i = 0; i < lhs.size(); i++) + tmp[i] = lhs[i] + rhs[i]; + + return tmp; +} + +template <typename T> +inline Vector<T> operator+(const Vector<T>& lhs, const T& a) +{ + Vector<T> tmp(lhs.size()); + for (unsigned int i = 0; i < lhs.size(); i++) + tmp[i] = lhs[i] + a; + + return tmp; +} + +template <typename T> +inline Vector<T> operator+(const T& a, const Vector<T>& rhs) +{ + Vector<T> tmp(rhs.size()); + for (unsigned int i = 0; i < rhs.size(); i++) + tmp[i] = a + rhs[i]; + + return tmp; +} + +template <typename T> +inline Vector<T>& Vector<T>::operator-=(const Vector<T>& rhs) +{ + if (this->size() != rhs.size()) + throw std::logic_error("Operator-=: vectors have different sizes"); + for (unsigned int i = 0; i < n; i++) + v[i] -= rhs[i]; + + return *this; +} + + +template <typename T> +inline Vector<T>& Vector<T>::operator-=(const T& a) +{ + for (unsigned int i = 0; i < n; i++) + v[i] -= a; + + return *this; +} + +template <typename T> +inline Vector<T> operator-(const Vector<T>& rhs) +{ + return (T)(-1) * rhs; +} + +template <typename T> +inline Vector<T> operator-(const Vector<T>& lhs, const Vector<T>& rhs) +{ + if (lhs.size() != rhs.size()) + throw std::logic_error("Operator-: vectors have different sizes"); + Vector<T> tmp(lhs.size()); + for (unsigned int i = 0; i < lhs.size(); i++) + tmp[i] = lhs[i] - rhs[i]; + + return tmp; +} + +template <typename T> +inline Vector<T> operator-(const Vector<T>& lhs, const T& a) +{ + Vector<T> tmp(lhs.size()); + for (unsigned int i = 0; i < lhs.size(); i++) + tmp[i] = lhs[i] - a; + + return tmp; +} + +template <typename T> +inline Vector<T> operator-(const T& a, const Vector<T>& rhs) +{ + Vector<T> tmp(rhs.size()); + for (unsigned int i = 0; i < rhs.size(); i++) + tmp[i] = a - rhs[i]; + + return tmp; +} + +template <typename T> +inline Vector<T>& Vector<T>::operator*=(const Vector<T>& rhs) +{ + if (this->size() != rhs.size()) + throw std::logic_error("Operator*=: vectors have different sizes"); + for (unsigned int i = 0; i < n; i++) + v[i] *= rhs[i]; + + return *this; +} + + +template <typename T> +inline Vector<T>& Vector<T>::operator*=(const T& a) +{ + for (unsigned int i = 0; i < n; i++) + v[i] *= a; + + return *this; +} + +template <typename T> +inline Vector<T> operator*(const Vector<T>& lhs, const Vector<T>& rhs) +{ + if (lhs.size() != rhs.size()) + throw std::logic_error("Operator*: vectors have different sizes"); + Vector<T> tmp(lhs.size()); + for (unsigned int i = 0; i < lhs.size(); i++) + tmp[i] = lhs[i] * rhs[i]; + + return tmp; +} + +template <typename T> +inline Vector<T> operator*(const Vector<T>& lhs, const T& a) +{ + Vector<T> tmp(lhs.size()); + for (unsigned int i = 0; i < lhs.size(); i++) + tmp[i] = lhs[i] * a; + + return tmp; +} + +template <typename T> +inline Vector<T> operator*(const T& a, const Vector<T>& rhs) +{ + Vector<T> tmp(rhs.size()); + for (unsigned int i = 0; i < rhs.size(); i++) + tmp[i] = a * rhs[i]; + + return tmp; +} + +template <typename T> +inline Vector<T>& Vector<T>::operator/=(const Vector<T>& rhs) +{ + if (this->size() != rhs.size()) + throw std::logic_error("Operator/=: vectors have different sizes"); + for (unsigned int i = 0; i < n; i++) + v[i] /= rhs[i]; + + return *this; +} + + +template <typename T> +inline Vector<T>& Vector<T>::operator/=(const T& a) +{ + for (unsigned int i = 0; i < n; i++) + v[i] /= a; + + return *this; +} + +template <typename T> +inline Vector<T> operator/(const Vector<T>& lhs, const Vector<T>& rhs) +{ + if (lhs.size() != rhs.size()) + throw std::logic_error("Operator/: vectors have different sizes"); + Vector<T> tmp(lhs.size()); + for (unsigned int i = 0; i < lhs.size(); i++) + tmp[i] = lhs[i] / rhs[i]; + + return tmp; +} + +template <typename T> +inline Vector<T> operator/(const Vector<T>& lhs, const T& a) +{ + Vector<T> tmp(lhs.size()); + for (unsigned int i = 0; i < lhs.size(); i++) + tmp[i] = lhs[i] / a; + + return tmp; +} + +template <typename T> +inline Vector<T> operator/(const T& a, const Vector<T>& rhs) +{ + Vector<T> tmp(rhs.size()); + for (unsigned int i = 0; i < rhs.size(); i++) + tmp[i] = a / rhs[i]; + + return tmp; +} + +template <typename T> +inline Vector<T> operator^(const Vector<T>& lhs, const Vector<T>& rhs) +{ + if (lhs.size() != rhs.size()) + throw std::logic_error("Operator^: vectors have different sizes"); + Vector<T> tmp(lhs.size()); + for (unsigned int i = 0; i < lhs.size(); i++) + tmp[i] = pow(lhs[i], rhs[i]); + + return tmp; +} + +template <typename T> +inline Vector<T> operator^(const Vector<T>& lhs, const T& a) +{ + Vector<T> tmp(lhs.size()); + for (unsigned int i = 0; i < lhs.size(); i++) + tmp[i] = pow(lhs[i], a); + + return tmp; +} + +template <typename T> +inline Vector<T> operator^(const T& a, const Vector<T>& rhs) +{ + Vector<T> tmp(rhs.size()); + for (unsigned int i = 0; i < rhs.size(); i++) + tmp[i] = pow(a, rhs[i]); + + return tmp; +} + +template <typename T> +inline Vector<T>& Vector<T>::operator^=(const Vector<T>& rhs) +{ + if (this->size() != rhs.size()) + throw std::logic_error("Operator^=: vectors have different sizes"); + for (unsigned int i = 0; i < n; i++) + v[i] = pow(v[i], rhs[i]); + + return *this; +} + +template <typename T> +inline Vector<T>& Vector<T>::operator^=(const T& a) +{ + for (unsigned int i = 0; i < n; i++) + v[i] = pow(v[i], a); + + return *this; +} + +template <typename T> +inline bool operator==(const Vector<T>& v, const Vector<T>& w) +{ + if (v.size() != w.size()) + throw std::logic_error("Vectors of different size are not confrontable"); + for (unsigned i = 0; i < v.size(); i++) + if (v[i] != w[i]) + return false; + return true; +} + +template <typename T> +inline bool operator!=(const Vector<T>& v, const Vector<T>& w) +{ + if (v.size() != w.size()) + throw std::logic_error("Vectors of different size are not confrontable"); + for (unsigned i = 0; i < v.size(); i++) + if (v[i] != w[i]) + return true; + return false; +} + +template <typename T> +inline bool operator<(const Vector<T>& v, const Vector<T>& w) +{ + if (v.size() != w.size()) + throw std::logic_error("Vectors of different size are not confrontable"); + for (unsigned i = 0; i < v.size(); i++) + if (v[i] >= w[i]) + return false; + return true; +} + +template <typename T> +inline bool operator<=(const Vector<T>& v, const Vector<T>& w) +{ + if (v.size() != w.size()) + throw std::logic_error("Vectors of different size are not confrontable"); + for (unsigned i = 0; i < v.size(); i++) + if (v[i] > w[i]) + return false; + return true; +} + +template <typename T> +inline bool operator>(const Vector<T>& v, const Vector<T>& w) +{ + if (v.size() != w.size()) + throw std::logic_error("Vectors of different size are not confrontable"); + for (unsigned i = 0; i < v.size(); i++) + if (v[i] <= w[i]) + return false; + return true; +} + +template <typename T> +inline bool operator>=(const Vector<T>& v, const Vector<T>& w) +{ + if (v.size() != w.size()) + throw std::logic_error("Vectors of different size are not confrontable"); + for (unsigned i = 0; i < v.size(); i++) + if (v[i] < w[i]) + return false; + return true; +} + +/** + Input/Output +*/ +template <typename T> +inline std::ostream& operator<<(std::ostream& os, const Vector<T>& v) +{ + os << std::endl << v.size() << std::endl; + for (unsigned int i = 0; i < v.size() - 1; i++) + os << std::setw(20) << std::setprecision(16) << v[i] << ", "; + os << std::setw(20) << std::setprecision(16) << v[v.size() - 1] << std::endl; + + return os; +} + +template <typename T> +std::istream& operator>>(std::istream& is, Vector<T>& v) +{ + int elements; + char comma; + is >> elements; + v.resize(elements); + for (unsigned int i = 0; i < elements; i++) + is >> v[i] >> comma; + + return is; +} + +/** + Index utilities +*/ + +std::set<unsigned int> seq(unsigned int s, unsigned int e); + +std::set<unsigned int> singleton(unsigned int i); + +template <typename T> +class CanonicalBaseVector : public Vector<T> +{ +public: + CanonicalBaseVector(unsigned int i, unsigned int n); + inline void reset(unsigned int i); +private: + unsigned int e; +}; + +template <typename T> +CanonicalBaseVector<T>::CanonicalBaseVector(unsigned int i, unsigned int n) + : Vector<T>((T)0, n), e(i) +{ (*this)[e] = (T)1; } + +template <typename T> +inline void CanonicalBaseVector<T>::reset(unsigned int i) +{ + (*this)[e] = (T)0; + e = i; + (*this)[e] = (T)1; +} + +#include <stdexcept> + +template <typename T> +inline T sum(const Vector<T>& v) +{ + T tmp = (T)0; + for (unsigned int i = 0; i < v.size(); i++) + tmp += v[i]; + + return tmp; +} + +template <typename T> +inline T prod(const Vector<T>& v) +{ + T tmp = (T)1; + for (unsigned int i = 0; i < v.size(); i++) + tmp *= v[i]; + + return tmp; +} + +template <typename T> +inline T mean(const Vector<T>& v) +{ + T sum = (T)0; + for (unsigned int i = 0; i < v.size(); i++) + sum += v[i]; + return sum / v.size(); +} + +template <typename T> +inline T median(const Vector<T>& v) +{ + Vector<T> tmp = sort(v); + if (v.size() % 2 == 1) // it is an odd-sized vector + return tmp[v.size() / 2]; + else + return 0.5 * (tmp[v.size() / 2 - 1] + tmp[v.size() / 2]); +} + +template <typename T> +inline T stdev(const Vector<T>& v, bool sample_correction = false) +{ + return sqrt(var(v, sample_correction)); +} + +template <typename T> +inline T var(const Vector<T>& v, bool sample_correction = false) +{ + T sum = (T)0, ssum = (T)0; + unsigned int n = v.size(); + for (unsigned int i = 0; i < n; i++) + { + sum += v[i]; + ssum += (v[i] * v[i]); + } + if (!sample_correction) + return (ssum / n) - (sum / n) * (sum / n); + else + return n * ((ssum / n) - (sum / n) * (sum / n)) / (n - 1); +} + +template <typename T> +inline T max(const Vector<T>& v) +{ + T value = v[0]; + for (unsigned int i = 1; i < v.size(); i++) + value = std::max(v[i], value); + + return value; +} + +template <typename T> +inline T min(const Vector<T>& v) +{ + T value = v[0]; + for (unsigned int i = 1; i < v.size(); i++) + value = std::min(v[i], value); + + return value; +} + +template <typename T> +inline unsigned int index_max(const Vector<T>& v) +{ + unsigned int max = 0; + for (unsigned int i = 1; i < v.size(); i++) + if (v[i] > v[max]) + max = i; + + return max; +} + +template <typename T> +inline unsigned int index_min(const Vector<T>& v) +{ + unsigned int min = 0; + for (unsigned int i = 1; i < v.size(); i++) + if (v[i] < v[min]) + min = i; + + return min; +} + + +template <typename T> +inline T dot_prod(const Vector<T>& a, const Vector<T>& b) +{ + T sum = (T)0; + if (a.size() != b.size()) + throw std::logic_error("Dotprod error: the vectors are not the same size"); + for (unsigned int i = 0; i < a.size(); i++) + sum += a[i] * b[i]; + + return sum; +} + +/** + Single element mathematical functions +*/ + +template <typename T> +inline Vector<T> exp(const Vector<T>& v) +{ + Vector<T> tmp(v.size()); + for (unsigned int i = 0; i < v.size(); i++) + tmp[i] = exp(v[i]); + + return tmp; +} + +template <typename T> +inline Vector<T> log(const Vector<T>& v) +{ + Vector<T> tmp(v.size()); + for (unsigned int i = 0; i < v.size(); i++) + tmp[i] = log(v[i]); + + return tmp; +} + +template <typename T> +inline Vector<T> vec_sqrt(const Vector<T>& v) +{ + Vector<T> tmp(v.size()); + for (unsigned int i = 0; i < v.size(); i++) + tmp[i] = sqrt(v[i]); + + return tmp; +} + +template <typename T> +inline Vector<T> pow(const Vector<T>& v, double a) +{ + Vector<T> tmp(v.size()); + for (unsigned int i = 0; i < v.size(); i++) + tmp[i] = pow(v[i], a); + + return tmp; +} + +template <typename T> +inline Vector<T> abs(const Vector<T>& v) +{ + Vector<T> tmp(v.size()); + for (unsigned int i = 0; i < v.size(); i++) + tmp[i] = (T)fabs(v[i]); + + return tmp; +} + +template <typename T> +inline Vector<T> sign(const Vector<T>& v) +{ + Vector<T> tmp(v.size()); + for (unsigned int i = 0; i < v.size(); i++) + tmp[i] = v[i] > 0 ? +1 : v[i] == 0 ? 0 : -1; + + return tmp; +} + +template <typename T> +inline unsigned int partition(Vector<T>& v, unsigned int begin, unsigned int end) +{ + unsigned int i = begin + 1, j = begin + 1; + T pivot = v[begin]; + while (j <= end) + { + if (v[j] < pivot) { + std::swap(v[i], v[j]); + i++; + } + j++; + } + v[begin] = v[i - 1]; + v[i - 1] = pivot; + return i - 2; +} + + +template <typename T> +inline void quicksort(Vector<T>& v, unsigned int begin, unsigned int end) +{ + if (end > begin) + { + unsigned int index = partition(v, begin, end); + quicksort(v, begin, index); + quicksort(v, index + 2, end); + } +} + +template <typename T> +inline Vector<T> sort(const Vector<T>& v) +{ + Vector<T> tmp(v); + + quicksort<T>(tmp, 0, tmp.size() - 1); + + return tmp; +} + +template <typename T> +inline Vector<double> rank(const Vector<T>& v) +{ + Vector<T> tmp(v); + Vector<double> tmp_rank(0.0, v.size()); + + for (unsigned int i = 0; i < tmp.size(); i++) + { + unsigned int smaller = 0, equal = 0; + for (unsigned int j = 0; j < tmp.size(); j++) + if (i == j) + continue; + else + if (tmp[j] < tmp[i]) + smaller++; + else if (tmp[j] == tmp[i]) + equal++; + tmp_rank[i] = smaller + 1; + if (equal > 0) + { + for (unsigned int j = 1; j <= equal; j++) + tmp_rank[i] += smaller + 1 + j; + tmp_rank[i] /= (double)(equal + 1); + } + } + + return tmp_rank; +} + +//enum MType { DIAG }; + +template <typename T> +class Matrix +{ +public: + Matrix(); // Default constructor + Matrix(const unsigned int n, const unsigned int m); // Construct a n x m matrix + Matrix(const T& a, const unsigned int n, const unsigned int m); // Initialize the content to constant a + Matrix(MType t, const T& a, const T& o, const unsigned int n, const unsigned int m); + Matrix(MType t, const Vector<T>& v, const T& o, const unsigned int n, const unsigned int m); + Matrix(const T* a, const unsigned int n, const unsigned int m); // Initialize to array + Matrix(const Matrix<T>& rhs); // Copy constructor + ~Matrix(); // destructor + + inline T* operator[](const unsigned int& i) { return v[i]; } // Subscripting: row i + inline const T* operator[](const unsigned int& i) const { return v[i]; }; // const subsctipting + + inline void resize(const unsigned int n, const unsigned int m); + inline void resize(const T& a, const unsigned int n, const unsigned int m); + + + inline Vector<T> extractRow(const unsigned int i) const; + inline Vector<T> extractColumn(const unsigned int j) const; + inline Vector<T> extractDiag() const; + inline Matrix<T> extractRows(const std::set<unsigned int>& indexes) const; + inline Matrix<T> extractColumns(const std::set<unsigned int>& indexes) const; + inline Matrix<T> extract(const std::set<unsigned int>& r_indexes, const std::set<unsigned int>& c_indexes) const; + + inline void set(const T* a, unsigned int n, unsigned int m); + inline void set(const std::set<unsigned int>& r_indexes, const std::set<unsigned int>& c_indexes, const Matrix<T>& m); + inline void setRow(const unsigned int index, const Vector<T>& v); + inline void setRow(const unsigned int index, const Matrix<T>& v); + inline void setRows(const std::set<unsigned int>& indexes, const Matrix<T>& m); + inline void setColumn(const unsigned int index, const Vector<T>& v); + inline void setColumn(const unsigned int index, const Matrix<T>& v); + inline void setColumns(const std::set<unsigned int>& indexes, const Matrix<T>& m); + + + inline unsigned int nrows() const { return n; } // number of rows + inline unsigned int ncols() const { return m; } // number of columns + + inline Matrix<T>& operator=(const Matrix<T>& rhs); // Assignment operator + inline Matrix<T>& operator=(const T& a); // Assign to every element value a + inline Matrix<T>& operator+=(const Matrix<T>& rhs); + inline Matrix<T>& operator-=(const Matrix<T>& rhs); + inline Matrix<T>& operator*=(const Matrix<T>& rhs); + inline Matrix<T>& operator/=(const Matrix<T>& rhs); + inline Matrix<T>& operator^=(const Matrix<T>& rhs); + inline Matrix<T>& operator+=(const T& a); + inline Matrix<T>& operator-=(const T& a); + inline Matrix<T>& operator*=(const T& a); + inline Matrix<T>& operator/=(const T& a); + inline Matrix<T>& operator^=(const T& a); + inline operator Vector<T>(); +private: + unsigned int n; // number of rows + unsigned int m; // number of columns + T **v; // storage for data +}; + +template <typename T> +Matrix<T>::Matrix() + : n(0), m(0), v(0) +{} + +template <typename T> +Matrix<T>::Matrix(unsigned int n, unsigned int m) + : v(new T*[n]) +{ + this->n = n; this->m = m; + v[0] = new T[m * n]; + for (unsigned int i = 1; i < n; i++) + v[i] = v[i - 1] + m; +} + +template <typename T> +Matrix<T>::Matrix(const T& a, unsigned int n, unsigned int m) + : v(new T*[n]) +{ + this->n = n; this->m = m; + v[0] = new T[m * n]; + for (unsigned int i = 1; i < n; i++) + v[i] = v[i - 1] + m; + for (unsigned int i = 0; i < n; i++) + for (unsigned int j = 0; j < m; j++) + v[i][j] = a; +} + +template <class T> +Matrix<T>::Matrix(const T* a, unsigned int n, unsigned int m) + : v(new T*[n]) +{ + this->n = n; this->m = m; + v[0] = new T[m * n]; + for (unsigned int i = 1; i < n; i++) + v[i] = v[i - 1] + m; + for (unsigned int i = 0; i < n; i++) + for (unsigned int j = 0; j < m; j++) + v[i][j] = *a++; +} + +template <class T> +Matrix<T>::Matrix(MType t, const T& a, const T& o, unsigned int n, unsigned int m) + : v(new T*[n]) +{ + this->n = n; this->m = m; + v[0] = new T[m * n]; + for (unsigned int i = 1; i < n; i++) + v[i] = v[i - 1] + m; + switch (t) + { + case DIAG: + for (unsigned int i = 0; i < n; i++) + for (unsigned int j = 0; j < m; j++) + if (i != j) + v[i][j] = o; + else + v[i][j] = a; + break; + default: + throw std::logic_error("Matrix type not supported"); + } +} + +template <class T> +Matrix<T>::Matrix(MType t, const Vector<T>& a, const T& o, unsigned int n, unsigned int m) + : v(new T*[n]) +{ + this->n = n; this->m = m; + v[0] = new T[m * n]; + for (unsigned int i = 1; i < n; i++) + v[i] = v[i - 1] + m; + switch (t) + { + case DIAG: + for (unsigned int i = 0; i < n; i++) + for (unsigned int j = 0; j < m; j++) + if (i != j) + v[i][j] = o; + else + v[i][j] = a[i]; + break; + default: + throw std::logic_error("Matrix type not supported"); + } +} + +template <typename T> +Matrix<T>::Matrix(const Matrix<T>& rhs) + : v(new T*[rhs.n]) +{ + n = rhs.n; m = rhs.m; + v[0] = new T[m * n]; + for (unsigned int i = 1; i < n; i++) + v[i] = v[i - 1] + m; + for (unsigned int i = 0; i < n; i++) + for (unsigned int j = 0; j < m; j++) + v[i][j] = rhs[i][j]; +} + +template <typename T> +Matrix<T>::~Matrix() +{ + if (v != 0) { + delete[] (v[0]); + delete[] (v); + } +} + +template <typename T> +inline Matrix<T>& Matrix<T>::operator=(const Matrix<T> &rhs) +// postcondition: normal assignment via copying has been performed; +// if matrix and rhs were different sizes, matrix +// has been resized to match the size of rhs +{ + if (this != &rhs) + { + resize(rhs.n, rhs.m); + for (unsigned int i = 0; i < n; i++) + for (unsigned int j = 0; j < m; j++) + v[i][j] = rhs[i][j]; + } + return *this; +} + +template <typename T> +inline Matrix<T>& Matrix<T>::operator=(const T& a) // assign a to every element +{ + for (unsigned int i = 0; i < n; i++) + for (unsigned int j = 0; j < m; j++) + v[i][j] = a; + return *this; +} + + +template <typename T> +inline void Matrix<T>::resize(const unsigned int n, const unsigned int m) +{ + if (n == this->n && m == this->m) + return; + if (v != 0) + { + delete[] (v[0]); + delete[] (v); + } + this->n = n; this->m = m; + v = new T*[n]; + v[0] = new T[m * n]; + for (unsigned int i = 1; i < n; i++) + v[i] = v[i - 1] + m; +} + +template <typename T> +inline void Matrix<T>::resize(const T& a, const unsigned int n, const unsigned int m) +{ + resize(n, m); + for (unsigned int i = 0; i < n; i++) + for (unsigned int j = 0; j < m; j++) + v[i][j] = a; +} + + + +template <typename T> +inline Vector<T> Matrix<T>::extractRow(const unsigned int i) const +{ + if (i >= n) + throw std::logic_error("Error in extractRow: trying to extract a row out of matrix bounds"); + Vector<T> tmp(v[i], m); + + return tmp; +} + +template <typename T> +inline Vector<T> Matrix<T>::extractColumn(const unsigned int j) const +{ + if (j >= m) + throw std::logic_error("Error in extractRow: trying to extract a row out of matrix bounds"); + Vector<T> tmp(n); + + for (unsigned int i = 0; i < n; i++) + tmp[i] = v[i][j]; + + return tmp; +} + +template <typename T> +inline Vector<T> Matrix<T>::extractDiag() const +{ + unsigned int d = std::min(n, m); + + Vector<T> tmp(d); + + for (unsigned int i = 0; i < d; i++) + tmp[i] = v[i][i]; + + return tmp; + +} + +template <typename T> +inline Matrix<T> Matrix<T>::extractRows(const std::set<unsigned int>& indexes) const +{ + Matrix<T> tmp(indexes.size(), m); + unsigned int i = 0; + + for (std::set<unsigned int>::const_iterator el = indexes.begin(); el != indexes.end(); el++) + { + for (unsigned int j = 0; j < m; j++) + { + if (*el >= n) + throw std::logic_error("Error extracting rows: the indexes are out of matrix bounds"); + tmp[i][j] = v[*el][j]; + } + i++; + } + + return tmp; +} + +template <typename T> +inline Matrix<T> Matrix<T>::extractColumns(const std::set<unsigned int>& indexes) const +{ + Matrix<T> tmp(n, indexes.size()); + unsigned int j = 0; + + for (std::set<unsigned int>::const_iterator el = indexes.begin(); el != indexes.end(); el++) + { + for (unsigned int i = 0; i < n; i++) + { + if (*el >= m) + throw std::logic_error("Error extracting columns: the indexes are out of matrix bounds"); + tmp[i][j] = v[i][*el]; + } + j++; + } + + return tmp; +} + +template <typename T> +inline Matrix<T> Matrix<T>::extract(const std::set<unsigned int>& r_indexes, const std::set<unsigned int>& c_indexes) const +{ + Matrix<T> tmp(r_indexes.size(), c_indexes.size()); + unsigned int i = 0, j; + + for (std::set<unsigned int>::const_iterator r_el = r_indexes.begin(); r_el != r_indexes.end(); r_el++) + { + if (*r_el >= n) + throw std::logic_error("Error extracting submatrix: the indexes are out of matrix bounds"); + j = 0; + for (std::set<unsigned int>::const_iterator c_el = c_indexes.begin(); c_el != c_indexes.end(); c_el++) + { + if (*c_el >= m) + throw std::logic_error("Error extracting rows: the indexes are out of matrix bounds"); + tmp[i][j] = v[*r_el][*c_el]; + j++; + } + i++; + } + + return tmp; +} + +template <typename T> +inline void Matrix<T>::setRow(unsigned int i, const Vector<T>& a) +{ + if (i >= n) + throw std::logic_error("Error in setRow: trying to set a row out of matrix bounds"); + if (this->m != a.size()) + throw std::logic_error("Error setting matrix row: ranges are not compatible"); + for (unsigned int j = 0; j < ncols(); j++) + v[i][j] = a[j]; +} + +template <typename T> +inline void Matrix<T>::setRow(unsigned int i, const Matrix<T>& a) +{ + if (i >= n) + throw std::logic_error("Error in setRow: trying to set a row out of matrix bounds"); + if (this->m != a.ncols()) + throw std::logic_error("Error setting matrix column: ranges are not compatible"); + if (a.nrows() != 1) + throw std::logic_error("Error setting matrix column with a non-row matrix"); + for (unsigned int j = 0; j < ncols(); j++) + v[i][j] = a[0][j]; +} + +template <typename T> +inline void Matrix<T>::setRows(const std::set<unsigned int>& indexes, const Matrix<T>& m) +{ + unsigned int i = 0; + + if (indexes.size() != m.nrows() || this->m != m.ncols()) + throw std::logic_error("Error setting matrix rows: ranges are not compatible"); + for (std::set<unsigned int>::const_iterator el = indexes.begin(); el != indexes.end(); el++) + { + for (unsigned int j = 0; j < ncols(); j++) + { + if (*el >= n) + throw std::logic_error("Error in setRows: trying to set a row out of matrix bounds"); + v[*el][j] = m[i][j]; + } + i++; + } +} + +template <typename T> +inline void Matrix<T>::setColumn(unsigned int j, const Vector<T>& a) +{ + if (j >= m) + throw std::logic_error("Error in setColumn: trying to set a column out of matrix bounds"); + if (this->n != a.size()) + throw std::logic_error("Error setting matrix column: ranges are not compatible"); + for (unsigned int i = 0; i < nrows(); i++) + v[i][j] = a[i]; +} + +template <typename T> +inline void Matrix<T>::setColumn(unsigned int j, const Matrix<T>& a) +{ + if (j >= m) + throw std::logic_error("Error in setColumn: trying to set a column out of matrix bounds"); + if (this->n != a.nrows()) + throw std::logic_error("Error setting matrix column: ranges are not compatible"); + if (a.ncols() != 1) + throw std::logic_error("Error setting matrix column with a non-column matrix"); + for (unsigned int i = 0; i < nrows(); i++) + v[i][j] = a[i][0]; +} + + +template <typename T> +inline void Matrix<T>::setColumns(const std::set<unsigned int>& indexes, const Matrix<T>& a) +{ + unsigned int j = 0; + + if (indexes.size() != a.ncols() || this->n != a.nrows()) + throw std::logic_error("Error setting matrix columns: ranges are not compatible"); + for (std::set<unsigned int>::const_iterator el = indexes.begin(); el != indexes.end(); el++) + { + for (unsigned int i = 0; i < nrows(); i++) + { + if (*el >= m) + throw std::logic_error("Error in setColumns: trying to set a column out of matrix bounds"); + v[i][*el] = a[i][j]; + } + j++; + } +} + +template <typename T> +inline void Matrix<T>::set(const std::set<unsigned int>& r_indexes, const std::set<unsigned int>& c_indexes, const Matrix<T>& a) +{ + unsigned int i = 0, j; + if (c_indexes.size() != a.ncols() || r_indexes.size() != a.nrows()) + throw std::logic_error("Error setting matrix elements: ranges are not compatible"); + + for (std::set<unsigned int>::const_iterator r_el = r_indexes.begin(); r_el != r_indexes.end(); r_el++) + { + if (*r_el >= n) + throw std::logic_error("Error in set: trying to set a row out of matrix bounds"); + j = 0; + for (std::set<unsigned int>::const_iterator c_el = c_indexes.begin(); c_el != c_indexes.end(); c_el++) + { + if (*c_el >= m) + throw std::logic_error("Error in set: trying to set a column out of matrix bounds"); + v[*r_el][*c_el] = a[i][j]; + j++; + } + i++; + } +} + +template <typename T> +inline void Matrix<T>::set(const T* a, unsigned int n, unsigned int m) +{ + if (this->n != n || this->m != m) + resize(n, m); + unsigned int k = 0; + for (unsigned int i = 0; i < n; i++) + for (unsigned int j = 0; j < m; j++) + v[i][j] = a[k++]; +} + + +template <typename T> +Matrix<T> operator+(const Matrix<T>& rhs) +{ + return rhs; +} + +template <typename T> +Matrix<T> operator+(const Matrix<T>& lhs, const Matrix<T>& rhs) +{ + if (lhs.ncols() != rhs.ncols() || lhs.nrows() != rhs.nrows()) + throw std::logic_error("Operator+: matrices have different sizes"); + Matrix<T> tmp(lhs.nrows(), lhs.ncols()); + for (unsigned int i = 0; i < lhs.nrows(); i++) + for (unsigned int j = 0; j < lhs.ncols(); j++) + tmp[i][j] = lhs[i][j] + rhs[i][j]; + + return tmp; +} + +template <typename T> +Matrix<T> operator+(const Matrix<T>& lhs, const T& a) +{ + Matrix<T> tmp(lhs.nrows(), lhs.ncols()); + for (unsigned int i = 0; i < lhs.nrows(); i++) + for (unsigned int j = 0; j < lhs.ncols(); j++) + tmp[i][j] = lhs[i][j] + a; + + return tmp; +} + +template <typename T> +Matrix<T> operator+(const T& a, const Matrix<T>& rhs) +{ + Matrix<T> tmp(rhs.nrows(), rhs.ncols()); + for (unsigned int i = 0; i < rhs.nrows(); i++) + for (unsigned int j = 0; j < rhs.ncols(); j++) + tmp[i][j] = a + rhs[i][j]; + + return tmp; +} + +template <typename T> +inline Matrix<T>& Matrix<T>::operator+=(const Matrix<T>& rhs) +{ + if (m != rhs.ncols() || n != rhs.nrows()) + throw std::logic_error("Operator+=: matrices have different sizes"); + for (unsigned int i = 0; i < n; i++) + for (unsigned int j = 0; j < m; j++) + v[i][j] += rhs[i][j]; + + return *this; +} + +template <typename T> +inline Matrix<T>& Matrix<T>::operator+=(const T& a) +{ + for (unsigned int i = 0; i < n; i++) + for (unsigned int j = 0; j < m; j++) + v[i][j] += a; + + return *this; +} + +template <typename T> +Matrix<T> operator-(const Matrix<T>& rhs) +{ + return (T)(-1) * rhs; +} + +template <typename T> +Matrix<T> operator-(const Matrix<T>& lhs, const Matrix<T>& rhs) +{ + if (lhs.ncols() != rhs.ncols() || lhs.nrows() != rhs.nrows()) + throw std::logic_error("Operator-: matrices have different sizes"); + Matrix<T> tmp(lhs.nrows(), lhs.ncols()); + for (unsigned int i = 0; i < lhs.nrows(); i++) + for (unsigned int j = 0; j < lhs.ncols(); j++) + tmp[i][j] = lhs[i][j] - rhs[i][j]; + + return tmp; +} + +template <typename T> +Matrix<T> operator-(const Matrix<T>& lhs, const T& a) +{ + Matrix<T> tmp(lhs.nrows(), lhs.ncols()); + for (unsigned int i = 0; i < lhs.nrows(); i++) + for (unsigned int j = 0; j < lhs.ncols(); j++) + tmp[i][j] = lhs[i][j] - a; + + return tmp; +} + +template <typename T> +Matrix<T> operator-(const T& a, const Matrix<T>& rhs) +{ + Matrix<T> tmp(rhs.nrows(), rhs.ncols()); + for (unsigned int i = 0; i < rhs.nrows(); i++) + for (unsigned int j = 0; j < rhs.ncols(); j++) + tmp[i][j] = a - rhs[i][j]; + + return tmp; +} + +template <typename T> +inline Matrix<T>& Matrix<T>::operator-=(const Matrix<T>& rhs) +{ + if (m != rhs.ncols() || n != rhs.nrows()) + throw std::logic_error("Operator-=: matrices have different sizes"); + for (unsigned int i = 0; i < n; i++) + for (unsigned int j = 0; j < m; j++) + v[i][j] -= rhs[i][j]; + + return *this; +} + +template <typename T> +inline Matrix<T>& Matrix<T>::operator-=(const T& a) +{ + for (unsigned int i = 0; i < n; i++) + for (unsigned int j = 0; j < m; j++) + v[i][j] -= a; + + return *this; +} + +template <typename T> +Matrix<T> operator*(const Matrix<T>& lhs, const Matrix<T>& rhs) +{ + if (lhs.ncols() != rhs.ncols() || lhs.nrows() != rhs.nrows()) + throw std::logic_error("Operator*: matrices have different sizes"); + Matrix<T> tmp(lhs.nrows(), lhs.ncols()); + for (unsigned int i = 0; i < lhs.nrows(); i++) + for (unsigned int j = 0; j < lhs.ncols(); j++) + tmp[i][j] = lhs[i][j] * rhs[i][j]; + + return tmp; +} + +template <typename T> +Matrix<T> operator*(const Matrix<T>& lhs, const T& a) +{ + Matrix<T> tmp(lhs.nrows(), lhs.ncols()); + for (unsigned int i = 0; i < lhs.nrows(); i++) + for (unsigned int j = 0; j < lhs.ncols(); j++) + tmp[i][j] = lhs[i][j] * a; + + return tmp; +} + +template <typename T> +Matrix<T> operator*(const T& a, const Matrix<T>& rhs) +{ + Matrix<T> tmp(rhs.nrows(), rhs.ncols()); + for (unsigned int i = 0; i < rhs.nrows(); i++) + for (unsigned int j = 0; j < rhs.ncols(); j++) + tmp[i][j] = a * rhs[i][j]; + + return tmp; +} + +template <typename T> +inline Matrix<T>& Matrix<T>::operator*=(const Matrix<T>& rhs) +{ + if (m != rhs.ncols() || n != rhs.nrows()) + throw std::logic_error("Operator*=: matrices have different sizes"); + for (unsigned int i = 0; i < n; i++) + for (unsigned int j = 0; j < m; j++) + v[i][j] *= rhs[i][j]; + + return *this; +} + +template <typename T> +inline Matrix<T>& Matrix<T>::operator*=(const T& a) +{ + for (unsigned int i = 0; i < n; i++) + for (unsigned int j = 0; j < m; j++) + v[i][j] *= a; + + return *this; +} + +template <typename T> +Matrix<T> operator/(const Matrix<T>& lhs, const Matrix<T>& rhs) +{ + if (lhs.ncols() != rhs.ncols() || lhs.nrows() != rhs.nrows()) + throw std::logic_error("Operator+: matrices have different sizes"); + Matrix<T> tmp(lhs.nrows(), lhs.ncols()); + for (unsigned int i = 0; i < lhs.nrows(); i++) + for (unsigned int j = 0; j < lhs.ncols(); j++) + tmp[i][j] = lhs[i][j] / rhs[i][j]; + + return tmp; +} + +template <typename T> +Matrix<T> operator/(const Matrix<T>& lhs, const T& a) +{ + Matrix<T> tmp(lhs.nrows(), lhs.ncols()); + for (unsigned int i = 0; i < lhs.nrows(); i++) + for (unsigned int j = 0; j < lhs.ncols(); j++) + tmp[i][j] = lhs[i][j] / a; + + return tmp; +} + +template <typename T> +Matrix<T> operator/(const T& a, const Matrix<T>& rhs) +{ + Matrix<T> tmp(rhs.nrows(), rhs.ncols()); + for (unsigned int i = 0; i < rhs.nrows(); i++) + for (unsigned int j = 0; j < rhs.ncols(); j++) + tmp[i][j] = a / rhs[i][j]; + + return tmp; +} + +template <typename T> +inline Matrix<T>& Matrix<T>::operator/=(const Matrix<T>& rhs) +{ + if (m != rhs.ncols() || n != rhs.nrows()) + throw std::logic_error("Operator+=: matrices have different sizes"); + for (unsigned int i = 0; i < n; i++) + for (unsigned int j = 0; j < m; j++) + v[i][j] /= rhs[i][j]; + + return *this; +} + +template <typename T> +inline Matrix<T>& Matrix<T>::operator/=(const T& a) +{ + for (unsigned int i = 0; i < n; i++) + for (unsigned int j = 0; j < m; j++) + v[i][j] /= a; + + return *this; +} + +template <typename T> +Matrix<T> operator^(const Matrix<T>& lhs, const T& a) +{ + Matrix<T> tmp(lhs.nrows(), lhs.ncols()); + for (unsigned int i = 0; i < lhs.nrows(); i++) + for (unsigned int j = 0; j < lhs.ncols(); j++) + tmp[i][j] = pow(lhs[i][j], a); + + return tmp; +} + +template <typename T> +inline Matrix<T>& Matrix<T>::operator^=(const Matrix<T>& rhs) +{ + if (m != rhs.ncols() || n != rhs.nrows()) + throw std::logic_error("Operator^=: matrices have different sizes"); + for (unsigned int i = 0; i < n; i++) + for (unsigned int j = 0; j < m; j++) + v[i][j] = pow(v[i][j], rhs[i][j]); + + return *this; +} + + +template <typename T> +inline Matrix<T>& Matrix<T>::operator^=(const T& a) +{ + for (unsigned int i = 0; i < n; i++) + for (unsigned int j = 0; j < m; j++) + v[i][j] = pow(v[i][j], a); + + return *this; +} + +template <typename T> +inline Matrix<T>::operator Vector<T>() +{ + if (n > 1 && m > 1) + throw std::logic_error("Error matrix cast to vector: trying to cast a multi-dimensional matrix"); + if (n == 1) + return extractRow(0); + else + return extractColumn(0); +} + +template <typename T> +inline bool operator==(const Matrix<T>& a, const Matrix<T>& b) +{ + if (a.nrows() != b.nrows() || a.ncols() != b.ncols()) + throw std::logic_error("Matrices of different size are not confrontable"); + for (unsigned i = 0; i < a.nrows(); i++) + for (unsigned j = 0; j < a.ncols(); j++) + if (a[i][j] != b[i][j]) + return false; + return true; +} + +template <typename T> +inline bool operator!=(const Matrix<T>& a, const Matrix<T>& b) +{ + if (a.nrows() != b.nrows() || a.ncols() != b.ncols()) + throw std::logic_error("Matrices of different size are not confrontable"); + for (unsigned i = 0; i < a.nrows(); i++) + for (unsigned j = 0; j < a.ncols(); j++) + if (a[i][j] != b[i][j]) + return true; + return false; +} + + + +/** + Input/Output +*/ +template <typename T> +std::ostream& operator<<(std::ostream& os, const Matrix<T>& m) +{ + os << std::endl << m.nrows() << " " << m.ncols() << std::endl; + for (unsigned int i = 0; i < m.nrows(); i++) + { + for (unsigned int j = 0; j < m.ncols() - 1; j++) + os << std::setw(20) << std::setprecision(16) << m[i][j] << ", "; + os << std::setw(20) << std::setprecision(16) << m[i][m.ncols() - 1] << std::endl; + } + + return os; +} + +template <typename T> +std::istream& operator>>(std::istream& is, Matrix<T>& m) +{ + int rows, cols; + char comma; + is >> rows >> cols; + m.resize(rows, cols); + for (unsigned int i = 0; i < rows; i++) + for (unsigned int j = 0; j < cols; j++) + is >> m[i][j] >> comma; + + return is; +} + +template <typename T> +T sign(const T& v) +{ + if (v >= (T)0.0) + return (T)1.0; + else + return (T)-1.0; +} + +template <typename T> +T dist(const T& a, const T& b) +{ + T abs_a = (T)fabs(a), abs_b = (T)fabs(b); + if (abs_a > abs_b) + return abs_a * sqrt((T)1.0 + (abs_b / abs_a) * (abs_b / abs_a)); + else + return (abs_b == (T)0.0 ? (T)0.0 : abs_b * sqrt((T)1.0 + (abs_a / abs_b) * (abs_a / abs_b))); +} + +template <typename T> +void svd(const Matrix<T>& A, Matrix<T>& U, Vector<T>& W, Matrix<T>& V) +{ + int m = A.nrows(), n = A.ncols(), i, j, k, l, jj, nm; + const unsigned int max_its = 30; + bool flag; + Vector<T> rv1(n); + U = A; + W.resize(n); + V.resize(n, n); + T anorm, c, f, g, h, s, scale, x, y, z; + g = scale = anorm = (T)0.0; + + // Householder reduction to bidiagonal form + for (i = 0; i < n; i++) + { + l = i + 1; + rv1[i] = scale * g; + g = s = scale = (T)0.0; + if (i < m) + { + for (k = i; k < m; k++) + scale += fabs(U[k][i]); + if (scale != (T)0.0) + { + for (k = i; k < m; k++) + { + U[k][i] /= scale; + s += U[k][i] * U[k][i]; + } + f = U[i][i]; + g = -sign(f) * sqrt(s); + h = f * g - s; + U[i][i] = f - g; + for (j = l; j < n; j++) + { + s = (T)0.0; + for (k = i; k < m; k++) + s += U[k][i] * U[k][j]; + f = s / h; + for (k = i; k < m; k++) + U[k][j] += f * U[k][i]; + } + for (k = i; k < m; k++) + U[k][i] *= scale; + } + } + W[i] = scale * g; + g = s = scale = (T)0.0; + if (i < m && i != n - 1) + { + for (k = l; k < n; k++) + scale += fabs(U[i][k]); + if (scale != (T)0.0) + { + for (k = l; k < n; k++) + { + U[i][k] /= scale; + s += U[i][k] * U[i][k]; + } + f = U[i][l]; + g = -sign(f) * sqrt(s); + h = f * g - s; + U[i][l] = f - g; + for (k = l; k <n; k++) + rv1[k] = U[i][k] / h; + for (j = l; j < m; j++) + { + s = (T)0.0; + for (k = l; k < n; k++) + s += U[j][k] * U[i][k]; + for (k = l; k < n; k++) + U[j][k] += s * rv1[k]; + } + for (k = l; k < n; k++) + U[i][k] *= scale; + } + } + anorm = std::max(anorm, fabs(W[i]) + fabs(rv1[i])); + } + // Accumulation of right-hand transformations + for (i = n - 1; i >= 0; i--) + { + if (i < n - 1) + { + if (g != (T)0.0) + { + for (j = l; j < n; j++) + V[j][i] = (U[i][j] / U[i][l]) / g; + for (j = l; j < n; j++) + { + s = (T)0.0; + for (k = l; k < n; k++) + s += U[i][k] * V[k][j]; + for (k = l; k < n; k++) + V[k][j] += s * V[k][i]; + } + } + for (j = l; j < n; j++) + V[i][j] = V[j][i] = (T)0.0; + } + V[i][i] = (T)1.0; + g = rv1[i]; + l = i; + } + // Accumulation of left-hand transformations + for (i = std::min(m, n) - 1; i >= 0; i--) + { + l = i + 1; + g = W[i]; + for (j = l; j < n; j++) + U[i][j] = (T)0.0; + if (g != (T)0.0) + { + g = (T)1.0 / g; + for (j = l; j < n; j++) + { + s = (T)0.0; + for (k = l; k < m; k++) + s += U[k][i] * U[k][j]; + f = (s / U[i][i]) * g; + for (k = i; k < m; k++) + U[k][j] += f * U[k][i]; + } + for (j = i; j < m; j++) + U[j][i] *= g; + } + else + for (j = i; j < m; j++) + U[j][i] = (T)0.0; + U[i][i]++; + } + // Diagonalization of the bidiagonal form: loop over singular values, and over allowed iterations. + for (k = n - 1; k >= 0; k--) + { + for (unsigned int its = 0; its < max_its; its++) + { + flag = true; + for (l = k; l >= 0; l--) + { // Test for splitting + nm = l - 1; // Note that rV[0] is always zero + if ((T)(fabs(rv1[l]) + anorm) == anorm) + { + flag = false; + break; + } + if ((T)(fabs(W[nm]) + anorm) == anorm) + break; + } + if (flag) + { + // Cancellation of rv1[l], if l > 0 FIXME: it was l > 1 in NR + c = (T)0.0; + s = (T)1.0; + for (i = l; i <= k; i++) + { + f = s * rv1[i]; + rv1[i] *= c; + if ((T)(fabs(f) + anorm) == anorm) + break; + g = W[i]; + h = dist(f, g); + W[i] = h; + h = (T)1.0 / h; + c = g * h; + s = -f * h; + for (j = 0; j < m; j++) + { + y = U[j][nm]; + z = U[j][i]; + U[j][nm] = y * c + z * s; + U[j][i] = z * c - y * s; + } + } + } + z = W[k]; + if (l == k) + { // Convergence + if (z < (T)0.0) + { // Singular value is made nonnegative + W[k] = -z; + for (j = 0; j < n; j++) + V[j][k] = -V[j][k]; + } + break; + } + if (its == max_its) + throw std::logic_error("Error svd: no convergence in the maximum number of iterations"); + x = W[l]; + nm = k - 1; + y = W[nm]; + g = rv1[nm]; + h = rv1[k]; + f = ((y - z) * (y + z) + (g - h) * (g + h)) / (2.0 * h * y); + g = dist(f, (T)1.0); + f = ((x - z) * (x + z) + h * ((y / (f + sign(f)*fabs(g))) - h)) / x; + c = s = (T)1.0; // Next QR transformation + for (j = l; j <= nm; j++) + { + i = j + 1; + g = rv1[i]; + y = W[i]; + h = s * g; + g *= c; + z = dist(f, h); + rv1[j] = z; + c = f / z; + s = h / z; + f = x * c + g * s; + g = g * c - x * s; + h = y * s; + y *= c; + for (jj = 0; jj < n; jj++) + { + x = V[jj][j]; + z = V[jj][i]; + V[jj][j] = x * c + z * s; + V[jj][i] = z * c - x * s; + } + z = dist(f, h); + W[j] = z; + if (z != 0) // Rotation can be arbitrary if z = 0 + { + z = (T)1.0 / z; + c = f * z; + s = h * z; + } + f = c * g + s * y; + x = c * y - s * g; + for (jj = 0; jj < m; jj++) + { + y = U[jj][j]; + z = U[jj][i]; + U[jj][j] = y * c + z * s; + U[jj][i] = z * c - y * s; + } + } + rv1[l] = (T)0.0; + rv1[k] = f; + W[k] = x; + } + } +} + +template <typename T> +Matrix<T> pinv(const Matrix<T>& A) +{ + Matrix<T> U, V, x, tmp(A.ncols(), A.nrows()); + Vector<T> W; + CanonicalBaseVector<T> e(0, A.nrows()); + svd(A, U, W, V); + for (unsigned int i = 0; i < A.nrows(); i++) + { + e.reset(i); + tmp.setColumn(i, dot_prod(dot_prod(dot_prod(V, Matrix<double>(DIAG, 1.0 / W, 0.0, W.size(), W.size())), t(U)), e)); + } + + return tmp; +} + +template <typename T> +int lu(const Matrix<T>& A, Matrix<T>& LU, Vector<unsigned int>& index) +{ + if (A.ncols() != A.nrows()) + throw std::logic_error("Error in LU decomposition: matrix must be squared"); + int i, p, j, k, n = A.ncols(), ex; + T val, tmp; + Vector<T> d(n); + LU = A; + index.resize(n); + + ex = 1; + for (i = 0; i < n; i++) + { + index[i] = i; + val = (T)0.0; + for (j = 0; j < n; j++) + val = std::max(val, (T)fabs(LU[i][j])); + if (val == (T)0.0) + std::logic_error("Error in LU decomposition: matrix was singular"); + d[i] = val; + } + + for (k = 0; k < n - 1; k++) + { + p = k; + val = fabs(LU[k][k]) / d[k]; + for (i = k + 1; i < n; i++) + { + tmp = fabs(LU[i][k]) / d[i]; + if (tmp > val) + { + val = tmp; + p = i; + } + } + if (val == (T)0.0) + std::logic_error("Error in LU decomposition: matrix was singular"); + if (p > k) + { + ex = -ex; + std::swap(index[k], index[p]); + std::swap(d[k], d[p]); + for (j = 0; j < n; j++) + std::swap(LU[k][j], LU[p][j]); + } + + for (i = k + 1; i < n; i++) + { + LU[i][k] /= LU[k][k]; + for (j = k + 1; j < n; j++) + LU[i][j] -= LU[i][k] * LU[k][j]; + } + } + if (LU[n - 1][n - 1] == (T)0.0) + std::logic_error("Error in LU decomposition: matrix was singular"); + + return ex; +} + +template <typename T> +Vector<T> lu_solve(const Matrix<T>& LU, const Vector<T>& b, Vector<unsigned int>& index) +{ + if (LU.ncols() != LU.nrows()) + throw std::logic_error("Error in LU solve: LU matrix should be squared"); + unsigned int n = LU.ncols(); + if (b.size() != n) + throw std::logic_error("Error in LU solve: b vector must be of the same dimensions of LU matrix"); + Vector<T> x((T)0.0, n); + int i, j, p; + T sum; + + p = index[0]; + x[0] = b[p]; + + for (i = 1; i < n; i++) + { + sum = (T)0.0; + for (j = 0; j < i; j++) + sum += LU[i][j] * x[j]; + p = index[i]; + x[i] = b[p] - sum; + } + x[n - 1] /= LU[n - 1][n - 1]; + for (i = n - 2; i >= 0; i--) + { + sum = (T)0.0; + for (j = i + 1; j < n; j++) + sum += LU[i][j] * x[j]; + x[i] = (x[i] - sum) / LU[i][i]; + } + return x; +} + +template <typename T> +void lu_solve(const Matrix<T>& LU, Vector<T>& x, const Vector<T>& b, Vector<unsigned int>& index) +{ + x = lu_solve(LU, b, index); +} + +template <typename T> +Matrix<T> lu_inverse(const Matrix<T>& A) +{ + if (A.ncols() != A.nrows()) + throw std::logic_error("Error in LU invert: matrix must be squared"); + unsigned int n = A.ncols(); + Matrix<T> A1(n, n), LU; + Vector<unsigned int> index; + + lu(A, LU, index); + CanonicalBaseVector<T> e(0, n); + for (unsigned i = 0; i < n; i++) + { + e.reset(i); + A1.setColumn(i, lu_solve(LU, e, index)); + } + + return A1; +} + +template <typename T> +T lu_det(const Matrix<T>& A) +{ + if (A.ncols() != A.nrows()) + throw std::logic_error("Error in LU determinant: matrix must be squared"); + unsigned int d; + Matrix<T> LU; + Vector<unsigned int> index; + + d = lu(A, LU, index); + + return d * prod(LU.extractDiag()); +} + +template <typename T> +void cholesky(const Matrix<T> A, Matrix<T>& LL) +{ + if (A.ncols() != A.nrows()) + throw std::logic_error("Error in Cholesky decomposition: matrix must be squared"); + int n = A.ncols(); + double sum; + LL = A; + + for (unsigned int i = 0; i < n; i++) + { + for (unsigned int j = i; j < n; j++) + { + sum = LL[i][j]; + for (int k = i - 1; k >= 0; k--) + sum -= LL[i][k] * LL[j][k]; + if (i == j) + { + if (sum <= 0.0) + throw std::logic_error("Error in Cholesky decomposition: matrix is not postive definite"); + LL[i][i] = sqrt(sum); + } + else + LL[j][i] = sum / LL[i][i]; + } + for (unsigned int k = i + 1; k < n; k++) + LL[i][k] = LL[k][i]; + } +} + +template <typename T> +Matrix<T> cholesky(const Matrix<T> A) +{ + Matrix<T> LL; + cholesky(A, LL); + + return LL; +} + +template <typename T> +Vector<T> cholesky_solve(const Matrix<T>& LL, const Vector<T>& b) +{ + if (LL.ncols() != LL.nrows()) + throw std::logic_error("Error in Cholesky solve: matrix must be squared"); + unsigned int n = LL.ncols(); + if (b.size() != n) + throw std::logic_error("Error in Cholesky decomposition: b vector must be of the same dimensions of LU matrix"); + Vector<T> x, y; + + /* Solve L * y = b */ + forward_elimination(LL, y, b); + /* Solve L^T * x = y */ + backward_elimination(LL, x, y); + + return x; +} + +template <typename T> +void cholesky_solve(const Matrix<T>& LL, Vector<T>& x, const Vector<T>& b) +{ + x = cholesky_solve(LL, b); +} + +template <typename T> +void forward_elimination(const Matrix<T>& L, Vector<T>& y, const Vector<T> b) +{ + if (L.ncols() != L.nrows()) + throw std::logic_error("Error in Forward elimination: matrix must be squared (lower triangular)"); + if (b.size() != L.nrows()) + throw std::logic_error("Error in Forward elimination: b vector must be of the same dimensions of L matrix"); + unsigned int n = b.size(); + y.resize(n); + + y[0] = b[0] / L[0][0]; + for (unsigned int i = 1; i < n; i++) + { + y[i] = b[i]; + for (unsigned int j = 0; j < i; j++) + y[i] -= L[i][j] * y[j]; + y[i] = y[i] / L[i][i]; + } +} + +template <typename T> +Vector<T> forward_elimination(const Matrix<T>& L, const Vector<T> b) +{ + Vector<T> y; + forward_elimination(L, y, b); + + return y; +} + +template <typename T> +void backward_elimination(const Matrix<T>& U, Vector<T>& x, const Vector<T>& y) +{ + if (U.ncols() != U.nrows()) + throw std::logic_error("Error in Backward elimination: matrix must be squared (upper triangular)"); + if (y.size() != U.nrows()) + throw std::logic_error("Error in Backward elimination: b vector must be of the same dimensions of U matrix"); + int n = y.size(); + x.resize(n); + + x[n - 1] = y[n - 1] / U[n - 1][n - 1]; + for (int i = n - 2; i >= 0; i--) + { + x[i] = y[i]; + for (int j = i + 1; j < n; j++) + x[i] -= U[i][j] * x[j]; + x[i] = x[i] / U[i][i]; + } +} + +template <typename T> +Vector<T> backward_elimination(const Matrix<T>& U, const Vector<T> y) +{ + Vector<T> x; + forward_elimination(U, x, y); + + return x; +} + +/* Setting default linear systems machinery */ + +// #define det lu_det +// #define inverse lu_inverse +// #define solve lu_solve + +/* Random */ + +template <typename T> +void random(Matrix<T>& m) +{ + for (unsigned int i = 0; i < m.nrows(); i++) + for (unsigned int j = 0; j < m.ncols(); j++) + m[i][j] = (T)(rand() / double(RAND_MAX)); +} + +/** + Aggregate functions +*/ + +template <typename T> +Vector<T> sum(const Matrix<T>& m) +{ + Vector<T> tmp((T)0, m.ncols()); + for (unsigned int j = 0; j < m.ncols(); j++) + for (unsigned int i = 0; i < m.nrows(); i++) + tmp[j] += m[i][j]; + return tmp; +} + +template <typename T> +Vector<T> r_sum(const Matrix<T>& m) +{ + Vector<T> tmp((T)0, m.nrows()); + for (unsigned int i = 0; i < m.nrows(); i++) + for (unsigned int j = 0; j < m.ncols(); j++) + tmp[i] += m[i][j]; + return tmp; +} + +template <typename T> +T all_sum(const Matrix<T>& m) +{ + T tmp = (T)0; + for (unsigned int i = 0; i < m.nrows(); i++) + for (unsigned int j = 0; j < m.ncols(); j++) + tmp += m[i][j]; + return tmp; +} + +template <typename T> +Vector<T> prod(const Matrix<T>& m) +{ + Vector<T> tmp((T)1, m.ncols()); + for (unsigned int j = 0; j < m.ncols(); j++) + for (unsigned int i = 0; i < m.nrows(); i++) + tmp[j] *= m[i][j]; + return tmp; +} + +template <typename T> +Vector<T> r_prod(const Matrix<T>& m) +{ + Vector<T> tmp((T)1, m.nrows()); + for (unsigned int i = 0; i < m.nrows(); i++) + for (unsigned int j = 0; j < m.ncols(); j++) + tmp[i] *= m[i][j]; + return tmp; +} + +template <typename T> +T all_prod(const Matrix<T>& m) +{ + T tmp = (T)1; + for (unsigned int i = 0; i < m.nrows(); i++) + for (unsigned int j = 0; j < m.ncols(); j++) + tmp *= m[i][j]; + return tmp; +} + +template <typename T> +Vector<T> mean(const Matrix<T>& m) +{ + Vector<T> res((T)0, m.ncols()); + for (unsigned int j = 0; j < m.ncols(); j++) + { + for (unsigned int i = 0; i < m.nrows(); i++) + res[j] += m[i][j]; + res[j] /= m.nrows(); + } + + return res; +} + +template <typename T> +Vector<T> r_mean(const Matrix<T>& m) +{ + Vector<T> res((T)0, m.rows()); + for (unsigned int i = 0; i < m.nrows(); i++) + { + for (unsigned int j = 0; j < m.ncols(); j++) + res[i] += m[i][j]; + res[i] /= m.nrows(); + } + + return res; +} + +template <typename T> +T all_mean(const Matrix<T>& m) +{ + T tmp = (T)0; + for (unsigned int i = 0; i < m.nrows(); i++) + for (unsigned int j = 0; j < m.ncols(); j++) + tmp += m[i][j]; + return tmp / (m.nrows() * m.ncols()); +} + +template <typename T> +Vector<T> var(const Matrix<T>& m, bool sample_correction = false) +{ + Vector<T> res((T)0, m.ncols()); + unsigned int n = m.nrows(); + double sum, ssum; + for (unsigned int j = 0; j < m.ncols(); j++) + { + sum = (T)0.0; ssum = (T)0.0; + for (unsigned int i = 0; i < m.nrows(); i++) + { + sum += m[i][j]; + ssum += (m[i][j] * m[i][j]); + } + if (!sample_correction) + res[j] = (ssum / n) - (sum / n) * (sum / n); + else + res[j] = n * ((ssum / n) - (sum / n) * (sum / n)) / (n - 1); + } + + return res; +} + +template <typename T> +Vector<T> stdev(const Matrix<T>& m, bool sample_correction = false) +{ + return vec_sqrt(var(m, sample_correction)); +} + +template <typename T> +Vector<T> r_var(const Matrix<T>& m, bool sample_correction = false) +{ + Vector<T> res((T)0, m.nrows()); + double sum, ssum; + unsigned int n = m.ncols(); + for (unsigned int i = 0; i < m.nrows(); i++) + { + sum = 0.0; ssum = 0.0; + for (unsigned int j = 0; j < m.ncols(); j++) + { + sum += m[i][j]; + ssum += (m[i][j] * m[i][j]); + } + if (!sample_correction) + res[i] = (ssum / n) - (sum / n) * (sum / n); + else + res[i] = n * ((ssum / n) - (sum / n) * (sum / n)) / (n - 1); + } + + return res; +} + +template <typename T> +Vector<T> r_stdev(const Matrix<T>& m, bool sample_correction = false) +{ + return vec_sqrt(r_var(m, sample_correction)); +} + +template <typename T> +Vector<T> max(const Matrix<T>& m) +{ + Vector<T> res(m.ncols()); + double value; + for (unsigned int j = 0; j < m.ncols(); j++) + { + value = m[0][j]; + for (unsigned int i = 1; i < m.nrows(); i++) + value = std::max(m[i][j], value); + res[j] = value; + } + + return res; +} + +template <typename T> +Vector<T> r_max(const Matrix<T>& m) +{ + Vector<T> res(m.nrows()); + double value; + for (unsigned int i = 0; i < m.nrows(); i++) + { + value = m[i][0]; + for (unsigned int j = 1; j < m.ncols(); j++) + value = std::max(m[i][j], value); + res[i] = value; + } + + return res; +} + +template <typename T> +Vector<T> min(const Matrix<T>& m) +{ + Vector<T> res(m.ncols()); + double value; + for (unsigned int j = 0; j < m.ncols(); j++) + { + value = m[0][j]; + for (unsigned int i = 1; i < m.nrows(); i++) + value = std::min(m[i][j], value); + res[j] = value; + } + + return res; +} + +template <typename T> +Vector<T> r_min(const Matrix<T>& m) +{ + Vector<T> res(m.nrows()); + double value; + for (unsigned int i = 0; i < m.nrows(); i++) + { + value = m[i][0]; + for (unsigned int j = 1; j < m.ncols(); j++) + value = std::min(m[i][j], value); + res[i] = value; + } + + return res; +} + + + +/** + Single element mathematical functions +*/ + +template <typename T> +Matrix<T> exp(const Matrix<T>&m) +{ + Matrix<T> tmp(m.nrows(), m.ncols()); + + for (unsigned int i = 0; i < m.nrows(); i++) + for (unsigned int j = 0; j < m.ncols(); j++) + tmp[i][j] = exp(m[i][j]); + + return tmp; +} + +template <typename T> +Matrix<T> mat_sqrt(const Matrix<T>&m) +{ + Matrix<T> tmp(m.nrows(), m.ncols()); + + for (unsigned int i = 0; i < m.nrows(); i++) + for (unsigned int j = 0; j < m.ncols(); j++) + tmp[i][j] = sqrt(m[i][j]); + + return tmp; +} + +/** + Matrix operators +*/ + +template <typename T> +Matrix<T> kron(const Vector<T>& b, const Vector<T>& a) +{ + Matrix<T> tmp(b.size(), a.size()); + for (unsigned int i = 0; i < b.size(); i++) + for (unsigned int j = 0; j < a.size(); j++) + tmp[i][j] = a[j] * b[i]; + + return tmp; +} + +template <typename T> +Matrix<T> t(const Matrix<T>& a) +{ + Matrix<T> tmp(a.ncols(), a.nrows()); + for (unsigned int i = 0; i < a.nrows(); i++) + for (unsigned int j = 0; j < a.ncols(); j++) + tmp[j][i] = a[i][j]; + + return tmp; +} + +template <typename T> +Matrix<T> dot_prod(const Matrix<T>& a, const Matrix<T>& b) +{ + if (a.ncols() != b.nrows()) + throw std::logic_error("Error matrix dot product: dimensions of the matrices are not compatible"); + Matrix<T> tmp(a.nrows(), b.ncols()); + for (unsigned int i = 0; i < tmp.nrows(); i++) + for (unsigned int j = 0; j < tmp.ncols(); j++) + { + tmp[i][j] = (T)0; + for (unsigned int k = 0; k < a.ncols(); k++) + tmp[i][j] += a[i][k] * b[k][j]; + } + + return tmp; +} + +template <typename T> +Matrix<T> dot_prod(const Matrix<T>& a, const Vector<T>& b) +{ + if (a.ncols() != b.size()) + throw std::logic_error("Error matrix dot product: dimensions of the matrix and the vector are not compatible"); + Matrix<T> tmp(a.nrows(), 1); + for (unsigned int i = 0; i < tmp.nrows(); i++) + { + tmp[i][0] = (T)0; + for (unsigned int k = 0; k < a.ncols(); k++) + tmp[i][0] += a[i][k] * b[k]; + } + + return tmp; +} + +template <typename T> +Matrix<T> dot_prod(const Vector<T>& a, const Matrix<T>& b) +{ + if (a.size() != b.nrows()) + throw std::logic_error("Error matrix dot product: dimensions of the vector and matrix are not compatible"); + Matrix<T> tmp(1, b.ncols()); + for (unsigned int j = 0; j < tmp.ncols(); j++) + { + tmp[0][j] = (T)0; + for (unsigned int k = 0; k < a.size(); k++) + tmp[0][j] += a[k] * b[k][j]; + } + + return tmp; +} + +template <typename T> +inline Matrix<double> rank(const Matrix<T> m) +{ + Matrix<double> tmp(m.nrows(), m.ncols()); + for (unsigned int j = 0; j < m.ncols(); j++) + tmp.setColumn(j, rank<T>(m.extractColumn(j))); + + return tmp; +} + +template <typename T> +inline Matrix<double> r_rank(const Matrix<T> m) +{ + Matrix<double> tmp(m.nrows(), m.ncols()); + for (unsigned int i = 0; i < m.nrows(); i++) + tmp.setRow(i, rank<T>(m.extractRow(i))); + + return tmp; +} + +} // namespace quadprogpp + +#endif // define _ARRAY_HH_ diff --git a/include/thirdparty/quadProgpp/QuadProg++.hh b/include/thirdparty/quadProgpp/QuadProg++.hh old mode 100644 new mode 100755 index c2954d4..88660e1 --- a/include/thirdparty/quadProgpp/QuadProg++.hh +++ b/include/thirdparty/quadProgpp/QuadProg++.hh @@ -1,77 +1,77 @@ -/* - File $Id: QuadProg++.hh 232 2007-06-21 12:29:00Z digasper $ - - The quadprog_solve() function implements the algorithm of Goldfarb and Idnani - for the solution of a (convex) Quadratic Programming problem - by means of an active-set dual method. - -The problem is in the form: - -min 0.5 * x G x + g0 x -s.t. - CE^T x + ce0 = 0 - CI^T x + ci0 >= 0 - - The matrix and vectors dimensions are as follows: - G: n * n - g0: n - - CE: n * p - ce0: p - - CI: n * m - ci0: m - - x: n - - The function will return the cost of the solution written in the x vector or - std::numeric_limits::infinity() if the problem is infeasible. In the latter case - the value of the x vector is not correct. - - References: D. Goldfarb, A. Idnani. A numerically stable dual method for solving - strictly convex quadratic programs. Mathematical Programming 27 (1983) pp. 1-33. - - Notes: - 1. pay attention in setting up the vectors ce0 and ci0. - If the constraints of your problem are specified in the form - A^T x = b and C^T x >= d, then you should set ce0 = -b and ci0 = -d. - 2. The matrices have column dimension equal to MATRIX_DIM, - a constant set to 20 in this file (by means of a #define macro). - If the matrices are bigger than 20 x 20 the limit could be - increased by means of a -DMATRIX_DIM=n on the compiler command line. - 3. The matrix G is modified within the function since it is used to compute - the G = L^T L cholesky factorization for further computations inside the function. - If you need the original matrix G you should make a copy of it and pass the copy - to the function. - - Author: Luca Di Gaspero - DIEGM - University of Udine, Italy - luca.digaspero@uniud.it - http://www.diegm.uniud.it/digaspero/ - - The author will be grateful if the researchers using this software will - acknowledge the contribution of this function in their research papers. - - Copyright (c) 2007-2016 Luca Di Gaspero - - This software may be modified and distributed under the terms - of the MIT license. See the LICENSE file for details. -*/ - - -#ifndef _QUADPROGPP -#define _QUADPROGPP - -#include "thirdparty/quadProgpp/Array.hh" -#include <eigen3/Eigen/Dense> - -namespace quadprogpp { - -double solve_quadprog(Matrix<double>& G, Vector<double>& g0, - const Matrix<double>& CE, const Vector<double>& ce0, - const Matrix<double>& CI, const Vector<double>& ci0, - Vector<double>& x); - -} // namespace quadprogpp - -#endif // #define _QUADPROGPP +/* + File $Id: QuadProg++.hh 232 2007-06-21 12:29:00Z digasper $ + + The quadprog_solve() function implements the algorithm of Goldfarb and Idnani + for the solution of a (convex) Quadratic Programming problem + by means of an active-set dual method. + +The problem is in the form: + +min 0.5 * x G x + g0 x +s.t. + CE^T x + ce0 = 0 + CI^T x + ci0 >= 0 + + The matrix and vectors dimensions are as follows: + G: n * n + g0: n + + CE: n * p + ce0: p + + CI: n * m + ci0: m + + x: n + + The function will return the cost of the solution written in the x vector or + std::numeric_limits::infinity() if the problem is infeasible. In the latter case + the value of the x vector is not correct. + + References: D. Goldfarb, A. Idnani. A numerically stable dual method for solving + strictly convex quadratic programs. Mathematical Programming 27 (1983) pp. 1-33. + + Notes: + 1. pay attention in setting up the vectors ce0 and ci0. + If the constraints of your problem are specified in the form + A^T x = b and C^T x >= d, then you should set ce0 = -b and ci0 = -d. + 2. The matrices have column dimension equal to MATRIX_DIM, + a constant set to 20 in this file (by means of a #define macro). + If the matrices are bigger than 20 x 20 the limit could be + increased by means of a -DMATRIX_DIM=n on the compiler command line. + 3. The matrix G is modified within the function since it is used to compute + the G = L^T L cholesky factorization for further computations inside the function. + If you need the original matrix G you should make a copy of it and pass the copy + to the function. + + Author: Luca Di Gaspero + DIEGM - University of Udine, Italy + luca.digaspero@uniud.it + http://www.diegm.uniud.it/digaspero/ + + The author will be grateful if the researchers using this software will + acknowledge the contribution of this function in their research papers. + + Copyright (c) 2007-2016 Luca Di Gaspero + + This software may be modified and distributed under the terms + of the MIT license. See the LICENSE file for details. +*/ + + +#ifndef _QUADPROGPP +#define _QUADPROGPP + +#include "thirdparty/quadProgpp/Array.hh" +#include <eigen3/Eigen/Dense> + +namespace quadprogpp { + +double solve_quadprog(Matrix<double>& G, Vector<double>& g0, + const Matrix<double>& CE, const Vector<double>& ce0, + const Matrix<double>& CI, const Vector<double>& ci0, + Vector<double>& x); + +} // namespace quadprogpp + +#endif // #define _QUADPROGPP diff --git a/include/thirdparty/tinyxml/tinystr.h b/include/thirdparty/tinyxml/tinystr.h index 89cca33..c3cac34 100644 --- a/include/thirdparty/tinyxml/tinystr.h +++ b/include/thirdparty/tinyxml/tinystr.h @@ -1,305 +1,305 @@ -/* -www.sourceforge.net/projects/tinyxml - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any -damages arising from the use of this software. - -Permission is granted to anyone to use this software for any -purpose, including commercial applications, and to alter it and -redistribute it freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must -not claim that you wrote the original software. If you use this -software in a product, an acknowledgment in the product documentation -would be appreciated but is not required. - -2. Altered source versions must be plainly marked as such, and -must not be misrepresented as being the original software. - -3. This notice may not be removed or altered from any source -distribution. -*/ - - -#ifndef TIXML_USE_STL - -#ifndef TIXML_STRING_INCLUDED -#define TIXML_STRING_INCLUDED - -#include <assert.h> -#include <string.h> - -/* The support for explicit isn't that universal, and it isn't really - required - it is used to check that the TiXmlString class isn't incorrectly - used. Be nice to old compilers and macro it here: -*/ -#if defined(_MSC_VER) && (_MSC_VER >= 1200 ) - // Microsoft visual studio, version 6 and higher. - #define TIXML_EXPLICIT explicit -#elif defined(__GNUC__) && (__GNUC__ >= 3 ) - // GCC version 3 and higher.s - #define TIXML_EXPLICIT explicit -#else - #define TIXML_EXPLICIT -#endif - - -/* - TiXmlString is an emulation of a subset of the std::string template. - Its purpose is to allow compiling TinyXML on compilers with no or poor STL support. - Only the member functions relevant to the TinyXML project have been implemented. - The buffer allocation is made by a simplistic power of 2 like mechanism : if we increase - a string and there's no more room, we allocate a buffer twice as big as we need. -*/ -class TiXmlString -{ - public : - // The size type used - typedef size_t size_type; - - // Error value for find primitive - static const size_type npos; // = -1; - - - // TiXmlString empty constructor - TiXmlString () : rep_(&nullrep_) - { - } - - // TiXmlString copy constructor - TiXmlString ( const TiXmlString & copy) : rep_(0) - { - init(copy.length()); - memcpy(start(), copy.data(), length()); - } - - // TiXmlString constructor, based on a string - TIXML_EXPLICIT TiXmlString ( const char * copy) : rep_(0) - { - init( static_cast<size_type>( strlen(copy) )); - memcpy(start(), copy, length()); - } - - // TiXmlString constructor, based on a string - TIXML_EXPLICIT TiXmlString ( const char * str, size_type len) : rep_(0) - { - init(len); - memcpy(start(), str, len); - } - - // TiXmlString destructor - ~TiXmlString () - { - quit(); - } - - TiXmlString& operator = (const char * copy) - { - return assign( copy, (size_type)strlen(copy)); - } - - TiXmlString& operator = (const TiXmlString & copy) - { - return assign(copy.start(), copy.length()); - } - - - // += operator. Maps to append - TiXmlString& operator += (const char * suffix) - { - return append(suffix, static_cast<size_type>( strlen(suffix) )); - } - - // += operator. Maps to append - TiXmlString& operator += (char single) - { - return append(&single, 1); - } - - // += operator. Maps to append - TiXmlString& operator += (const TiXmlString & suffix) - { - return append(suffix.data(), suffix.length()); - } - - - // Convert a TiXmlString into a null-terminated char * - const char * c_str () const { return rep_->str; } - - // Convert a TiXmlString into a char * (need not be null terminated). - const char * data () const { return rep_->str; } - - // Return the length of a TiXmlString - size_type length () const { return rep_->size; } - - // Alias for length() - size_type size () const { return rep_->size; } - - // Checks if a TiXmlString is empty - bool empty () const { return rep_->size == 0; } - - // Return capacity of string - size_type capacity () const { return rep_->capacity; } - - - // single char extraction - const char& at (size_type index) const - { - assert( index < length() ); - return rep_->str[ index ]; - } - - // [] operator - char& operator [] (size_type index) const - { - assert( index < length() ); - return rep_->str[ index ]; - } - - // find a char in a string. Return TiXmlString::npos if not found - size_type find (char lookup) const - { - return find(lookup, 0); - } - - // find a char in a string from an offset. Return TiXmlString::npos if not found - size_type find (char tofind, size_type offset) const - { - if (offset >= length()) return npos; - - for (const char* p = c_str() + offset; *p != '\0'; ++p) - { - if (*p == tofind) return static_cast< size_type >( p - c_str() ); - } - return npos; - } - - void clear () - { - //Lee: - //The original was just too strange, though correct: - // TiXmlString().swap(*this); - //Instead use the quit & re-init: - quit(); - init(0,0); - } - - /* Function to reserve a big amount of data when we know we'll need it. Be aware that this - function DOES NOT clear the content of the TiXmlString if any exists. - */ - void reserve (size_type cap); - - TiXmlString& assign (const char* str, size_type len); - - TiXmlString& append (const char* str, size_type len); - - void swap (TiXmlString& other) - { - Rep* r = rep_; - rep_ = other.rep_; - other.rep_ = r; - } - - private: - - void init(size_type sz) { init(sz, sz); } - void set_size(size_type sz) { rep_->str[ rep_->size = sz ] = '\0'; } - char* start() const { return rep_->str; } - char* finish() const { return rep_->str + rep_->size; } - - struct Rep - { - size_type size, capacity; - char str[1]; - }; - - void init(size_type sz, size_type cap) - { - if (cap) - { - // Lee: the original form: - // rep_ = static_cast<Rep*>(operator new(sizeof(Rep) + cap)); - // doesn't work in some cases of new being overloaded. Switching - // to the normal allocation, although use an 'int' for systems - // that are overly picky about structure alignment. - const size_type bytesNeeded = sizeof(Rep) + cap; - const size_type intsNeeded = ( bytesNeeded + sizeof(int) - 1 ) / sizeof( int ); - rep_ = reinterpret_cast<Rep*>( new int[ intsNeeded ] ); - - rep_->str[ rep_->size = sz ] = '\0'; - rep_->capacity = cap; - } - else - { - rep_ = &nullrep_; - } - } - - void quit() - { - if (rep_ != &nullrep_) - { - // The rep_ is really an array of ints. (see the allocator, above). - // Cast it back before delete, so the compiler won't incorrectly call destructors. - delete [] ( reinterpret_cast<int*>( rep_ ) ); - } - } - - Rep * rep_; - static Rep nullrep_; - -} ; - - -inline bool operator == (const TiXmlString & a, const TiXmlString & b) -{ - return ( a.length() == b.length() ) // optimization on some platforms - && ( strcmp(a.c_str(), b.c_str()) == 0 ); // actual compare -} -inline bool operator < (const TiXmlString & a, const TiXmlString & b) -{ - return strcmp(a.c_str(), b.c_str()) < 0; -} - -inline bool operator != (const TiXmlString & a, const TiXmlString & b) { return !(a == b); } -inline bool operator > (const TiXmlString & a, const TiXmlString & b) { return b < a; } -inline bool operator <= (const TiXmlString & a, const TiXmlString & b) { return !(b < a); } -inline bool operator >= (const TiXmlString & a, const TiXmlString & b) { return !(a < b); } - -inline bool operator == (const TiXmlString & a, const char* b) { return strcmp(a.c_str(), b) == 0; } -inline bool operator == (const char* a, const TiXmlString & b) { return b == a; } -inline bool operator != (const TiXmlString & a, const char* b) { return !(a == b); } -inline bool operator != (const char* a, const TiXmlString & b) { return !(b == a); } - -TiXmlString operator + (const TiXmlString & a, const TiXmlString & b); -TiXmlString operator + (const TiXmlString & a, const char* b); -TiXmlString operator + (const char* a, const TiXmlString & b); - - -/* - TiXmlOutStream is an emulation of std::ostream. It is based on TiXmlString. - Only the operators that we need for TinyXML have been developped. -*/ -class TiXmlOutStream : public TiXmlString -{ -public : - - // TiXmlOutStream << operator. - TiXmlOutStream & operator << (const TiXmlString & in) - { - *this += in; - return *this; - } - - // TiXmlOutStream << operator. - TiXmlOutStream & operator << (const char * in) - { - *this += in; - return *this; - } - -} ; - -#endif // TIXML_STRING_INCLUDED -#endif // TIXML_USE_STL +/* +www.sourceforge.net/projects/tinyxml + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any +damages arising from the use of this software. + +Permission is granted to anyone to use this software for any +purpose, including commercial applications, and to alter it and +redistribute it freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must +not claim that you wrote the original software. If you use this +software in a product, an acknowledgment in the product documentation +would be appreciated but is not required. + +2. Altered source versions must be plainly marked as such, and +must not be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source +distribution. +*/ + + +#ifndef TIXML_USE_STL + +#ifndef TIXML_STRING_INCLUDED +#define TIXML_STRING_INCLUDED + +#include <assert.h> +#include <string.h> + +/* The support for explicit isn't that universal, and it isn't really + required - it is used to check that the TiXmlString class isn't incorrectly + used. Be nice to old compilers and macro it here: +*/ +#if defined(_MSC_VER) && (_MSC_VER >= 1200 ) + // Microsoft visual studio, version 6 and higher. + #define TIXML_EXPLICIT explicit +#elif defined(__GNUC__) && (__GNUC__ >= 3 ) + // GCC version 3 and higher.s + #define TIXML_EXPLICIT explicit +#else + #define TIXML_EXPLICIT +#endif + + +/* + TiXmlString is an emulation of a subset of the std::string template. + Its purpose is to allow compiling TinyXML on compilers with no or poor STL support. + Only the member functions relevant to the TinyXML project have been implemented. + The buffer allocation is made by a simplistic power of 2 like mechanism : if we increase + a string and there's no more room, we allocate a buffer twice as big as we need. +*/ +class TiXmlString +{ + public : + // The size type used + typedef size_t size_type; + + // Error value for find primitive + static const size_type npos; // = -1; + + + // TiXmlString empty constructor + TiXmlString () : rep_(&nullrep_) + { + } + + // TiXmlString copy constructor + TiXmlString ( const TiXmlString & copy) : rep_(0) + { + init(copy.length()); + memcpy(start(), copy.data(), length()); + } + + // TiXmlString constructor, based on a string + TIXML_EXPLICIT TiXmlString ( const char * copy) : rep_(0) + { + init( static_cast<size_type>( strlen(copy) )); + memcpy(start(), copy, length()); + } + + // TiXmlString constructor, based on a string + TIXML_EXPLICIT TiXmlString ( const char * str, size_type len) : rep_(0) + { + init(len); + memcpy(start(), str, len); + } + + // TiXmlString destructor + ~TiXmlString () + { + quit(); + } + + TiXmlString& operator = (const char * copy) + { + return assign( copy, (size_type)strlen(copy)); + } + + TiXmlString& operator = (const TiXmlString & copy) + { + return assign(copy.start(), copy.length()); + } + + + // += operator. Maps to append + TiXmlString& operator += (const char * suffix) + { + return append(suffix, static_cast<size_type>( strlen(suffix) )); + } + + // += operator. Maps to append + TiXmlString& operator += (char single) + { + return append(&single, 1); + } + + // += operator. Maps to append + TiXmlString& operator += (const TiXmlString & suffix) + { + return append(suffix.data(), suffix.length()); + } + + + // Convert a TiXmlString into a null-terminated char * + const char * c_str () const { return rep_->str; } + + // Convert a TiXmlString into a char * (need not be null terminated). + const char * data () const { return rep_->str; } + + // Return the length of a TiXmlString + size_type length () const { return rep_->size; } + + // Alias for length() + size_type size () const { return rep_->size; } + + // Checks if a TiXmlString is empty + bool empty () const { return rep_->size == 0; } + + // Return capacity of string + size_type capacity () const { return rep_->capacity; } + + + // single char extraction + const char& at (size_type index) const + { + assert( index < length() ); + return rep_->str[ index ]; + } + + // [] operator + char& operator [] (size_type index) const + { + assert( index < length() ); + return rep_->str[ index ]; + } + + // find a char in a string. Return TiXmlString::npos if not found + size_type find (char lookup) const + { + return find(lookup, 0); + } + + // find a char in a string from an offset. Return TiXmlString::npos if not found + size_type find (char tofind, size_type offset) const + { + if (offset >= length()) return npos; + + for (const char* p = c_str() + offset; *p != '\0'; ++p) + { + if (*p == tofind) return static_cast< size_type >( p - c_str() ); + } + return npos; + } + + void clear () + { + //Lee: + //The original was just too strange, though correct: + // TiXmlString().swap(*this); + //Instead use the quit & re-init: + quit(); + init(0,0); + } + + /* Function to reserve a big amount of data when we know we'll need it. Be aware that this + function DOES NOT clear the content of the TiXmlString if any exists. + */ + void reserve (size_type cap); + + TiXmlString& assign (const char* str, size_type len); + + TiXmlString& append (const char* str, size_type len); + + void swap (TiXmlString& other) + { + Rep* r = rep_; + rep_ = other.rep_; + other.rep_ = r; + } + + private: + + void init(size_type sz) { init(sz, sz); } + void set_size(size_type sz) { rep_->str[ rep_->size = sz ] = '\0'; } + char* start() const { return rep_->str; } + char* finish() const { return rep_->str + rep_->size; } + + struct Rep + { + size_type size, capacity; + char str[1]; + }; + + void init(size_type sz, size_type cap) + { + if (cap) + { + // Lee: the original form: + // rep_ = static_cast<Rep*>(operator new(sizeof(Rep) + cap)); + // doesn't work in some cases of new being overloaded. Switching + // to the normal allocation, although use an 'int' for systems + // that are overly picky about structure alignment. + const size_type bytesNeeded = sizeof(Rep) + cap; + const size_type intsNeeded = ( bytesNeeded + sizeof(int) - 1 ) / sizeof( int ); + rep_ = reinterpret_cast<Rep*>( new int[ intsNeeded ] ); + + rep_->str[ rep_->size = sz ] = '\0'; + rep_->capacity = cap; + } + else + { + rep_ = &nullrep_; + } + } + + void quit() + { + if (rep_ != &nullrep_) + { + // The rep_ is really an array of ints. (see the allocator, above). + // Cast it back before delete, so the compiler won't incorrectly call destructors. + delete [] ( reinterpret_cast<int*>( rep_ ) ); + } + } + + Rep * rep_; + static Rep nullrep_; + +} ; + + +inline bool operator == (const TiXmlString & a, const TiXmlString & b) +{ + return ( a.length() == b.length() ) // optimization on some platforms + && ( strcmp(a.c_str(), b.c_str()) == 0 ); // actual compare +} +inline bool operator < (const TiXmlString & a, const TiXmlString & b) +{ + return strcmp(a.c_str(), b.c_str()) < 0; +} + +inline bool operator != (const TiXmlString & a, const TiXmlString & b) { return !(a == b); } +inline bool operator > (const TiXmlString & a, const TiXmlString & b) { return b < a; } +inline bool operator <= (const TiXmlString & a, const TiXmlString & b) { return !(b < a); } +inline bool operator >= (const TiXmlString & a, const TiXmlString & b) { return !(a < b); } + +inline bool operator == (const TiXmlString & a, const char* b) { return strcmp(a.c_str(), b) == 0; } +inline bool operator == (const char* a, const TiXmlString & b) { return b == a; } +inline bool operator != (const TiXmlString & a, const char* b) { return !(a == b); } +inline bool operator != (const char* a, const TiXmlString & b) { return !(b == a); } + +TiXmlString operator + (const TiXmlString & a, const TiXmlString & b); +TiXmlString operator + (const TiXmlString & a, const char* b); +TiXmlString operator + (const char* a, const TiXmlString & b); + + +/* + TiXmlOutStream is an emulation of std::ostream. It is based on TiXmlString. + Only the operators that we need for TinyXML have been developped. +*/ +class TiXmlOutStream : public TiXmlString +{ +public : + + // TiXmlOutStream << operator. + TiXmlOutStream & operator << (const TiXmlString & in) + { + *this += in; + return *this; + } + + // TiXmlOutStream << operator. + TiXmlOutStream & operator << (const char * in) + { + *this += in; + return *this; + } + +} ; + +#endif // TIXML_STRING_INCLUDED +#endif // TIXML_USE_STL diff --git a/include/thirdparty/tinyxml/tinyxml.h b/include/thirdparty/tinyxml/tinyxml.h index a3589e5..d051548 100644 --- a/include/thirdparty/tinyxml/tinyxml.h +++ b/include/thirdparty/tinyxml/tinyxml.h @@ -1,1805 +1,1805 @@ -/* -www.sourceforge.net/projects/tinyxml -Original code by Lee Thomason (www.grinninglizard.com) - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any -damages arising from the use of this software. - -Permission is granted to anyone to use this software for any -purpose, including commercial applications, and to alter it and -redistribute it freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must -not claim that you wrote the original software. If you use this -software in a product, an acknowledgment in the product documentation -would be appreciated but is not required. - -2. Altered source versions must be plainly marked as such, and -must not be misrepresented as being the original software. - -3. This notice may not be removed or altered from any source -distribution. -*/ - - -#ifndef TINYXML_INCLUDED -#define TINYXML_INCLUDED - -#ifdef _MSC_VER -#pragma warning( push ) -#pragma warning( disable : 4530 ) -#pragma warning( disable : 4786 ) -#endif - -#include <ctype.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> - -// Help out windows: -#if defined( _DEBUG ) && !defined( DEBUG ) -#define DEBUG -#endif - -#ifdef TIXML_USE_STL - #include <string> - #include <iostream> - #include <sstream> - #define TIXML_STRING std::string -#else - #include "tinystr.h" - #define TIXML_STRING TiXmlString -#endif - -// Deprecated library function hell. Compilers want to use the -// new safe versions. This probably doesn't fully address the problem, -// but it gets closer. There are too many compilers for me to fully -// test. If you get compilation troubles, undefine TIXML_SAFE -#define TIXML_SAFE - -#ifdef TIXML_SAFE - #if defined(_MSC_VER) && (_MSC_VER >= 1400 ) - // Microsoft visual studio, version 2005 and higher. - #define TIXML_SNPRINTF _snprintf_s - #define TIXML_SSCANF sscanf_s - #elif defined(_MSC_VER) && (_MSC_VER >= 1200 ) - // Microsoft visual studio, version 6 and higher. - //#pragma message( "Using _sn* functions." ) - #define TIXML_SNPRINTF _snprintf - #define TIXML_SSCANF sscanf - #elif defined(__GNUC__) && (__GNUC__ >= 3 ) - // GCC version 3 and higher.s - //#warning( "Using sn* functions." ) - #define TIXML_SNPRINTF snprintf - #define TIXML_SSCANF sscanf - #else - #define TIXML_SNPRINTF snprintf - #define TIXML_SSCANF sscanf - #endif -#endif - -class TiXmlDocument; -class TiXmlElement; -class TiXmlComment; -class TiXmlUnknown; -class TiXmlAttribute; -class TiXmlText; -class TiXmlDeclaration; -class TiXmlParsingData; - -const int TIXML_MAJOR_VERSION = 2; -const int TIXML_MINOR_VERSION = 6; -const int TIXML_PATCH_VERSION = 2; - -/* Internal structure for tracking location of items - in the XML file. -*/ -struct TiXmlCursor -{ - TiXmlCursor() { Clear(); } - void Clear() { row = col = -1; } - - int row; // 0 based. - int col; // 0 based. -}; - - -/** - Implements the interface to the "Visitor pattern" (see the Accept() method.) - If you call the Accept() method, it requires being passed a TiXmlVisitor - class to handle callbacks. For nodes that contain other nodes (Document, Element) - you will get called with a VisitEnter/VisitExit pair. Nodes that are always leaves - are simply called with Visit(). - - If you return 'true' from a Visit method, recursive parsing will continue. If you return - false, <b>no children of this node or its sibilings</b> will be Visited. - - All flavors of Visit methods have a default implementation that returns 'true' (continue - visiting). You need to only override methods that are interesting to you. - - Generally Accept() is called on the TiXmlDocument, although all nodes suppert Visiting. - - You should never change the document from a callback. - - @sa TiXmlNode::Accept() -*/ -class TiXmlVisitor -{ -public: - virtual ~TiXmlVisitor() {} - - /// Visit a document. - virtual bool VisitEnter( const TiXmlDocument& /*doc*/ ) { return true; } - /// Visit a document. - virtual bool VisitExit( const TiXmlDocument& /*doc*/ ) { return true; } - - /// Visit an element. - virtual bool VisitEnter( const TiXmlElement& /*element*/, const TiXmlAttribute* /*firstAttribute*/ ) { return true; } - /// Visit an element. - virtual bool VisitExit( const TiXmlElement& /*element*/ ) { return true; } - - /// Visit a declaration - virtual bool Visit( const TiXmlDeclaration& /*declaration*/ ) { return true; } - /// Visit a text node - virtual bool Visit( const TiXmlText& /*text*/ ) { return true; } - /// Visit a comment node - virtual bool Visit( const TiXmlComment& /*comment*/ ) { return true; } - /// Visit an unknown node - virtual bool Visit( const TiXmlUnknown& /*unknown*/ ) { return true; } -}; - -// Only used by Attribute::Query functions -enum -{ - TIXML_SUCCESS, - TIXML_NO_ATTRIBUTE, - TIXML_WRONG_TYPE -}; - - -// Used by the parsing routines. -enum TiXmlEncoding -{ - TIXML_ENCODING_UNKNOWN, - TIXML_ENCODING_UTF8, - TIXML_ENCODING_LEGACY -}; - -const TiXmlEncoding TIXML_DEFAULT_ENCODING = TIXML_ENCODING_UNKNOWN; - -/** TiXmlBase is a base class for every class in TinyXml. - It does little except to establish that TinyXml classes - can be printed and provide some utility functions. - - In XML, the document and elements can contain - other elements and other types of nodes. - - @verbatim - A Document can contain: Element (container or leaf) - Comment (leaf) - Unknown (leaf) - Declaration( leaf ) - - An Element can contain: Element (container or leaf) - Text (leaf) - Attributes (not on tree) - Comment (leaf) - Unknown (leaf) - - A Decleration contains: Attributes (not on tree) - @endverbatim -*/ -class TiXmlBase -{ - friend class TiXmlNode; - friend class TiXmlElement; - friend class TiXmlDocument; - -public: - TiXmlBase() : userData(0) {} - virtual ~TiXmlBase() {} - - /** All TinyXml classes can print themselves to a filestream - or the string class (TiXmlString in non-STL mode, std::string - in STL mode.) Either or both cfile and str can be null. - - This is a formatted print, and will insert - tabs and newlines. - - (For an unformatted stream, use the << operator.) - */ - virtual void Print( FILE* cfile, int depth ) const = 0; - - /** The world does not agree on whether white space should be kept or - not. In order to make everyone happy, these global, static functions - are provided to set whether or not TinyXml will condense all white space - into a single space or not. The default is to condense. Note changing this - value is not thread safe. - */ - static void SetCondenseWhiteSpace( bool condense ) { condenseWhiteSpace = condense; } - - /// Return the current white space setting. - static bool IsWhiteSpaceCondensed() { return condenseWhiteSpace; } - - /** Return the position, in the original source file, of this node or attribute. - The row and column are 1-based. (That is the first row and first column is - 1,1). If the returns values are 0 or less, then the parser does not have - a row and column value. - - Generally, the row and column value will be set when the TiXmlDocument::Load(), - TiXmlDocument::LoadFile(), or any TiXmlNode::Parse() is called. It will NOT be set - when the DOM was created from operator>>. - - The values reflect the initial load. Once the DOM is modified programmatically - (by adding or changing nodes and attributes) the new values will NOT update to - reflect changes in the document. - - There is a minor performance cost to computing the row and column. Computation - can be disabled if TiXmlDocument::SetTabSize() is called with 0 as the value. - - @sa TiXmlDocument::SetTabSize() - */ - int Row() const { return location.row + 1; } - int Column() const { return location.col + 1; } ///< See Row() - - void SetUserData( void* user ) { userData = user; } ///< Set a pointer to arbitrary user data. - void* GetUserData() { return userData; } ///< Get a pointer to arbitrary user data. - const void* GetUserData() const { return userData; } ///< Get a pointer to arbitrary user data. - - // Table that returs, for a given lead byte, the total number of bytes - // in the UTF-8 sequence. - static const int utf8ByteTable[256]; - - virtual const char* Parse( const char* p, - TiXmlParsingData* data, - TiXmlEncoding encoding /*= TIXML_ENCODING_UNKNOWN */ ) = 0; - - /** Expands entities in a string. Note this should not contian the tag's '<', '>', etc, - or they will be transformed into entities! - */ - static void EncodeString( const TIXML_STRING& str, TIXML_STRING* out ); - - enum - { - TIXML_NO_ERROR = 0, - TIXML_ERROR, - TIXML_ERROR_OPENING_FILE, - TIXML_ERROR_PARSING_ELEMENT, - TIXML_ERROR_FAILED_TO_READ_ELEMENT_NAME, - TIXML_ERROR_READING_ELEMENT_VALUE, - TIXML_ERROR_READING_ATTRIBUTES, - TIXML_ERROR_PARSING_EMPTY, - TIXML_ERROR_READING_END_TAG, - TIXML_ERROR_PARSING_UNKNOWN, - TIXML_ERROR_PARSING_COMMENT, - TIXML_ERROR_PARSING_DECLARATION, - TIXML_ERROR_DOCUMENT_EMPTY, - TIXML_ERROR_EMBEDDED_NULL, - TIXML_ERROR_PARSING_CDATA, - TIXML_ERROR_DOCUMENT_TOP_ONLY, - - TIXML_ERROR_STRING_COUNT - }; - -protected: - - static const char* SkipWhiteSpace( const char*, TiXmlEncoding encoding ); - - inline static bool IsWhiteSpace( char c ) - { - return ( isspace( (unsigned char) c ) || c == '\n' || c == '\r' ); - } - inline static bool IsWhiteSpace( int c ) - { - if ( c < 256 ) - return IsWhiteSpace( (char) c ); - return false; // Again, only truly correct for English/Latin...but usually works. - } - - #ifdef TIXML_USE_STL - static bool StreamWhiteSpace( std::istream * in, TIXML_STRING * tag ); - static bool StreamTo( std::istream * in, int character, TIXML_STRING * tag ); - #endif - - /* Reads an XML name into the string provided. Returns - a pointer just past the last character of the name, - or 0 if the function has an error. - */ - static const char* ReadName( const char* p, TIXML_STRING* name, TiXmlEncoding encoding ); - - /* Reads text. Returns a pointer past the given end tag. - Wickedly complex options, but it keeps the (sensitive) code in one place. - */ - static const char* ReadText( const char* in, // where to start - TIXML_STRING* text, // the string read - bool ignoreWhiteSpace, // whether to keep the white space - const char* endTag, // what ends this text - bool ignoreCase, // whether to ignore case in the end tag - TiXmlEncoding encoding ); // the current encoding - - // If an entity has been found, transform it into a character. - static const char* GetEntity( const char* in, char* value, int* length, TiXmlEncoding encoding ); - - // Get a character, while interpreting entities. - // The length can be from 0 to 4 bytes. - inline static const char* GetChar( const char* p, char* _value, int* length, TiXmlEncoding encoding ) - { - assert( p ); - if ( encoding == TIXML_ENCODING_UTF8 ) - { - *length = utf8ByteTable[ *((const unsigned char*)p) ]; - assert( *length >= 0 && *length < 5 ); - } - else - { - *length = 1; - } - - if ( *length == 1 ) - { - if ( *p == '&' ) - return GetEntity( p, _value, length, encoding ); - *_value = *p; - return p+1; - } - else if ( *length ) - { - //strncpy( _value, p, *length ); // lots of compilers don't like this function (unsafe), - // and the null terminator isn't needed - for( int i=0; p[i] && i<*length; ++i ) { - _value[i] = p[i]; - } - return p + (*length); - } - else - { - // Not valid text. - return 0; - } - } - - // Return true if the next characters in the stream are any of the endTag sequences. - // Ignore case only works for english, and should only be relied on when comparing - // to English words: StringEqual( p, "version", true ) is fine. - static bool StringEqual( const char* p, - const char* endTag, - bool ignoreCase, - TiXmlEncoding encoding ); - - static const char* errorString[ TIXML_ERROR_STRING_COUNT ]; - - TiXmlCursor location; - - /// Field containing a generic user pointer - void* userData; - - // None of these methods are reliable for any language except English. - // Good for approximation, not great for accuracy. - static int IsAlpha( unsigned char anyByte, TiXmlEncoding encoding ); - static int IsAlphaNum( unsigned char anyByte, TiXmlEncoding encoding ); - inline static int ToLower( int v, TiXmlEncoding encoding ) - { - if ( encoding == TIXML_ENCODING_UTF8 ) - { - if ( v < 128 ) return tolower( v ); - return v; - } - else - { - return tolower( v ); - } - } - static void ConvertUTF32ToUTF8( unsigned long input, char* output, int* length ); - -private: - TiXmlBase( const TiXmlBase& ); // not implemented. - void operator=( const TiXmlBase& base ); // not allowed. - - struct Entity - { - const char* str; - unsigned int strLength; - char chr; - }; - enum - { - NUM_ENTITY = 5, - MAX_ENTITY_LENGTH = 6 - - }; - static Entity entity[ NUM_ENTITY ]; - static bool condenseWhiteSpace; -}; - - -/** The parent class for everything in the Document Object Model. - (Except for attributes). - Nodes have siblings, a parent, and children. A node can be - in a document, or stand on its own. The type of a TiXmlNode - can be queried, and it can be cast to its more defined type. -*/ -class TiXmlNode : public TiXmlBase -{ - friend class TiXmlDocument; - friend class TiXmlElement; - -public: - #ifdef TIXML_USE_STL - - /** An input stream operator, for every class. Tolerant of newlines and - formatting, but doesn't expect them. - */ - friend std::istream& operator >> (std::istream& in, TiXmlNode& base); - - /** An output stream operator, for every class. Note that this outputs - without any newlines or formatting, as opposed to Print(), which - includes tabs and new lines. - - The operator<< and operator>> are not completely symmetric. Writing - a node to a stream is very well defined. You'll get a nice stream - of output, without any extra whitespace or newlines. - - But reading is not as well defined. (As it always is.) If you create - a TiXmlElement (for example) and read that from an input stream, - the text needs to define an element or junk will result. This is - true of all input streams, but it's worth keeping in mind. - - A TiXmlDocument will read nodes until it reads a root element, and - all the children of that root element. - */ - friend std::ostream& operator<< (std::ostream& out, const TiXmlNode& base); - - /// Appends the XML node or attribute to a std::string. - friend std::string& operator<< (std::string& out, const TiXmlNode& base ); - - #endif - - /** The types of XML nodes supported by TinyXml. (All the - unsupported types are picked up by UNKNOWN.) - */ - enum NodeType - { - TINYXML_DOCUMENT, - TINYXML_ELEMENT, - TINYXML_COMMENT, - TINYXML_UNKNOWN, - TINYXML_TEXT, - TINYXML_DECLARATION, - TINYXML_TYPECOUNT - }; - - virtual ~TiXmlNode(); - - /** The meaning of 'value' changes for the specific type of - TiXmlNode. - @verbatim - Document: filename of the xml file - Element: name of the element - Comment: the comment text - Unknown: the tag contents - Text: the text string - @endverbatim - - The subclasses will wrap this function. - */ - const char *Value() const { return value.c_str (); } - - #ifdef TIXML_USE_STL - /** Return Value() as a std::string. If you only use STL, - this is more efficient than calling Value(). - Only available in STL mode. - */ - const std::string& ValueStr() const { return value; } - #endif - - const TIXML_STRING& ValueTStr() const { return value; } - - /** Changes the value of the node. Defined as: - @verbatim - Document: filename of the xml file - Element: name of the element - Comment: the comment text - Unknown: the tag contents - Text: the text string - @endverbatim - */ - void SetValue(const char * _value) { value = _value;} - - #ifdef TIXML_USE_STL - /// STL std::string form. - void SetValue( const std::string& _value ) { value = _value; } - #endif - - /// Delete all the children of this node. Does not affect 'this'. - void Clear(); - - /// One step up the DOM. - TiXmlNode* Parent() { return parent; } - const TiXmlNode* Parent() const { return parent; } - - const TiXmlNode* FirstChild() const { return firstChild; } ///< The first child of this node. Will be null if there are no children. - TiXmlNode* FirstChild() { return firstChild; } - const TiXmlNode* FirstChild( const char * value ) const; ///< The first child of this node with the matching 'value'. Will be null if none found. - /// The first child of this node with the matching 'value'. Will be null if none found. - TiXmlNode* FirstChild( const char * _value ) { - // Call through to the const version - safe since nothing is changed. Exiting syntax: cast this to a const (always safe) - // call the method, cast the return back to non-const. - return const_cast< TiXmlNode* > ((const_cast< const TiXmlNode* >(this))->FirstChild( _value )); - } - const TiXmlNode* LastChild() const { return lastChild; } /// The last child of this node. Will be null if there are no children. - TiXmlNode* LastChild() { return lastChild; } - - const TiXmlNode* LastChild( const char * value ) const; /// The last child of this node matching 'value'. Will be null if there are no children. - TiXmlNode* LastChild( const char * _value ) { - return const_cast< TiXmlNode* > ((const_cast< const TiXmlNode* >(this))->LastChild( _value )); - } - - #ifdef TIXML_USE_STL - const TiXmlNode* FirstChild( const std::string& _value ) const { return FirstChild (_value.c_str ()); } ///< STL std::string form. - TiXmlNode* FirstChild( const std::string& _value ) { return FirstChild (_value.c_str ()); } ///< STL std::string form. - const TiXmlNode* LastChild( const std::string& _value ) const { return LastChild (_value.c_str ()); } ///< STL std::string form. - TiXmlNode* LastChild( const std::string& _value ) { return LastChild (_value.c_str ()); } ///< STL std::string form. - #endif - - /** An alternate way to walk the children of a node. - One way to iterate over nodes is: - @verbatim - for( child = parent->FirstChild(); child; child = child->NextSibling() ) - @endverbatim - - IterateChildren does the same thing with the syntax: - @verbatim - child = 0; - while( child = parent->IterateChildren( child ) ) - @endverbatim - - IterateChildren takes the previous child as input and finds - the next one. If the previous child is null, it returns the - first. IterateChildren will return null when done. - */ - const TiXmlNode* IterateChildren( const TiXmlNode* previous ) const; - TiXmlNode* IterateChildren( const TiXmlNode* previous ) { - return const_cast< TiXmlNode* >( (const_cast< const TiXmlNode* >(this))->IterateChildren( previous ) ); - } - - /// This flavor of IterateChildren searches for children with a particular 'value' - const TiXmlNode* IterateChildren( const char * value, const TiXmlNode* previous ) const; - TiXmlNode* IterateChildren( const char * _value, const TiXmlNode* previous ) { - return const_cast< TiXmlNode* >( (const_cast< const TiXmlNode* >(this))->IterateChildren( _value, previous ) ); - } - - #ifdef TIXML_USE_STL - const TiXmlNode* IterateChildren( const std::string& _value, const TiXmlNode* previous ) const { return IterateChildren (_value.c_str (), previous); } ///< STL std::string form. - TiXmlNode* IterateChildren( const std::string& _value, const TiXmlNode* previous ) { return IterateChildren (_value.c_str (), previous); } ///< STL std::string form. - #endif - - /** Add a new node related to this. Adds a child past the LastChild. - Returns a pointer to the new object or NULL if an error occured. - */ - TiXmlNode* InsertEndChild( const TiXmlNode& addThis ); - - - /** Add a new node related to this. Adds a child past the LastChild. - - NOTE: the node to be added is passed by pointer, and will be - henceforth owned (and deleted) by tinyXml. This method is efficient - and avoids an extra copy, but should be used with care as it - uses a different memory model than the other insert functions. - - @sa InsertEndChild - */ - TiXmlNode* LinkEndChild( TiXmlNode* addThis ); - - /** Add a new node related to this. Adds a child before the specified child. - Returns a pointer to the new object or NULL if an error occured. - */ - TiXmlNode* InsertBeforeChild( TiXmlNode* beforeThis, const TiXmlNode& addThis ); - - /** Add a new node related to this. Adds a child after the specified child. - Returns a pointer to the new object or NULL if an error occured. - */ - TiXmlNode* InsertAfterChild( TiXmlNode* afterThis, const TiXmlNode& addThis ); - - /** Replace a child of this node. - Returns a pointer to the new object or NULL if an error occured. - */ - TiXmlNode* ReplaceChild( TiXmlNode* replaceThis, const TiXmlNode& withThis ); - - /// Delete a child of this node. - bool RemoveChild( TiXmlNode* removeThis ); - - /// Navigate to a sibling node. - const TiXmlNode* PreviousSibling() const { return prev; } - TiXmlNode* PreviousSibling() { return prev; } - - /// Navigate to a sibling node. - const TiXmlNode* PreviousSibling( const char * ) const; - TiXmlNode* PreviousSibling( const char *_prev ) { - return const_cast< TiXmlNode* >( (const_cast< const TiXmlNode* >(this))->PreviousSibling( _prev ) ); - } - - #ifdef TIXML_USE_STL - const TiXmlNode* PreviousSibling( const std::string& _value ) const { return PreviousSibling (_value.c_str ()); } ///< STL std::string form. - TiXmlNode* PreviousSibling( const std::string& _value ) { return PreviousSibling (_value.c_str ()); } ///< STL std::string form. - const TiXmlNode* NextSibling( const std::string& _value) const { return NextSibling (_value.c_str ()); } ///< STL std::string form. - TiXmlNode* NextSibling( const std::string& _value) { return NextSibling (_value.c_str ()); } ///< STL std::string form. - #endif - - /// Navigate to a sibling node. - const TiXmlNode* NextSibling() const { return next; } - TiXmlNode* NextSibling() { return next; } - - /// Navigate to a sibling node with the given 'value'. - const TiXmlNode* NextSibling( const char * ) const; - TiXmlNode* NextSibling( const char* _next ) { - return const_cast< TiXmlNode* >( (const_cast< const TiXmlNode* >(this))->NextSibling( _next ) ); - } - - /** Convenience function to get through elements. - Calls NextSibling and ToElement. Will skip all non-Element - nodes. Returns 0 if there is not another element. - */ - const TiXmlElement* NextSiblingElement() const; - TiXmlElement* NextSiblingElement() { - return const_cast< TiXmlElement* >( (const_cast< const TiXmlNode* >(this))->NextSiblingElement() ); - } - - /** Convenience function to get through elements. - Calls NextSibling and ToElement. Will skip all non-Element - nodes. Returns 0 if there is not another element. - */ - const TiXmlElement* NextSiblingElement( const char * ) const; - TiXmlElement* NextSiblingElement( const char *_next ) { - return const_cast< TiXmlElement* >( (const_cast< const TiXmlNode* >(this))->NextSiblingElement( _next ) ); - } - - #ifdef TIXML_USE_STL - const TiXmlElement* NextSiblingElement( const std::string& _value) const { return NextSiblingElement (_value.c_str ()); } ///< STL std::string form. - TiXmlElement* NextSiblingElement( const std::string& _value) { return NextSiblingElement (_value.c_str ()); } ///< STL std::string form. - #endif - - /// Convenience function to get through elements. - const TiXmlElement* FirstChildElement() const; - TiXmlElement* FirstChildElement() { - return const_cast< TiXmlElement* >( (const_cast< const TiXmlNode* >(this))->FirstChildElement() ); - } - - /// Convenience function to get through elements. - const TiXmlElement* FirstChildElement( const char * _value ) const; - TiXmlElement* FirstChildElement( const char * _value ) { - return const_cast< TiXmlElement* >( (const_cast< const TiXmlNode* >(this))->FirstChildElement( _value ) ); - } - - #ifdef TIXML_USE_STL - const TiXmlElement* FirstChildElement( const std::string& _value ) const { return FirstChildElement (_value.c_str ()); } ///< STL std::string form. - TiXmlElement* FirstChildElement( const std::string& _value ) { return FirstChildElement (_value.c_str ()); } ///< STL std::string form. - #endif - - /** Query the type (as an enumerated value, above) of this node. - The possible types are: TINYXML_DOCUMENT, TINYXML_ELEMENT, TINYXML_COMMENT, - TINYXML_UNKNOWN, TINYXML_TEXT, and TINYXML_DECLARATION. - */ - int Type() const { return type; } - - /** Return a pointer to the Document this node lives in. - Returns null if not in a document. - */ - const TiXmlDocument* GetDocument() const; - TiXmlDocument* GetDocument() { - return const_cast< TiXmlDocument* >( (const_cast< const TiXmlNode* >(this))->GetDocument() ); - } - - /// Returns true if this node has no children. - bool NoChildren() const { return !firstChild; } - - virtual const TiXmlDocument* ToDocument() const { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. - virtual const TiXmlElement* ToElement() const { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. - virtual const TiXmlComment* ToComment() const { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. - virtual const TiXmlUnknown* ToUnknown() const { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. - virtual const TiXmlText* ToText() const { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. - virtual const TiXmlDeclaration* ToDeclaration() const { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. - - virtual TiXmlDocument* ToDocument() { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. - virtual TiXmlElement* ToElement() { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. - virtual TiXmlComment* ToComment() { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. - virtual TiXmlUnknown* ToUnknown() { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. - virtual TiXmlText* ToText() { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. - virtual TiXmlDeclaration* ToDeclaration() { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. - - /** Create an exact duplicate of this node and return it. The memory must be deleted - by the caller. - */ - virtual TiXmlNode* Clone() const = 0; - - /** Accept a hierchical visit the nodes in the TinyXML DOM. Every node in the - XML tree will be conditionally visited and the host will be called back - via the TiXmlVisitor interface. - - This is essentially a SAX interface for TinyXML. (Note however it doesn't re-parse - the XML for the callbacks, so the performance of TinyXML is unchanged by using this - interface versus any other.) - - The interface has been based on ideas from: - - - http://www.saxproject.org/ - - http://c2.com/cgi/wiki?HierarchicalVisitorPattern - - Which are both good references for "visiting". - - An example of using Accept(): - @verbatim - TiXmlPrinter printer; - tinyxmlDoc.Accept( &printer ); - const char* xmlcstr = printer.CStr(); - @endverbatim - */ - virtual bool Accept( TiXmlVisitor* visitor ) const = 0; - -protected: - TiXmlNode( NodeType _type ); - - // Copy to the allocated object. Shared functionality between Clone, Copy constructor, - // and the assignment operator. - void CopyTo( TiXmlNode* target ) const; - - #ifdef TIXML_USE_STL - // The real work of the input operator. - virtual void StreamIn( std::istream* in, TIXML_STRING* tag ) = 0; - #endif - - // Figure out what is at *p, and parse it. Returns null if it is not an xml node. - TiXmlNode* Identify( const char* start, TiXmlEncoding encoding ); - - TiXmlNode* parent; - NodeType type; - - TiXmlNode* firstChild; - TiXmlNode* lastChild; - - TIXML_STRING value; - - TiXmlNode* prev; - TiXmlNode* next; - -private: - TiXmlNode( const TiXmlNode& ); // not implemented. - void operator=( const TiXmlNode& base ); // not allowed. -}; - - -/** An attribute is a name-value pair. Elements have an arbitrary - number of attributes, each with a unique name. - - @note The attributes are not TiXmlNodes, since they are not - part of the tinyXML document object model. There are other - suggested ways to look at this problem. -*/ -class TiXmlAttribute : public TiXmlBase -{ - friend class TiXmlAttributeSet; - -public: - /// Construct an empty attribute. - TiXmlAttribute() : TiXmlBase() - { - document = 0; - prev = next = 0; - } - - #ifdef TIXML_USE_STL - /// std::string constructor. - TiXmlAttribute( const std::string& _name, const std::string& _value ) - { - name = _name; - value = _value; - document = 0; - prev = next = 0; - } - #endif - - /// Construct an attribute with a name and value. - TiXmlAttribute( const char * _name, const char * _value ) - { - name = _name; - value = _value; - document = 0; - prev = next = 0; - } - - const char* Name() const { return name.c_str(); } ///< Return the name of this attribute. - const char* Value() const { return value.c_str(); } ///< Return the value of this attribute. - #ifdef TIXML_USE_STL - const std::string& ValueStr() const { return value; } ///< Return the value of this attribute. - #endif - int IntValue() const; ///< Return the value of this attribute, converted to an integer. - double DoubleValue() const; ///< Return the value of this attribute, converted to a double. - - // Get the tinyxml string representation - const TIXML_STRING& NameTStr() const { return name; } - - /** QueryIntValue examines the value string. It is an alternative to the - IntValue() method with richer error checking. - If the value is an integer, it is stored in 'value' and - the call returns TIXML_SUCCESS. If it is not - an integer, it returns TIXML_WRONG_TYPE. - - A specialized but useful call. Note that for success it returns 0, - which is the opposite of almost all other TinyXml calls. - */ - int QueryIntValue( int* _value ) const; - /// QueryDoubleValue examines the value string. See QueryIntValue(). - int QueryDoubleValue( double* _value ) const; - - void SetName( const char* _name ) { name = _name; } ///< Set the name of this attribute. - void SetValue( const char* _value ) { value = _value; } ///< Set the value. - - void SetIntValue( int _value ); ///< Set the value from an integer. - void SetDoubleValue( double _value ); ///< Set the value from a double. - - #ifdef TIXML_USE_STL - /// STL std::string form. - void SetName( const std::string& _name ) { name = _name; } - /// STL std::string form. - void SetValue( const std::string& _value ) { value = _value; } - #endif - - /// Get the next sibling attribute in the DOM. Returns null at end. - const TiXmlAttribute* Next() const; - TiXmlAttribute* Next() { - return const_cast< TiXmlAttribute* >( (const_cast< const TiXmlAttribute* >(this))->Next() ); - } - - /// Get the previous sibling attribute in the DOM. Returns null at beginning. - const TiXmlAttribute* Previous() const; - TiXmlAttribute* Previous() { - return const_cast< TiXmlAttribute* >( (const_cast< const TiXmlAttribute* >(this))->Previous() ); - } - - bool operator==( const TiXmlAttribute& rhs ) const { return rhs.name == name; } - bool operator<( const TiXmlAttribute& rhs ) const { return name < rhs.name; } - bool operator>( const TiXmlAttribute& rhs ) const { return name > rhs.name; } - - /* Attribute parsing starts: first letter of the name - returns: the next char after the value end quote - */ - virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding ); - - // Prints this Attribute to a FILE stream. - virtual void Print( FILE* cfile, int depth ) const { - Print( cfile, depth, 0 ); - } - void Print( FILE* cfile, int depth, TIXML_STRING* str ) const; - - // [internal use] - // Set the document pointer so the attribute can report errors. - void SetDocument( TiXmlDocument* doc ) { document = doc; } - -private: - TiXmlAttribute( const TiXmlAttribute& ); // not implemented. - void operator=( const TiXmlAttribute& base ); // not allowed. - - TiXmlDocument* document; // A pointer back to a document, for error reporting. - TIXML_STRING name; - TIXML_STRING value; - TiXmlAttribute* prev; - TiXmlAttribute* next; -}; - - -/* A class used to manage a group of attributes. - It is only used internally, both by the ELEMENT and the DECLARATION. - - The set can be changed transparent to the Element and Declaration - classes that use it, but NOT transparent to the Attribute - which has to implement a next() and previous() method. Which makes - it a bit problematic and prevents the use of STL. - - This version is implemented with circular lists because: - - I like circular lists - - it demonstrates some independence from the (typical) doubly linked list. -*/ -class TiXmlAttributeSet -{ -public: - TiXmlAttributeSet(); - ~TiXmlAttributeSet(); - - void Add( TiXmlAttribute* attribute ); - void Remove( TiXmlAttribute* attribute ); - - const TiXmlAttribute* First() const { return ( sentinel.next == &sentinel ) ? 0 : sentinel.next; } - TiXmlAttribute* First() { return ( sentinel.next == &sentinel ) ? 0 : sentinel.next; } - const TiXmlAttribute* Last() const { return ( sentinel.prev == &sentinel ) ? 0 : sentinel.prev; } - TiXmlAttribute* Last() { return ( sentinel.prev == &sentinel ) ? 0 : sentinel.prev; } - - TiXmlAttribute* Find( const char* _name ) const; - TiXmlAttribute* FindOrCreate( const char* _name ); - -# ifdef TIXML_USE_STL - TiXmlAttribute* Find( const std::string& _name ) const; - TiXmlAttribute* FindOrCreate( const std::string& _name ); -# endif - - -private: - //*ME: Because of hidden/disabled copy-construktor in TiXmlAttribute (sentinel-element), - //*ME: this class must be also use a hidden/disabled copy-constructor !!! - TiXmlAttributeSet( const TiXmlAttributeSet& ); // not allowed - void operator=( const TiXmlAttributeSet& ); // not allowed (as TiXmlAttribute) - - TiXmlAttribute sentinel; -}; - - -/** The element is a container class. It has a value, the element name, - and can contain other elements, text, comments, and unknowns. - Elements also contain an arbitrary number of attributes. -*/ -class TiXmlElement : public TiXmlNode -{ -public: - /// Construct an element. - TiXmlElement (const char * in_value); - - #ifdef TIXML_USE_STL - /// std::string constructor. - TiXmlElement( const std::string& _value ); - #endif - - TiXmlElement( const TiXmlElement& ); - - TiXmlElement& operator=( const TiXmlElement& base ); - - virtual ~TiXmlElement(); - - /** Given an attribute name, Attribute() returns the value - for the attribute of that name, or null if none exists. - */ - const char* Attribute( const char* name ) const; - - /** Given an attribute name, Attribute() returns the value - for the attribute of that name, or null if none exists. - If the attribute exists and can be converted to an integer, - the integer value will be put in the return 'i', if 'i' - is non-null. - */ - const char* Attribute( const char* name, int* i ) const; - - /** Given an attribute name, Attribute() returns the value - for the attribute of that name, or null if none exists. - If the attribute exists and can be converted to an double, - the double value will be put in the return 'd', if 'd' - is non-null. - */ - const char* Attribute( const char* name, double* d ) const; - - /** QueryIntAttribute examines the attribute - it is an alternative to the - Attribute() method with richer error checking. - If the attribute is an integer, it is stored in 'value' and - the call returns TIXML_SUCCESS. If it is not - an integer, it returns TIXML_WRONG_TYPE. If the attribute - does not exist, then TIXML_NO_ATTRIBUTE is returned. - */ - int QueryIntAttribute( const char* name, int* _value ) const; - /// QueryUnsignedAttribute examines the attribute - see QueryIntAttribute(). - int QueryUnsignedAttribute( const char* name, unsigned* _value ) const; - /** QueryBoolAttribute examines the attribute - see QueryIntAttribute(). - Note that '1', 'true', or 'yes' are considered true, while '0', 'false' - and 'no' are considered false. - */ - int QueryBoolAttribute( const char* name, bool* _value ) const; - /// QueryDoubleAttribute examines the attribute - see QueryIntAttribute(). - int QueryDoubleAttribute( const char* name, double* _value ) const; - /// QueryFloatAttribute examines the attribute - see QueryIntAttribute(). - int QueryFloatAttribute( const char* name, float* _value ) const { - double d; - int result = QueryDoubleAttribute( name, &d ); - if ( result == TIXML_SUCCESS ) { - *_value = (float)d; - } - return result; - } - - #ifdef TIXML_USE_STL - /// QueryStringAttribute examines the attribute - see QueryIntAttribute(). - int QueryStringAttribute( const char* name, std::string* _value ) const { - const char* cstr = Attribute( name ); - if ( cstr ) { - *_value = std::string( cstr ); - return TIXML_SUCCESS; - } - return TIXML_NO_ATTRIBUTE; - } - - /** Template form of the attribute query which will try to read the - attribute into the specified type. Very easy, very powerful, but - be careful to make sure to call this with the correct type. - - NOTE: This method doesn't work correctly for 'string' types that contain spaces. - - @return TIXML_SUCCESS, TIXML_WRONG_TYPE, or TIXML_NO_ATTRIBUTE - */ - template< typename T > int QueryValueAttribute( const std::string& name, T* outValue ) const - { - const TiXmlAttribute* node = attributeSet.Find( name ); - if ( !node ) - return TIXML_NO_ATTRIBUTE; - - std::stringstream sstream( node->ValueStr() ); - sstream >> *outValue; - if ( !sstream.fail() ) - return TIXML_SUCCESS; - return TIXML_WRONG_TYPE; - } - - int QueryValueAttribute( const std::string& name, std::string* outValue ) const - { - const TiXmlAttribute* node = attributeSet.Find( name ); - if ( !node ) - return TIXML_NO_ATTRIBUTE; - *outValue = node->ValueStr(); - return TIXML_SUCCESS; - } - #endif - - /** Sets an attribute of name to a given value. The attribute - will be created if it does not exist, or changed if it does. - */ - void SetAttribute( const char* name, const char * _value ); - - #ifdef TIXML_USE_STL - const std::string* Attribute( const std::string& name ) const; - const std::string* Attribute( const std::string& name, int* i ) const; - const std::string* Attribute( const std::string& name, double* d ) const; - int QueryIntAttribute( const std::string& name, int* _value ) const; - int QueryDoubleAttribute( const std::string& name, double* _value ) const; - - /// STL std::string form. - void SetAttribute( const std::string& name, const std::string& _value ); - ///< STL std::string form. - void SetAttribute( const std::string& name, int _value ); - ///< STL std::string form. - void SetDoubleAttribute( const std::string& name, double value ); - #endif - - /** Sets an attribute of name to a given value. The attribute - will be created if it does not exist, or changed if it does. - */ - void SetAttribute( const char * name, int value ); - - /** Sets an attribute of name to a given value. The attribute - will be created if it does not exist, or changed if it does. - */ - void SetDoubleAttribute( const char * name, double value ); - - /** Deletes an attribute with the given name. - */ - void RemoveAttribute( const char * name ); - #ifdef TIXML_USE_STL - void RemoveAttribute( const std::string& name ) { RemoveAttribute (name.c_str ()); } ///< STL std::string form. - #endif - - const TiXmlAttribute* FirstAttribute() const { return attributeSet.First(); } ///< Access the first attribute in this element. - TiXmlAttribute* FirstAttribute() { return attributeSet.First(); } - const TiXmlAttribute* LastAttribute() const { return attributeSet.Last(); } ///< Access the last attribute in this element. - TiXmlAttribute* LastAttribute() { return attributeSet.Last(); } - - /** Convenience function for easy access to the text inside an element. Although easy - and concise, GetText() is limited compared to getting the TiXmlText child - and accessing it directly. - - If the first child of 'this' is a TiXmlText, the GetText() - returns the character string of the Text node, else null is returned. - - This is a convenient method for getting the text of simple contained text: - @verbatim - <foo>This is text</foo> - const char* str = fooElement->GetText(); - @endverbatim - - 'str' will be a pointer to "This is text". - - Note that this function can be misleading. If the element foo was created from - this XML: - @verbatim - <foo><b>This is text</b></foo> - @endverbatim - - then the value of str would be null. The first child node isn't a text node, it is - another element. From this XML: - @verbatim - <foo>This is <b>text</b></foo> - @endverbatim - GetText() will return "This is ". - - WARNING: GetText() accesses a child node - don't become confused with the - similarly named TiXmlHandle::Text() and TiXmlNode::ToText() which are - safe type casts on the referenced node. - */ - const char* GetText() const; - - /// Creates a new Element and returns it - the returned element is a copy. - virtual TiXmlNode* Clone() const; - // Print the Element to a FILE stream. - virtual void Print( FILE* cfile, int depth ) const; - - /* Attribtue parsing starts: next char past '<' - returns: next char past '>' - */ - virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding ); - - virtual const TiXmlElement* ToElement() const { return this; } ///< Cast to a more defined type. Will return null not of the requested type. - virtual TiXmlElement* ToElement() { return this; } ///< Cast to a more defined type. Will return null not of the requested type. - - /** Walk the XML tree visiting this node and all of its children. - */ - virtual bool Accept( TiXmlVisitor* visitor ) const; - -protected: - - void CopyTo( TiXmlElement* target ) const; - void ClearThis(); // like clear, but initializes 'this' object as well - - // Used to be public [internal use] - #ifdef TIXML_USE_STL - virtual void StreamIn( std::istream * in, TIXML_STRING * tag ); - #endif - /* [internal use] - Reads the "value" of the element -- another element, or text. - This should terminate with the current end tag. - */ - const char* ReadValue( const char* in, TiXmlParsingData* prevData, TiXmlEncoding encoding ); - -private: - TiXmlAttributeSet attributeSet; -}; - - -/** An XML comment. -*/ -class TiXmlComment : public TiXmlNode -{ -public: - /// Constructs an empty comment. - TiXmlComment() : TiXmlNode( TiXmlNode::TINYXML_COMMENT ) {} - /// Construct a comment from text. - TiXmlComment( const char* _value ) : TiXmlNode( TiXmlNode::TINYXML_COMMENT ) { - SetValue( _value ); - } - TiXmlComment( const TiXmlComment& ); - TiXmlComment& operator=( const TiXmlComment& base ); - - virtual ~TiXmlComment() {} - - /// Returns a copy of this Comment. - virtual TiXmlNode* Clone() const; - // Write this Comment to a FILE stream. - virtual void Print( FILE* cfile, int depth ) const; - - /* Attribtue parsing starts: at the ! of the !-- - returns: next char past '>' - */ - virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding ); - - virtual const TiXmlComment* ToComment() const { return this; } ///< Cast to a more defined type. Will return null not of the requested type. - virtual TiXmlComment* ToComment() { return this; } ///< Cast to a more defined type. Will return null not of the requested type. - - /** Walk the XML tree visiting this node and all of its children. - */ - virtual bool Accept( TiXmlVisitor* visitor ) const; - -protected: - void CopyTo( TiXmlComment* target ) const; - - // used to be public - #ifdef TIXML_USE_STL - virtual void StreamIn( std::istream * in, TIXML_STRING * tag ); - #endif -// virtual void StreamOut( TIXML_OSTREAM * out ) const; - -private: - -}; - - -/** XML text. A text node can have 2 ways to output the next. "normal" output - and CDATA. It will default to the mode it was parsed from the XML file and - you generally want to leave it alone, but you can change the output mode with - SetCDATA() and query it with CDATA(). -*/ -class TiXmlText : public TiXmlNode -{ - friend class TiXmlElement; -public: - /** Constructor for text element. By default, it is treated as - normal, encoded text. If you want it be output as a CDATA text - element, set the parameter _cdata to 'true' - */ - TiXmlText (const char * initValue ) : TiXmlNode (TiXmlNode::TINYXML_TEXT) - { - SetValue( initValue ); - cdata = false; - } - virtual ~TiXmlText() {} - - #ifdef TIXML_USE_STL - /// Constructor. - TiXmlText( const std::string& initValue ) : TiXmlNode (TiXmlNode::TINYXML_TEXT) - { - SetValue( initValue ); - cdata = false; - } - #endif - - TiXmlText( const TiXmlText& copy ) : TiXmlNode( TiXmlNode::TINYXML_TEXT ) { copy.CopyTo( this ); } - TiXmlText& operator=( const TiXmlText& base ) { base.CopyTo( this ); return *this; } - - // Write this text object to a FILE stream. - virtual void Print( FILE* cfile, int depth ) const; - - /// Queries whether this represents text using a CDATA section. - bool CDATA() const { return cdata; } - /// Turns on or off a CDATA representation of text. - void SetCDATA( bool _cdata ) { cdata = _cdata; } - - virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding ); - - virtual const TiXmlText* ToText() const { return this; } ///< Cast to a more defined type. Will return null not of the requested type. - virtual TiXmlText* ToText() { return this; } ///< Cast to a more defined type. Will return null not of the requested type. - - /** Walk the XML tree visiting this node and all of its children. - */ - virtual bool Accept( TiXmlVisitor* content ) const; - -protected : - /// [internal use] Creates a new Element and returns it. - virtual TiXmlNode* Clone() const; - void CopyTo( TiXmlText* target ) const; - - bool Blank() const; // returns true if all white space and new lines - // [internal use] - #ifdef TIXML_USE_STL - virtual void StreamIn( std::istream * in, TIXML_STRING * tag ); - #endif - -private: - bool cdata; // true if this should be input and output as a CDATA style text element -}; - - -/** In correct XML the declaration is the first entry in the file. - @verbatim - <?xml version="1.0" standalone="yes"?> - @endverbatim - - TinyXml will happily read or write files without a declaration, - however. There are 3 possible attributes to the declaration: - version, encoding, and standalone. - - Note: In this version of the code, the attributes are - handled as special cases, not generic attributes, simply - because there can only be at most 3 and they are always the same. -*/ -class TiXmlDeclaration : public TiXmlNode -{ -public: - /// Construct an empty declaration. - TiXmlDeclaration() : TiXmlNode( TiXmlNode::TINYXML_DECLARATION ) {} - -#ifdef TIXML_USE_STL - /// Constructor. - TiXmlDeclaration( const std::string& _version, - const std::string& _encoding, - const std::string& _standalone ); -#endif - - /// Construct. - TiXmlDeclaration( const char* _version, - const char* _encoding, - const char* _standalone ); - - TiXmlDeclaration( const TiXmlDeclaration& copy ); - TiXmlDeclaration& operator=( const TiXmlDeclaration& copy ); - - virtual ~TiXmlDeclaration() {} - - /// Version. Will return an empty string if none was found. - const char *Version() const { return version.c_str (); } - /// Encoding. Will return an empty string if none was found. - const char *Encoding() const { return encoding.c_str (); } - /// Is this a standalone document? - const char *Standalone() const { return standalone.c_str (); } - - /// Creates a copy of this Declaration and returns it. - virtual TiXmlNode* Clone() const; - // Print this declaration to a FILE stream. - virtual void Print( FILE* cfile, int depth, TIXML_STRING* str ) const; - virtual void Print( FILE* cfile, int depth ) const { - Print( cfile, depth, 0 ); - } - - virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding ); - - virtual const TiXmlDeclaration* ToDeclaration() const { return this; } ///< Cast to a more defined type. Will return null not of the requested type. - virtual TiXmlDeclaration* ToDeclaration() { return this; } ///< Cast to a more defined type. Will return null not of the requested type. - - /** Walk the XML tree visiting this node and all of its children. - */ - virtual bool Accept( TiXmlVisitor* visitor ) const; - -protected: - void CopyTo( TiXmlDeclaration* target ) const; - // used to be public - #ifdef TIXML_USE_STL - virtual void StreamIn( std::istream * in, TIXML_STRING * tag ); - #endif - -private: - - TIXML_STRING version; - TIXML_STRING encoding; - TIXML_STRING standalone; -}; - - -/** Any tag that tinyXml doesn't recognize is saved as an - unknown. It is a tag of text, but should not be modified. - It will be written back to the XML, unchanged, when the file - is saved. - - DTD tags get thrown into TiXmlUnknowns. -*/ -class TiXmlUnknown : public TiXmlNode -{ -public: - TiXmlUnknown() : TiXmlNode( TiXmlNode::TINYXML_UNKNOWN ) {} - virtual ~TiXmlUnknown() {} - - TiXmlUnknown( const TiXmlUnknown& copy ) : TiXmlNode( TiXmlNode::TINYXML_UNKNOWN ) { copy.CopyTo( this ); } - TiXmlUnknown& operator=( const TiXmlUnknown& copy ) { copy.CopyTo( this ); return *this; } - - /// Creates a copy of this Unknown and returns it. - virtual TiXmlNode* Clone() const; - // Print this Unknown to a FILE stream. - virtual void Print( FILE* cfile, int depth ) const; - - virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding ); - - virtual const TiXmlUnknown* ToUnknown() const { return this; } ///< Cast to a more defined type. Will return null not of the requested type. - virtual TiXmlUnknown* ToUnknown() { return this; } ///< Cast to a more defined type. Will return null not of the requested type. - - /** Walk the XML tree visiting this node and all of its children. - */ - virtual bool Accept( TiXmlVisitor* content ) const; - -protected: - void CopyTo( TiXmlUnknown* target ) const; - - #ifdef TIXML_USE_STL - virtual void StreamIn( std::istream * in, TIXML_STRING * tag ); - #endif - -private: - -}; - - -/** Always the top level node. A document binds together all the - XML pieces. It can be saved, loaded, and printed to the screen. - The 'value' of a document node is the xml file name. -*/ -class TiXmlDocument : public TiXmlNode -{ -public: - /// Create an empty document, that has no name. - TiXmlDocument(); - /// Create a document with a name. The name of the document is also the filename of the xml. - TiXmlDocument( const char * documentName ); - - #ifdef TIXML_USE_STL - /// Constructor. - TiXmlDocument( const std::string& documentName ); - #endif - - TiXmlDocument( const TiXmlDocument& copy ); - TiXmlDocument& operator=( const TiXmlDocument& copy ); - - virtual ~TiXmlDocument() {} - - /** Load a file using the current document value. - Returns true if successful. Will delete any existing - document data before loading. - */ - bool LoadFile( TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING ); - /// Save a file using the current document value. Returns true if successful. - bool SaveFile() const; - /// Load a file using the given filename. Returns true if successful. - bool LoadFile( const char * filename, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING ); - /// Save a file using the given filename. Returns true if successful. - bool SaveFile( const char * filename ) const; - /** Load a file using the given FILE*. Returns true if successful. Note that this method - doesn't stream - the entire object pointed at by the FILE* - will be interpreted as an XML file. TinyXML doesn't stream in XML from the current - file location. Streaming may be added in the future. - */ - bool LoadFile( FILE*, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING ); - /// Save a file using the given FILE*. Returns true if successful. - bool SaveFile( FILE* ) const; - - #ifdef TIXML_USE_STL - bool LoadFile( const std::string& filename, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING ) ///< STL std::string version. - { - return LoadFile( filename.c_str(), encoding ); - } - bool SaveFile( const std::string& filename ) const ///< STL std::string version. - { - return SaveFile( filename.c_str() ); - } - #endif - - /** Parse the given null terminated block of xml data. Passing in an encoding to this - method (either TIXML_ENCODING_LEGACY or TIXML_ENCODING_UTF8 will force TinyXml - to use that encoding, regardless of what TinyXml might otherwise try to detect. - */ - virtual const char* Parse( const char* p, TiXmlParsingData* data = 0, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING ); - - /** Get the root element -- the only top level element -- of the document. - In well formed XML, there should only be one. TinyXml is tolerant of - multiple elements at the document level. - */ - const TiXmlElement* RootElement() const { return FirstChildElement(); } - TiXmlElement* RootElement() { return FirstChildElement(); } - - /** If an error occurs, Error will be set to true. Also, - - The ErrorId() will contain the integer identifier of the error (not generally useful) - - The ErrorDesc() method will return the name of the error. (very useful) - - The ErrorRow() and ErrorCol() will return the location of the error (if known) - */ - bool Error() const { return error; } - - /// Contains a textual (english) description of the error if one occurs. - const char * ErrorDesc() const { return errorDesc.c_str (); } - - /** Generally, you probably want the error string ( ErrorDesc() ). But if you - prefer the ErrorId, this function will fetch it. - */ - int ErrorId() const { return errorId; } - - /** Returns the location (if known) of the error. The first column is column 1, - and the first row is row 1. A value of 0 means the row and column wasn't applicable - (memory errors, for example, have no row/column) or the parser lost the error. (An - error in the error reporting, in that case.) - - @sa SetTabSize, Row, Column - */ - int ErrorRow() const { return errorLocation.row+1; } - int ErrorCol() const { return errorLocation.col+1; } ///< The column where the error occured. See ErrorRow() - - /** SetTabSize() allows the error reporting functions (ErrorRow() and ErrorCol()) - to report the correct values for row and column. It does not change the output - or input in any way. - - By calling this method, with a tab size - greater than 0, the row and column of each node and attribute is stored - when the file is loaded. Very useful for tracking the DOM back in to - the source file. - - The tab size is required for calculating the location of nodes. If not - set, the default of 4 is used. The tabsize is set per document. Setting - the tabsize to 0 disables row/column tracking. - - Note that row and column tracking is not supported when using operator>>. - - The tab size needs to be enabled before the parse or load. Correct usage: - @verbatim - TiXmlDocument doc; - doc.SetTabSize( 8 ); - doc.Load( "myfile.xml" ); - @endverbatim - - @sa Row, Column - */ - void SetTabSize( int _tabsize ) { tabsize = _tabsize; } - - int TabSize() const { return tabsize; } - - /** If you have handled the error, it can be reset with this call. The error - state is automatically cleared if you Parse a new XML block. - */ - void ClearError() { error = false; - errorId = 0; - errorDesc = ""; - errorLocation.row = errorLocation.col = 0; - //errorLocation.last = 0; - } - - /** Write the document to standard out using formatted printing ("pretty print"). */ - void Print() const { Print( stdout, 0 ); } - - /* Write the document to a string using formatted printing ("pretty print"). This - will allocate a character array (new char[]) and return it as a pointer. The - calling code pust call delete[] on the return char* to avoid a memory leak. - */ - //char* PrintToMemory() const; - - /// Print this Document to a FILE stream. - virtual void Print( FILE* cfile, int depth = 0 ) const; - // [internal use] - void SetError( int err, const char* errorLocation, TiXmlParsingData* prevData, TiXmlEncoding encoding ); - - virtual const TiXmlDocument* ToDocument() const { return this; } ///< Cast to a more defined type. Will return null not of the requested type. - virtual TiXmlDocument* ToDocument() { return this; } ///< Cast to a more defined type. Will return null not of the requested type. - - /** Walk the XML tree visiting this node and all of its children. - */ - virtual bool Accept( TiXmlVisitor* content ) const; - -protected : - // [internal use] - virtual TiXmlNode* Clone() const; - #ifdef TIXML_USE_STL - virtual void StreamIn( std::istream * in, TIXML_STRING * tag ); - #endif - -private: - void CopyTo( TiXmlDocument* target ) const; - - bool error; - int errorId; - TIXML_STRING errorDesc; - int tabsize; - TiXmlCursor errorLocation; - bool useMicrosoftBOM; // the UTF-8 BOM were found when read. Note this, and try to write. -}; - - -/** - A TiXmlHandle is a class that wraps a node pointer with null checks; this is - an incredibly useful thing. Note that TiXmlHandle is not part of the TinyXml - DOM structure. It is a separate utility class. - - Take an example: - @verbatim - <Document> - <Element attributeA = "valueA"> - <Child attributeB = "value1" /> - <Child attributeB = "value2" /> - </Element> - <Document> - @endverbatim - - Assuming you want the value of "attributeB" in the 2nd "Child" element, it's very - easy to write a *lot* of code that looks like: - - @verbatim - TiXmlElement* root = document.FirstChildElement( "Document" ); - if ( root ) - { - TiXmlElement* element = root->FirstChildElement( "Element" ); - if ( element ) - { - TiXmlElement* child = element->FirstChildElement( "Child" ); - if ( child ) - { - TiXmlElement* child2 = child->NextSiblingElement( "Child" ); - if ( child2 ) - { - // Finally do something useful. - @endverbatim - - And that doesn't even cover "else" cases. TiXmlHandle addresses the verbosity - of such code. A TiXmlHandle checks for null pointers so it is perfectly safe - and correct to use: - - @verbatim - TiXmlHandle docHandle( &document ); - TiXmlElement* child2 = docHandle.FirstChild( "Document" ).FirstChild( "Element" ).Child( "Child", 1 ).ToElement(); - if ( child2 ) - { - // do something useful - @endverbatim - - Which is MUCH more concise and useful. - - It is also safe to copy handles - internally they are nothing more than node pointers. - @verbatim - TiXmlHandle handleCopy = handle; - @endverbatim - - What they should not be used for is iteration: - - @verbatim - int i=0; - while ( true ) - { - TiXmlElement* child = docHandle.FirstChild( "Document" ).FirstChild( "Element" ).Child( "Child", i ).ToElement(); - if ( !child ) - break; - // do something - ++i; - } - @endverbatim - - It seems reasonable, but it is in fact two embedded while loops. The Child method is - a linear walk to find the element, so this code would iterate much more than it needs - to. Instead, prefer: - - @verbatim - TiXmlElement* child = docHandle.FirstChild( "Document" ).FirstChild( "Element" ).FirstChild( "Child" ).ToElement(); - - for( child; child; child=child->NextSiblingElement() ) - { - // do something - } - @endverbatim -*/ -class TiXmlHandle -{ -public: - /// Create a handle from any node (at any depth of the tree.) This can be a null pointer. - TiXmlHandle( TiXmlNode* _node ) { this->node = _node; } - /// Copy constructor - TiXmlHandle( const TiXmlHandle& ref ) { this->node = ref.node; } - TiXmlHandle operator=( const TiXmlHandle& ref ) { if ( &ref != this ) this->node = ref.node; return *this; } - - /// Return a handle to the first child node. - TiXmlHandle FirstChild() const; - /// Return a handle to the first child node with the given name. - TiXmlHandle FirstChild( const char * value ) const; - /// Return a handle to the first child element. - TiXmlHandle FirstChildElement() const; - /// Return a handle to the first child element with the given name. - TiXmlHandle FirstChildElement( const char * value ) const; - - /** Return a handle to the "index" child with the given name. - The first child is 0, the second 1, etc. - */ - TiXmlHandle Child( const char* value, int index ) const; - /** Return a handle to the "index" child. - The first child is 0, the second 1, etc. - */ - TiXmlHandle Child( int index ) const; - /** Return a handle to the "index" child element with the given name. - The first child element is 0, the second 1, etc. Note that only TiXmlElements - are indexed: other types are not counted. - */ - TiXmlHandle ChildElement( const char* value, int index ) const; - /** Return a handle to the "index" child element. - The first child element is 0, the second 1, etc. Note that only TiXmlElements - are indexed: other types are not counted. - */ - TiXmlHandle ChildElement( int index ) const; - - #ifdef TIXML_USE_STL - TiXmlHandle FirstChild( const std::string& _value ) const { return FirstChild( _value.c_str() ); } - TiXmlHandle FirstChildElement( const std::string& _value ) const { return FirstChildElement( _value.c_str() ); } - - TiXmlHandle Child( const std::string& _value, int index ) const { return Child( _value.c_str(), index ); } - TiXmlHandle ChildElement( const std::string& _value, int index ) const { return ChildElement( _value.c_str(), index ); } - #endif - - /** Return the handle as a TiXmlNode. This may return null. - */ - TiXmlNode* ToNode() const { return node; } - /** Return the handle as a TiXmlElement. This may return null. - */ - TiXmlElement* ToElement() const { return ( ( node && node->ToElement() ) ? node->ToElement() : 0 ); } - /** Return the handle as a TiXmlText. This may return null. - */ - TiXmlText* ToText() const { return ( ( node && node->ToText() ) ? node->ToText() : 0 ); } - /** Return the handle as a TiXmlUnknown. This may return null. - */ - TiXmlUnknown* ToUnknown() const { return ( ( node && node->ToUnknown() ) ? node->ToUnknown() : 0 ); } - - /** @deprecated use ToNode. - Return the handle as a TiXmlNode. This may return null. - */ - TiXmlNode* Node() const { return ToNode(); } - /** @deprecated use ToElement. - Return the handle as a TiXmlElement. This may return null. - */ - TiXmlElement* Element() const { return ToElement(); } - /** @deprecated use ToText() - Return the handle as a TiXmlText. This may return null. - */ - TiXmlText* Text() const { return ToText(); } - /** @deprecated use ToUnknown() - Return the handle as a TiXmlUnknown. This may return null. - */ - TiXmlUnknown* Unknown() const { return ToUnknown(); } - -private: - TiXmlNode* node; -}; - - -/** Print to memory functionality. The TiXmlPrinter is useful when you need to: - - -# Print to memory (especially in non-STL mode) - -# Control formatting (line endings, etc.) - - When constructed, the TiXmlPrinter is in its default "pretty printing" mode. - Before calling Accept() you can call methods to control the printing - of the XML document. After TiXmlNode::Accept() is called, the printed document can - be accessed via the CStr(), Str(), and Size() methods. - - TiXmlPrinter uses the Visitor API. - @verbatim - TiXmlPrinter printer; - printer.SetIndent( "\t" ); - - doc.Accept( &printer ); - fprintf( stdout, "%s", printer.CStr() ); - @endverbatim -*/ -class TiXmlPrinter : public TiXmlVisitor -{ -public: - TiXmlPrinter() : depth( 0 ), simpleTextPrint( false ), - buffer(), indent( " " ), lineBreak( "\n" ) {} - - virtual bool VisitEnter( const TiXmlDocument& doc ); - virtual bool VisitExit( const TiXmlDocument& doc ); - - virtual bool VisitEnter( const TiXmlElement& element, const TiXmlAttribute* firstAttribute ); - virtual bool VisitExit( const TiXmlElement& element ); - - virtual bool Visit( const TiXmlDeclaration& declaration ); - virtual bool Visit( const TiXmlText& text ); - virtual bool Visit( const TiXmlComment& comment ); - virtual bool Visit( const TiXmlUnknown& unknown ); - - /** Set the indent characters for printing. By default 4 spaces - but tab (\t) is also useful, or null/empty string for no indentation. - */ - void SetIndent( const char* _indent ) { indent = _indent ? _indent : "" ; } - /// Query the indention string. - const char* Indent() { return indent.c_str(); } - /** Set the line breaking string. By default set to newline (\n). - Some operating systems prefer other characters, or can be - set to the null/empty string for no indenation. - */ - void SetLineBreak( const char* _lineBreak ) { lineBreak = _lineBreak ? _lineBreak : ""; } - /// Query the current line breaking string. - const char* LineBreak() { return lineBreak.c_str(); } - - /** Switch over to "stream printing" which is the most dense formatting without - linebreaks. Common when the XML is needed for network transmission. - */ - void SetStreamPrinting() { indent = ""; - lineBreak = ""; - } - /// Return the result. - const char* CStr() { return buffer.c_str(); } - /// Return the length of the result string. - size_t Size() { return buffer.size(); } - - #ifdef TIXML_USE_STL - /// Return the result. - const std::string& Str() { return buffer; } - #endif - -private: - void DoIndent() { - for( int i=0; i<depth; ++i ) - buffer += indent; - } - void DoLineBreak() { - buffer += lineBreak; - } - - int depth; - bool simpleTextPrint; - TIXML_STRING buffer; - TIXML_STRING indent; - TIXML_STRING lineBreak; -}; - - -#ifdef _MSC_VER -#pragma warning( pop ) -#endif - -#endif +/* +www.sourceforge.net/projects/tinyxml +Original code by Lee Thomason (www.grinninglizard.com) + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any +damages arising from the use of this software. + +Permission is granted to anyone to use this software for any +purpose, including commercial applications, and to alter it and +redistribute it freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must +not claim that you wrote the original software. If you use this +software in a product, an acknowledgment in the product documentation +would be appreciated but is not required. + +2. Altered source versions must be plainly marked as such, and +must not be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source +distribution. +*/ + + +#ifndef TINYXML_INCLUDED +#define TINYXML_INCLUDED + +#ifdef _MSC_VER +#pragma warning( push ) +#pragma warning( disable : 4530 ) +#pragma warning( disable : 4786 ) +#endif + +#include <ctype.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <assert.h> + +// Help out windows: +#if defined( _DEBUG ) && !defined( DEBUG ) +#define DEBUG +#endif + +#ifdef TIXML_USE_STL + #include <string> + #include <iostream> + #include <sstream> + #define TIXML_STRING std::string +#else + #include "tinystr.h" + #define TIXML_STRING TiXmlString +#endif + +// Deprecated library function hell. Compilers want to use the +// new safe versions. This probably doesn't fully address the problem, +// but it gets closer. There are too many compilers for me to fully +// test. If you get compilation troubles, undefine TIXML_SAFE +#define TIXML_SAFE + +#ifdef TIXML_SAFE + #if defined(_MSC_VER) && (_MSC_VER >= 1400 ) + // Microsoft visual studio, version 2005 and higher. + #define TIXML_SNPRINTF _snprintf_s + #define TIXML_SSCANF sscanf_s + #elif defined(_MSC_VER) && (_MSC_VER >= 1200 ) + // Microsoft visual studio, version 6 and higher. + //#pragma message( "Using _sn* functions." ) + #define TIXML_SNPRINTF _snprintf + #define TIXML_SSCANF sscanf + #elif defined(__GNUC__) && (__GNUC__ >= 3 ) + // GCC version 3 and higher.s + //#warning( "Using sn* functions." ) + #define TIXML_SNPRINTF snprintf + #define TIXML_SSCANF sscanf + #else + #define TIXML_SNPRINTF snprintf + #define TIXML_SSCANF sscanf + #endif +#endif + +class TiXmlDocument; +class TiXmlElement; +class TiXmlComment; +class TiXmlUnknown; +class TiXmlAttribute; +class TiXmlText; +class TiXmlDeclaration; +class TiXmlParsingData; + +const int TIXML_MAJOR_VERSION = 2; +const int TIXML_MINOR_VERSION = 6; +const int TIXML_PATCH_VERSION = 2; + +/* Internal structure for tracking location of items + in the XML file. +*/ +struct TiXmlCursor +{ + TiXmlCursor() { Clear(); } + void Clear() { row = col = -1; } + + int row; // 0 based. + int col; // 0 based. +}; + + +/** + Implements the interface to the "Visitor pattern" (see the Accept() method.) + If you call the Accept() method, it requires being passed a TiXmlVisitor + class to handle callbacks. For nodes that contain other nodes (Document, Element) + you will get called with a VisitEnter/VisitExit pair. Nodes that are always leaves + are simply called with Visit(). + + If you return 'true' from a Visit method, recursive parsing will continue. If you return + false, <b>no children of this node or its sibilings</b> will be Visited. + + All flavors of Visit methods have a default implementation that returns 'true' (continue + visiting). You need to only override methods that are interesting to you. + + Generally Accept() is called on the TiXmlDocument, although all nodes suppert Visiting. + + You should never change the document from a callback. + + @sa TiXmlNode::Accept() +*/ +class TiXmlVisitor +{ +public: + virtual ~TiXmlVisitor() {} + + /// Visit a document. + virtual bool VisitEnter( const TiXmlDocument& /*doc*/ ) { return true; } + /// Visit a document. + virtual bool VisitExit( const TiXmlDocument& /*doc*/ ) { return true; } + + /// Visit an element. + virtual bool VisitEnter( const TiXmlElement& /*element*/, const TiXmlAttribute* /*firstAttribute*/ ) { return true; } + /// Visit an element. + virtual bool VisitExit( const TiXmlElement& /*element*/ ) { return true; } + + /// Visit a declaration + virtual bool Visit( const TiXmlDeclaration& /*declaration*/ ) { return true; } + /// Visit a text node + virtual bool Visit( const TiXmlText& /*text*/ ) { return true; } + /// Visit a comment node + virtual bool Visit( const TiXmlComment& /*comment*/ ) { return true; } + /// Visit an unknown node + virtual bool Visit( const TiXmlUnknown& /*unknown*/ ) { return true; } +}; + +// Only used by Attribute::Query functions +enum +{ + TIXML_SUCCESS, + TIXML_NO_ATTRIBUTE, + TIXML_WRONG_TYPE +}; + + +// Used by the parsing routines. +enum TiXmlEncoding +{ + TIXML_ENCODING_UNKNOWN, + TIXML_ENCODING_UTF8, + TIXML_ENCODING_LEGACY +}; + +const TiXmlEncoding TIXML_DEFAULT_ENCODING = TIXML_ENCODING_UNKNOWN; + +/** TiXmlBase is a base class for every class in TinyXml. + It does little except to establish that TinyXml classes + can be printed and provide some utility functions. + + In XML, the document and elements can contain + other elements and other types of nodes. + + @verbatim + A Document can contain: Element (container or leaf) + Comment (leaf) + Unknown (leaf) + Declaration( leaf ) + + An Element can contain: Element (container or leaf) + Text (leaf) + Attributes (not on tree) + Comment (leaf) + Unknown (leaf) + + A Decleration contains: Attributes (not on tree) + @endverbatim +*/ +class TiXmlBase +{ + friend class TiXmlNode; + friend class TiXmlElement; + friend class TiXmlDocument; + +public: + TiXmlBase() : userData(0) {} + virtual ~TiXmlBase() {} + + /** All TinyXml classes can print themselves to a filestream + or the string class (TiXmlString in non-STL mode, std::string + in STL mode.) Either or both cfile and str can be null. + + This is a formatted print, and will insert + tabs and newlines. + + (For an unformatted stream, use the << operator.) + */ + virtual void Print( FILE* cfile, int depth ) const = 0; + + /** The world does not agree on whether white space should be kept or + not. In order to make everyone happy, these global, static functions + are provided to set whether or not TinyXml will condense all white space + into a single space or not. The default is to condense. Note changing this + value is not thread safe. + */ + static void SetCondenseWhiteSpace( bool condense ) { condenseWhiteSpace = condense; } + + /// Return the current white space setting. + static bool IsWhiteSpaceCondensed() { return condenseWhiteSpace; } + + /** Return the position, in the original source file, of this node or attribute. + The row and column are 1-based. (That is the first row and first column is + 1,1). If the returns values are 0 or less, then the parser does not have + a row and column value. + + Generally, the row and column value will be set when the TiXmlDocument::Load(), + TiXmlDocument::LoadFile(), or any TiXmlNode::Parse() is called. It will NOT be set + when the DOM was created from operator>>. + + The values reflect the initial load. Once the DOM is modified programmatically + (by adding or changing nodes and attributes) the new values will NOT update to + reflect changes in the document. + + There is a minor performance cost to computing the row and column. Computation + can be disabled if TiXmlDocument::SetTabSize() is called with 0 as the value. + + @sa TiXmlDocument::SetTabSize() + */ + int Row() const { return location.row + 1; } + int Column() const { return location.col + 1; } ///< See Row() + + void SetUserData( void* user ) { userData = user; } ///< Set a pointer to arbitrary user data. + void* GetUserData() { return userData; } ///< Get a pointer to arbitrary user data. + const void* GetUserData() const { return userData; } ///< Get a pointer to arbitrary user data. + + // Table that returs, for a given lead byte, the total number of bytes + // in the UTF-8 sequence. + static const int utf8ByteTable[256]; + + virtual const char* Parse( const char* p, + TiXmlParsingData* data, + TiXmlEncoding encoding /*= TIXML_ENCODING_UNKNOWN */ ) = 0; + + /** Expands entities in a string. Note this should not contian the tag's '<', '>', etc, + or they will be transformed into entities! + */ + static void EncodeString( const TIXML_STRING& str, TIXML_STRING* out ); + + enum + { + TIXML_NO_ERROR = 0, + TIXML_ERROR, + TIXML_ERROR_OPENING_FILE, + TIXML_ERROR_PARSING_ELEMENT, + TIXML_ERROR_FAILED_TO_READ_ELEMENT_NAME, + TIXML_ERROR_READING_ELEMENT_VALUE, + TIXML_ERROR_READING_ATTRIBUTES, + TIXML_ERROR_PARSING_EMPTY, + TIXML_ERROR_READING_END_TAG, + TIXML_ERROR_PARSING_UNKNOWN, + TIXML_ERROR_PARSING_COMMENT, + TIXML_ERROR_PARSING_DECLARATION, + TIXML_ERROR_DOCUMENT_EMPTY, + TIXML_ERROR_EMBEDDED_NULL, + TIXML_ERROR_PARSING_CDATA, + TIXML_ERROR_DOCUMENT_TOP_ONLY, + + TIXML_ERROR_STRING_COUNT + }; + +protected: + + static const char* SkipWhiteSpace( const char*, TiXmlEncoding encoding ); + + inline static bool IsWhiteSpace( char c ) + { + return ( isspace( (unsigned char) c ) || c == '\n' || c == '\r' ); + } + inline static bool IsWhiteSpace( int c ) + { + if ( c < 256 ) + return IsWhiteSpace( (char) c ); + return false; // Again, only truly correct for English/Latin...but usually works. + } + + #ifdef TIXML_USE_STL + static bool StreamWhiteSpace( std::istream * in, TIXML_STRING * tag ); + static bool StreamTo( std::istream * in, int character, TIXML_STRING * tag ); + #endif + + /* Reads an XML name into the string provided. Returns + a pointer just past the last character of the name, + or 0 if the function has an error. + */ + static const char* ReadName( const char* p, TIXML_STRING* name, TiXmlEncoding encoding ); + + /* Reads text. Returns a pointer past the given end tag. + Wickedly complex options, but it keeps the (sensitive) code in one place. + */ + static const char* ReadText( const char* in, // where to start + TIXML_STRING* text, // the string read + bool ignoreWhiteSpace, // whether to keep the white space + const char* endTag, // what ends this text + bool ignoreCase, // whether to ignore case in the end tag + TiXmlEncoding encoding ); // the current encoding + + // If an entity has been found, transform it into a character. + static const char* GetEntity( const char* in, char* value, int* length, TiXmlEncoding encoding ); + + // Get a character, while interpreting entities. + // The length can be from 0 to 4 bytes. + inline static const char* GetChar( const char* p, char* _value, int* length, TiXmlEncoding encoding ) + { + assert( p ); + if ( encoding == TIXML_ENCODING_UTF8 ) + { + *length = utf8ByteTable[ *((const unsigned char*)p) ]; + assert( *length >= 0 && *length < 5 ); + } + else + { + *length = 1; + } + + if ( *length == 1 ) + { + if ( *p == '&' ) + return GetEntity( p, _value, length, encoding ); + *_value = *p; + return p+1; + } + else if ( *length ) + { + //strncpy( _value, p, *length ); // lots of compilers don't like this function (unsafe), + // and the null terminator isn't needed + for( int i=0; p[i] && i<*length; ++i ) { + _value[i] = p[i]; + } + return p + (*length); + } + else + { + // Not valid text. + return 0; + } + } + + // Return true if the next characters in the stream are any of the endTag sequences. + // Ignore case only works for english, and should only be relied on when comparing + // to English words: StringEqual( p, "version", true ) is fine. + static bool StringEqual( const char* p, + const char* endTag, + bool ignoreCase, + TiXmlEncoding encoding ); + + static const char* errorString[ TIXML_ERROR_STRING_COUNT ]; + + TiXmlCursor location; + + /// Field containing a generic user pointer + void* userData; + + // None of these methods are reliable for any language except English. + // Good for approximation, not great for accuracy. + static int IsAlpha( unsigned char anyByte, TiXmlEncoding encoding ); + static int IsAlphaNum( unsigned char anyByte, TiXmlEncoding encoding ); + inline static int ToLower( int v, TiXmlEncoding encoding ) + { + if ( encoding == TIXML_ENCODING_UTF8 ) + { + if ( v < 128 ) return tolower( v ); + return v; + } + else + { + return tolower( v ); + } + } + static void ConvertUTF32ToUTF8( unsigned long input, char* output, int* length ); + +private: + TiXmlBase( const TiXmlBase& ); // not implemented. + void operator=( const TiXmlBase& base ); // not allowed. + + struct Entity + { + const char* str; + unsigned int strLength; + char chr; + }; + enum + { + NUM_ENTITY = 5, + MAX_ENTITY_LENGTH = 6 + + }; + static Entity entity[ NUM_ENTITY ]; + static bool condenseWhiteSpace; +}; + + +/** The parent class for everything in the Document Object Model. + (Except for attributes). + Nodes have siblings, a parent, and children. A node can be + in a document, or stand on its own. The type of a TiXmlNode + can be queried, and it can be cast to its more defined type. +*/ +class TiXmlNode : public TiXmlBase +{ + friend class TiXmlDocument; + friend class TiXmlElement; + +public: + #ifdef TIXML_USE_STL + + /** An input stream operator, for every class. Tolerant of newlines and + formatting, but doesn't expect them. + */ + friend std::istream& operator >> (std::istream& in, TiXmlNode& base); + + /** An output stream operator, for every class. Note that this outputs + without any newlines or formatting, as opposed to Print(), which + includes tabs and new lines. + + The operator<< and operator>> are not completely symmetric. Writing + a node to a stream is very well defined. You'll get a nice stream + of output, without any extra whitespace or newlines. + + But reading is not as well defined. (As it always is.) If you create + a TiXmlElement (for example) and read that from an input stream, + the text needs to define an element or junk will result. This is + true of all input streams, but it's worth keeping in mind. + + A TiXmlDocument will read nodes until it reads a root element, and + all the children of that root element. + */ + friend std::ostream& operator<< (std::ostream& out, const TiXmlNode& base); + + /// Appends the XML node or attribute to a std::string. + friend std::string& operator<< (std::string& out, const TiXmlNode& base ); + + #endif + + /** The types of XML nodes supported by TinyXml. (All the + unsupported types are picked up by UNKNOWN.) + */ + enum NodeType + { + TINYXML_DOCUMENT, + TINYXML_ELEMENT, + TINYXML_COMMENT, + TINYXML_UNKNOWN, + TINYXML_TEXT, + TINYXML_DECLARATION, + TINYXML_TYPECOUNT + }; + + virtual ~TiXmlNode(); + + /** The meaning of 'value' changes for the specific type of + TiXmlNode. + @verbatim + Document: filename of the xml file + Element: name of the element + Comment: the comment text + Unknown: the tag contents + Text: the text string + @endverbatim + + The subclasses will wrap this function. + */ + const char *Value() const { return value.c_str (); } + + #ifdef TIXML_USE_STL + /** Return Value() as a std::string. If you only use STL, + this is more efficient than calling Value(). + Only available in STL mode. + */ + const std::string& ValueStr() const { return value; } + #endif + + const TIXML_STRING& ValueTStr() const { return value; } + + /** Changes the value of the node. Defined as: + @verbatim + Document: filename of the xml file + Element: name of the element + Comment: the comment text + Unknown: the tag contents + Text: the text string + @endverbatim + */ + void SetValue(const char * _value) { value = _value;} + + #ifdef TIXML_USE_STL + /// STL std::string form. + void SetValue( const std::string& _value ) { value = _value; } + #endif + + /// Delete all the children of this node. Does not affect 'this'. + void Clear(); + + /// One step up the DOM. + TiXmlNode* Parent() { return parent; } + const TiXmlNode* Parent() const { return parent; } + + const TiXmlNode* FirstChild() const { return firstChild; } ///< The first child of this node. Will be null if there are no children. + TiXmlNode* FirstChild() { return firstChild; } + const TiXmlNode* FirstChild( const char * value ) const; ///< The first child of this node with the matching 'value'. Will be null if none found. + /// The first child of this node with the matching 'value'. Will be null if none found. + TiXmlNode* FirstChild( const char * _value ) { + // Call through to the const version - safe since nothing is changed. Exiting syntax: cast this to a const (always safe) + // call the method, cast the return back to non-const. + return const_cast< TiXmlNode* > ((const_cast< const TiXmlNode* >(this))->FirstChild( _value )); + } + const TiXmlNode* LastChild() const { return lastChild; } /// The last child of this node. Will be null if there are no children. + TiXmlNode* LastChild() { return lastChild; } + + const TiXmlNode* LastChild( const char * value ) const; /// The last child of this node matching 'value'. Will be null if there are no children. + TiXmlNode* LastChild( const char * _value ) { + return const_cast< TiXmlNode* > ((const_cast< const TiXmlNode* >(this))->LastChild( _value )); + } + + #ifdef TIXML_USE_STL + const TiXmlNode* FirstChild( const std::string& _value ) const { return FirstChild (_value.c_str ()); } ///< STL std::string form. + TiXmlNode* FirstChild( const std::string& _value ) { return FirstChild (_value.c_str ()); } ///< STL std::string form. + const TiXmlNode* LastChild( const std::string& _value ) const { return LastChild (_value.c_str ()); } ///< STL std::string form. + TiXmlNode* LastChild( const std::string& _value ) { return LastChild (_value.c_str ()); } ///< STL std::string form. + #endif + + /** An alternate way to walk the children of a node. + One way to iterate over nodes is: + @verbatim + for( child = parent->FirstChild(); child; child = child->NextSibling() ) + @endverbatim + + IterateChildren does the same thing with the syntax: + @verbatim + child = 0; + while( child = parent->IterateChildren( child ) ) + @endverbatim + + IterateChildren takes the previous child as input and finds + the next one. If the previous child is null, it returns the + first. IterateChildren will return null when done. + */ + const TiXmlNode* IterateChildren( const TiXmlNode* previous ) const; + TiXmlNode* IterateChildren( const TiXmlNode* previous ) { + return const_cast< TiXmlNode* >( (const_cast< const TiXmlNode* >(this))->IterateChildren( previous ) ); + } + + /// This flavor of IterateChildren searches for children with a particular 'value' + const TiXmlNode* IterateChildren( const char * value, const TiXmlNode* previous ) const; + TiXmlNode* IterateChildren( const char * _value, const TiXmlNode* previous ) { + return const_cast< TiXmlNode* >( (const_cast< const TiXmlNode* >(this))->IterateChildren( _value, previous ) ); + } + + #ifdef TIXML_USE_STL + const TiXmlNode* IterateChildren( const std::string& _value, const TiXmlNode* previous ) const { return IterateChildren (_value.c_str (), previous); } ///< STL std::string form. + TiXmlNode* IterateChildren( const std::string& _value, const TiXmlNode* previous ) { return IterateChildren (_value.c_str (), previous); } ///< STL std::string form. + #endif + + /** Add a new node related to this. Adds a child past the LastChild. + Returns a pointer to the new object or NULL if an error occured. + */ + TiXmlNode* InsertEndChild( const TiXmlNode& addThis ); + + + /** Add a new node related to this. Adds a child past the LastChild. + + NOTE: the node to be added is passed by pointer, and will be + henceforth owned (and deleted) by tinyXml. This method is efficient + and avoids an extra copy, but should be used with care as it + uses a different memory model than the other insert functions. + + @sa InsertEndChild + */ + TiXmlNode* LinkEndChild( TiXmlNode* addThis ); + + /** Add a new node related to this. Adds a child before the specified child. + Returns a pointer to the new object or NULL if an error occured. + */ + TiXmlNode* InsertBeforeChild( TiXmlNode* beforeThis, const TiXmlNode& addThis ); + + /** Add a new node related to this. Adds a child after the specified child. + Returns a pointer to the new object or NULL if an error occured. + */ + TiXmlNode* InsertAfterChild( TiXmlNode* afterThis, const TiXmlNode& addThis ); + + /** Replace a child of this node. + Returns a pointer to the new object or NULL if an error occured. + */ + TiXmlNode* ReplaceChild( TiXmlNode* replaceThis, const TiXmlNode& withThis ); + + /// Delete a child of this node. + bool RemoveChild( TiXmlNode* removeThis ); + + /// Navigate to a sibling node. + const TiXmlNode* PreviousSibling() const { return prev; } + TiXmlNode* PreviousSibling() { return prev; } + + /// Navigate to a sibling node. + const TiXmlNode* PreviousSibling( const char * ) const; + TiXmlNode* PreviousSibling( const char *_prev ) { + return const_cast< TiXmlNode* >( (const_cast< const TiXmlNode* >(this))->PreviousSibling( _prev ) ); + } + + #ifdef TIXML_USE_STL + const TiXmlNode* PreviousSibling( const std::string& _value ) const { return PreviousSibling (_value.c_str ()); } ///< STL std::string form. + TiXmlNode* PreviousSibling( const std::string& _value ) { return PreviousSibling (_value.c_str ()); } ///< STL std::string form. + const TiXmlNode* NextSibling( const std::string& _value) const { return NextSibling (_value.c_str ()); } ///< STL std::string form. + TiXmlNode* NextSibling( const std::string& _value) { return NextSibling (_value.c_str ()); } ///< STL std::string form. + #endif + + /// Navigate to a sibling node. + const TiXmlNode* NextSibling() const { return next; } + TiXmlNode* NextSibling() { return next; } + + /// Navigate to a sibling node with the given 'value'. + const TiXmlNode* NextSibling( const char * ) const; + TiXmlNode* NextSibling( const char* _next ) { + return const_cast< TiXmlNode* >( (const_cast< const TiXmlNode* >(this))->NextSibling( _next ) ); + } + + /** Convenience function to get through elements. + Calls NextSibling and ToElement. Will skip all non-Element + nodes. Returns 0 if there is not another element. + */ + const TiXmlElement* NextSiblingElement() const; + TiXmlElement* NextSiblingElement() { + return const_cast< TiXmlElement* >( (const_cast< const TiXmlNode* >(this))->NextSiblingElement() ); + } + + /** Convenience function to get through elements. + Calls NextSibling and ToElement. Will skip all non-Element + nodes. Returns 0 if there is not another element. + */ + const TiXmlElement* NextSiblingElement( const char * ) const; + TiXmlElement* NextSiblingElement( const char *_next ) { + return const_cast< TiXmlElement* >( (const_cast< const TiXmlNode* >(this))->NextSiblingElement( _next ) ); + } + + #ifdef TIXML_USE_STL + const TiXmlElement* NextSiblingElement( const std::string& _value) const { return NextSiblingElement (_value.c_str ()); } ///< STL std::string form. + TiXmlElement* NextSiblingElement( const std::string& _value) { return NextSiblingElement (_value.c_str ()); } ///< STL std::string form. + #endif + + /// Convenience function to get through elements. + const TiXmlElement* FirstChildElement() const; + TiXmlElement* FirstChildElement() { + return const_cast< TiXmlElement* >( (const_cast< const TiXmlNode* >(this))->FirstChildElement() ); + } + + /// Convenience function to get through elements. + const TiXmlElement* FirstChildElement( const char * _value ) const; + TiXmlElement* FirstChildElement( const char * _value ) { + return const_cast< TiXmlElement* >( (const_cast< const TiXmlNode* >(this))->FirstChildElement( _value ) ); + } + + #ifdef TIXML_USE_STL + const TiXmlElement* FirstChildElement( const std::string& _value ) const { return FirstChildElement (_value.c_str ()); } ///< STL std::string form. + TiXmlElement* FirstChildElement( const std::string& _value ) { return FirstChildElement (_value.c_str ()); } ///< STL std::string form. + #endif + + /** Query the type (as an enumerated value, above) of this node. + The possible types are: TINYXML_DOCUMENT, TINYXML_ELEMENT, TINYXML_COMMENT, + TINYXML_UNKNOWN, TINYXML_TEXT, and TINYXML_DECLARATION. + */ + int Type() const { return type; } + + /** Return a pointer to the Document this node lives in. + Returns null if not in a document. + */ + const TiXmlDocument* GetDocument() const; + TiXmlDocument* GetDocument() { + return const_cast< TiXmlDocument* >( (const_cast< const TiXmlNode* >(this))->GetDocument() ); + } + + /// Returns true if this node has no children. + bool NoChildren() const { return !firstChild; } + + virtual const TiXmlDocument* ToDocument() const { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. + virtual const TiXmlElement* ToElement() const { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. + virtual const TiXmlComment* ToComment() const { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. + virtual const TiXmlUnknown* ToUnknown() const { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. + virtual const TiXmlText* ToText() const { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. + virtual const TiXmlDeclaration* ToDeclaration() const { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. + + virtual TiXmlDocument* ToDocument() { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. + virtual TiXmlElement* ToElement() { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. + virtual TiXmlComment* ToComment() { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. + virtual TiXmlUnknown* ToUnknown() { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. + virtual TiXmlText* ToText() { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. + virtual TiXmlDeclaration* ToDeclaration() { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. + + /** Create an exact duplicate of this node and return it. The memory must be deleted + by the caller. + */ + virtual TiXmlNode* Clone() const = 0; + + /** Accept a hierchical visit the nodes in the TinyXML DOM. Every node in the + XML tree will be conditionally visited and the host will be called back + via the TiXmlVisitor interface. + + This is essentially a SAX interface for TinyXML. (Note however it doesn't re-parse + the XML for the callbacks, so the performance of TinyXML is unchanged by using this + interface versus any other.) + + The interface has been based on ideas from: + + - http://www.saxproject.org/ + - http://c2.com/cgi/wiki?HierarchicalVisitorPattern + + Which are both good references for "visiting". + + An example of using Accept(): + @verbatim + TiXmlPrinter printer; + tinyxmlDoc.Accept( &printer ); + const char* xmlcstr = printer.CStr(); + @endverbatim + */ + virtual bool Accept( TiXmlVisitor* visitor ) const = 0; + +protected: + TiXmlNode( NodeType _type ); + + // Copy to the allocated object. Shared functionality between Clone, Copy constructor, + // and the assignment operator. + void CopyTo( TiXmlNode* target ) const; + + #ifdef TIXML_USE_STL + // The real work of the input operator. + virtual void StreamIn( std::istream* in, TIXML_STRING* tag ) = 0; + #endif + + // Figure out what is at *p, and parse it. Returns null if it is not an xml node. + TiXmlNode* Identify( const char* start, TiXmlEncoding encoding ); + + TiXmlNode* parent; + NodeType type; + + TiXmlNode* firstChild; + TiXmlNode* lastChild; + + TIXML_STRING value; + + TiXmlNode* prev; + TiXmlNode* next; + +private: + TiXmlNode( const TiXmlNode& ); // not implemented. + void operator=( const TiXmlNode& base ); // not allowed. +}; + + +/** An attribute is a name-value pair. Elements have an arbitrary + number of attributes, each with a unique name. + + @note The attributes are not TiXmlNodes, since they are not + part of the tinyXML document object model. There are other + suggested ways to look at this problem. +*/ +class TiXmlAttribute : public TiXmlBase +{ + friend class TiXmlAttributeSet; + +public: + /// Construct an empty attribute. + TiXmlAttribute() : TiXmlBase() + { + document = 0; + prev = next = 0; + } + + #ifdef TIXML_USE_STL + /// std::string constructor. + TiXmlAttribute( const std::string& _name, const std::string& _value ) + { + name = _name; + value = _value; + document = 0; + prev = next = 0; + } + #endif + + /// Construct an attribute with a name and value. + TiXmlAttribute( const char * _name, const char * _value ) + { + name = _name; + value = _value; + document = 0; + prev = next = 0; + } + + const char* Name() const { return name.c_str(); } ///< Return the name of this attribute. + const char* Value() const { return value.c_str(); } ///< Return the value of this attribute. + #ifdef TIXML_USE_STL + const std::string& ValueStr() const { return value; } ///< Return the value of this attribute. + #endif + int IntValue() const; ///< Return the value of this attribute, converted to an integer. + double DoubleValue() const; ///< Return the value of this attribute, converted to a double. + + // Get the tinyxml string representation + const TIXML_STRING& NameTStr() const { return name; } + + /** QueryIntValue examines the value string. It is an alternative to the + IntValue() method with richer error checking. + If the value is an integer, it is stored in 'value' and + the call returns TIXML_SUCCESS. If it is not + an integer, it returns TIXML_WRONG_TYPE. + + A specialized but useful call. Note that for success it returns 0, + which is the opposite of almost all other TinyXml calls. + */ + int QueryIntValue( int* _value ) const; + /// QueryDoubleValue examines the value string. See QueryIntValue(). + int QueryDoubleValue( double* _value ) const; + + void SetName( const char* _name ) { name = _name; } ///< Set the name of this attribute. + void SetValue( const char* _value ) { value = _value; } ///< Set the value. + + void SetIntValue( int _value ); ///< Set the value from an integer. + void SetDoubleValue( double _value ); ///< Set the value from a double. + + #ifdef TIXML_USE_STL + /// STL std::string form. + void SetName( const std::string& _name ) { name = _name; } + /// STL std::string form. + void SetValue( const std::string& _value ) { value = _value; } + #endif + + /// Get the next sibling attribute in the DOM. Returns null at end. + const TiXmlAttribute* Next() const; + TiXmlAttribute* Next() { + return const_cast< TiXmlAttribute* >( (const_cast< const TiXmlAttribute* >(this))->Next() ); + } + + /// Get the previous sibling attribute in the DOM. Returns null at beginning. + const TiXmlAttribute* Previous() const; + TiXmlAttribute* Previous() { + return const_cast< TiXmlAttribute* >( (const_cast< const TiXmlAttribute* >(this))->Previous() ); + } + + bool operator==( const TiXmlAttribute& rhs ) const { return rhs.name == name; } + bool operator<( const TiXmlAttribute& rhs ) const { return name < rhs.name; } + bool operator>( const TiXmlAttribute& rhs ) const { return name > rhs.name; } + + /* Attribute parsing starts: first letter of the name + returns: the next char after the value end quote + */ + virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding ); + + // Prints this Attribute to a FILE stream. + virtual void Print( FILE* cfile, int depth ) const { + Print( cfile, depth, 0 ); + } + void Print( FILE* cfile, int depth, TIXML_STRING* str ) const; + + // [internal use] + // Set the document pointer so the attribute can report errors. + void SetDocument( TiXmlDocument* doc ) { document = doc; } + +private: + TiXmlAttribute( const TiXmlAttribute& ); // not implemented. + void operator=( const TiXmlAttribute& base ); // not allowed. + + TiXmlDocument* document; // A pointer back to a document, for error reporting. + TIXML_STRING name; + TIXML_STRING value; + TiXmlAttribute* prev; + TiXmlAttribute* next; +}; + + +/* A class used to manage a group of attributes. + It is only used internally, both by the ELEMENT and the DECLARATION. + + The set can be changed transparent to the Element and Declaration + classes that use it, but NOT transparent to the Attribute + which has to implement a next() and previous() method. Which makes + it a bit problematic and prevents the use of STL. + + This version is implemented with circular lists because: + - I like circular lists + - it demonstrates some independence from the (typical) doubly linked list. +*/ +class TiXmlAttributeSet +{ +public: + TiXmlAttributeSet(); + ~TiXmlAttributeSet(); + + void Add( TiXmlAttribute* attribute ); + void Remove( TiXmlAttribute* attribute ); + + const TiXmlAttribute* First() const { return ( sentinel.next == &sentinel ) ? 0 : sentinel.next; } + TiXmlAttribute* First() { return ( sentinel.next == &sentinel ) ? 0 : sentinel.next; } + const TiXmlAttribute* Last() const { return ( sentinel.prev == &sentinel ) ? 0 : sentinel.prev; } + TiXmlAttribute* Last() { return ( sentinel.prev == &sentinel ) ? 0 : sentinel.prev; } + + TiXmlAttribute* Find( const char* _name ) const; + TiXmlAttribute* FindOrCreate( const char* _name ); + +# ifdef TIXML_USE_STL + TiXmlAttribute* Find( const std::string& _name ) const; + TiXmlAttribute* FindOrCreate( const std::string& _name ); +# endif + + +private: + //*ME: Because of hidden/disabled copy-construktor in TiXmlAttribute (sentinel-element), + //*ME: this class must be also use a hidden/disabled copy-constructor !!! + TiXmlAttributeSet( const TiXmlAttributeSet& ); // not allowed + void operator=( const TiXmlAttributeSet& ); // not allowed (as TiXmlAttribute) + + TiXmlAttribute sentinel; +}; + + +/** The element is a container class. It has a value, the element name, + and can contain other elements, text, comments, and unknowns. + Elements also contain an arbitrary number of attributes. +*/ +class TiXmlElement : public TiXmlNode +{ +public: + /// Construct an element. + TiXmlElement (const char * in_value); + + #ifdef TIXML_USE_STL + /// std::string constructor. + TiXmlElement( const std::string& _value ); + #endif + + TiXmlElement( const TiXmlElement& ); + + TiXmlElement& operator=( const TiXmlElement& base ); + + virtual ~TiXmlElement(); + + /** Given an attribute name, Attribute() returns the value + for the attribute of that name, or null if none exists. + */ + const char* Attribute( const char* name ) const; + + /** Given an attribute name, Attribute() returns the value + for the attribute of that name, or null if none exists. + If the attribute exists and can be converted to an integer, + the integer value will be put in the return 'i', if 'i' + is non-null. + */ + const char* Attribute( const char* name, int* i ) const; + + /** Given an attribute name, Attribute() returns the value + for the attribute of that name, or null if none exists. + If the attribute exists and can be converted to an double, + the double value will be put in the return 'd', if 'd' + is non-null. + */ + const char* Attribute( const char* name, double* d ) const; + + /** QueryIntAttribute examines the attribute - it is an alternative to the + Attribute() method with richer error checking. + If the attribute is an integer, it is stored in 'value' and + the call returns TIXML_SUCCESS. If it is not + an integer, it returns TIXML_WRONG_TYPE. If the attribute + does not exist, then TIXML_NO_ATTRIBUTE is returned. + */ + int QueryIntAttribute( const char* name, int* _value ) const; + /// QueryUnsignedAttribute examines the attribute - see QueryIntAttribute(). + int QueryUnsignedAttribute( const char* name, unsigned* _value ) const; + /** QueryBoolAttribute examines the attribute - see QueryIntAttribute(). + Note that '1', 'true', or 'yes' are considered true, while '0', 'false' + and 'no' are considered false. + */ + int QueryBoolAttribute( const char* name, bool* _value ) const; + /// QueryDoubleAttribute examines the attribute - see QueryIntAttribute(). + int QueryDoubleAttribute( const char* name, double* _value ) const; + /// QueryFloatAttribute examines the attribute - see QueryIntAttribute(). + int QueryFloatAttribute( const char* name, float* _value ) const { + double d; + int result = QueryDoubleAttribute( name, &d ); + if ( result == TIXML_SUCCESS ) { + *_value = (float)d; + } + return result; + } + + #ifdef TIXML_USE_STL + /// QueryStringAttribute examines the attribute - see QueryIntAttribute(). + int QueryStringAttribute( const char* name, std::string* _value ) const { + const char* cstr = Attribute( name ); + if ( cstr ) { + *_value = std::string( cstr ); + return TIXML_SUCCESS; + } + return TIXML_NO_ATTRIBUTE; + } + + /** Template form of the attribute query which will try to read the + attribute into the specified type. Very easy, very powerful, but + be careful to make sure to call this with the correct type. + + NOTE: This method doesn't work correctly for 'string' types that contain spaces. + + @return TIXML_SUCCESS, TIXML_WRONG_TYPE, or TIXML_NO_ATTRIBUTE + */ + template< typename T > int QueryValueAttribute( const std::string& name, T* outValue ) const + { + const TiXmlAttribute* node = attributeSet.Find( name ); + if ( !node ) + return TIXML_NO_ATTRIBUTE; + + std::stringstream sstream( node->ValueStr() ); + sstream >> *outValue; + if ( !sstream.fail() ) + return TIXML_SUCCESS; + return TIXML_WRONG_TYPE; + } + + int QueryValueAttribute( const std::string& name, std::string* outValue ) const + { + const TiXmlAttribute* node = attributeSet.Find( name ); + if ( !node ) + return TIXML_NO_ATTRIBUTE; + *outValue = node->ValueStr(); + return TIXML_SUCCESS; + } + #endif + + /** Sets an attribute of name to a given value. The attribute + will be created if it does not exist, or changed if it does. + */ + void SetAttribute( const char* name, const char * _value ); + + #ifdef TIXML_USE_STL + const std::string* Attribute( const std::string& name ) const; + const std::string* Attribute( const std::string& name, int* i ) const; + const std::string* Attribute( const std::string& name, double* d ) const; + int QueryIntAttribute( const std::string& name, int* _value ) const; + int QueryDoubleAttribute( const std::string& name, double* _value ) const; + + /// STL std::string form. + void SetAttribute( const std::string& name, const std::string& _value ); + ///< STL std::string form. + void SetAttribute( const std::string& name, int _value ); + ///< STL std::string form. + void SetDoubleAttribute( const std::string& name, double value ); + #endif + + /** Sets an attribute of name to a given value. The attribute + will be created if it does not exist, or changed if it does. + */ + void SetAttribute( const char * name, int value ); + + /** Sets an attribute of name to a given value. The attribute + will be created if it does not exist, or changed if it does. + */ + void SetDoubleAttribute( const char * name, double value ); + + /** Deletes an attribute with the given name. + */ + void RemoveAttribute( const char * name ); + #ifdef TIXML_USE_STL + void RemoveAttribute( const std::string& name ) { RemoveAttribute (name.c_str ()); } ///< STL std::string form. + #endif + + const TiXmlAttribute* FirstAttribute() const { return attributeSet.First(); } ///< Access the first attribute in this element. + TiXmlAttribute* FirstAttribute() { return attributeSet.First(); } + const TiXmlAttribute* LastAttribute() const { return attributeSet.Last(); } ///< Access the last attribute in this element. + TiXmlAttribute* LastAttribute() { return attributeSet.Last(); } + + /** Convenience function for easy access to the text inside an element. Although easy + and concise, GetText() is limited compared to getting the TiXmlText child + and accessing it directly. + + If the first child of 'this' is a TiXmlText, the GetText() + returns the character string of the Text node, else null is returned. + + This is a convenient method for getting the text of simple contained text: + @verbatim + <foo>This is text</foo> + const char* str = fooElement->GetText(); + @endverbatim + + 'str' will be a pointer to "This is text". + + Note that this function can be misleading. If the element foo was created from + this XML: + @verbatim + <foo><b>This is text</b></foo> + @endverbatim + + then the value of str would be null. The first child node isn't a text node, it is + another element. From this XML: + @verbatim + <foo>This is <b>text</b></foo> + @endverbatim + GetText() will return "This is ". + + WARNING: GetText() accesses a child node - don't become confused with the + similarly named TiXmlHandle::Text() and TiXmlNode::ToText() which are + safe type casts on the referenced node. + */ + const char* GetText() const; + + /// Creates a new Element and returns it - the returned element is a copy. + virtual TiXmlNode* Clone() const; + // Print the Element to a FILE stream. + virtual void Print( FILE* cfile, int depth ) const; + + /* Attribtue parsing starts: next char past '<' + returns: next char past '>' + */ + virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding ); + + virtual const TiXmlElement* ToElement() const { return this; } ///< Cast to a more defined type. Will return null not of the requested type. + virtual TiXmlElement* ToElement() { return this; } ///< Cast to a more defined type. Will return null not of the requested type. + + /** Walk the XML tree visiting this node and all of its children. + */ + virtual bool Accept( TiXmlVisitor* visitor ) const; + +protected: + + void CopyTo( TiXmlElement* target ) const; + void ClearThis(); // like clear, but initializes 'this' object as well + + // Used to be public [internal use] + #ifdef TIXML_USE_STL + virtual void StreamIn( std::istream * in, TIXML_STRING * tag ); + #endif + /* [internal use] + Reads the "value" of the element -- another element, or text. + This should terminate with the current end tag. + */ + const char* ReadValue( const char* in, TiXmlParsingData* prevData, TiXmlEncoding encoding ); + +private: + TiXmlAttributeSet attributeSet; +}; + + +/** An XML comment. +*/ +class TiXmlComment : public TiXmlNode +{ +public: + /// Constructs an empty comment. + TiXmlComment() : TiXmlNode( TiXmlNode::TINYXML_COMMENT ) {} + /// Construct a comment from text. + TiXmlComment( const char* _value ) : TiXmlNode( TiXmlNode::TINYXML_COMMENT ) { + SetValue( _value ); + } + TiXmlComment( const TiXmlComment& ); + TiXmlComment& operator=( const TiXmlComment& base ); + + virtual ~TiXmlComment() {} + + /// Returns a copy of this Comment. + virtual TiXmlNode* Clone() const; + // Write this Comment to a FILE stream. + virtual void Print( FILE* cfile, int depth ) const; + + /* Attribtue parsing starts: at the ! of the !-- + returns: next char past '>' + */ + virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding ); + + virtual const TiXmlComment* ToComment() const { return this; } ///< Cast to a more defined type. Will return null not of the requested type. + virtual TiXmlComment* ToComment() { return this; } ///< Cast to a more defined type. Will return null not of the requested type. + + /** Walk the XML tree visiting this node and all of its children. + */ + virtual bool Accept( TiXmlVisitor* visitor ) const; + +protected: + void CopyTo( TiXmlComment* target ) const; + + // used to be public + #ifdef TIXML_USE_STL + virtual void StreamIn( std::istream * in, TIXML_STRING * tag ); + #endif +// virtual void StreamOut( TIXML_OSTREAM * out ) const; + +private: + +}; + + +/** XML text. A text node can have 2 ways to output the next. "normal" output + and CDATA. It will default to the mode it was parsed from the XML file and + you generally want to leave it alone, but you can change the output mode with + SetCDATA() and query it with CDATA(). +*/ +class TiXmlText : public TiXmlNode +{ + friend class TiXmlElement; +public: + /** Constructor for text element. By default, it is treated as + normal, encoded text. If you want it be output as a CDATA text + element, set the parameter _cdata to 'true' + */ + TiXmlText (const char * initValue ) : TiXmlNode (TiXmlNode::TINYXML_TEXT) + { + SetValue( initValue ); + cdata = false; + } + virtual ~TiXmlText() {} + + #ifdef TIXML_USE_STL + /// Constructor. + TiXmlText( const std::string& initValue ) : TiXmlNode (TiXmlNode::TINYXML_TEXT) + { + SetValue( initValue ); + cdata = false; + } + #endif + + TiXmlText( const TiXmlText& copy ) : TiXmlNode( TiXmlNode::TINYXML_TEXT ) { copy.CopyTo( this ); } + TiXmlText& operator=( const TiXmlText& base ) { base.CopyTo( this ); return *this; } + + // Write this text object to a FILE stream. + virtual void Print( FILE* cfile, int depth ) const; + + /// Queries whether this represents text using a CDATA section. + bool CDATA() const { return cdata; } + /// Turns on or off a CDATA representation of text. + void SetCDATA( bool _cdata ) { cdata = _cdata; } + + virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding ); + + virtual const TiXmlText* ToText() const { return this; } ///< Cast to a more defined type. Will return null not of the requested type. + virtual TiXmlText* ToText() { return this; } ///< Cast to a more defined type. Will return null not of the requested type. + + /** Walk the XML tree visiting this node and all of its children. + */ + virtual bool Accept( TiXmlVisitor* content ) const; + +protected : + /// [internal use] Creates a new Element and returns it. + virtual TiXmlNode* Clone() const; + void CopyTo( TiXmlText* target ) const; + + bool Blank() const; // returns true if all white space and new lines + // [internal use] + #ifdef TIXML_USE_STL + virtual void StreamIn( std::istream * in, TIXML_STRING * tag ); + #endif + +private: + bool cdata; // true if this should be input and output as a CDATA style text element +}; + + +/** In correct XML the declaration is the first entry in the file. + @verbatim + <?xml version="1.0" standalone="yes"?> + @endverbatim + + TinyXml will happily read or write files without a declaration, + however. There are 3 possible attributes to the declaration: + version, encoding, and standalone. + + Note: In this version of the code, the attributes are + handled as special cases, not generic attributes, simply + because there can only be at most 3 and they are always the same. +*/ +class TiXmlDeclaration : public TiXmlNode +{ +public: + /// Construct an empty declaration. + TiXmlDeclaration() : TiXmlNode( TiXmlNode::TINYXML_DECLARATION ) {} + +#ifdef TIXML_USE_STL + /// Constructor. + TiXmlDeclaration( const std::string& _version, + const std::string& _encoding, + const std::string& _standalone ); +#endif + + /// Construct. + TiXmlDeclaration( const char* _version, + const char* _encoding, + const char* _standalone ); + + TiXmlDeclaration( const TiXmlDeclaration& copy ); + TiXmlDeclaration& operator=( const TiXmlDeclaration& copy ); + + virtual ~TiXmlDeclaration() {} + + /// Version. Will return an empty string if none was found. + const char *Version() const { return version.c_str (); } + /// Encoding. Will return an empty string if none was found. + const char *Encoding() const { return encoding.c_str (); } + /// Is this a standalone document? + const char *Standalone() const { return standalone.c_str (); } + + /// Creates a copy of this Declaration and returns it. + virtual TiXmlNode* Clone() const; + // Print this declaration to a FILE stream. + virtual void Print( FILE* cfile, int depth, TIXML_STRING* str ) const; + virtual void Print( FILE* cfile, int depth ) const { + Print( cfile, depth, 0 ); + } + + virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding ); + + virtual const TiXmlDeclaration* ToDeclaration() const { return this; } ///< Cast to a more defined type. Will return null not of the requested type. + virtual TiXmlDeclaration* ToDeclaration() { return this; } ///< Cast to a more defined type. Will return null not of the requested type. + + /** Walk the XML tree visiting this node and all of its children. + */ + virtual bool Accept( TiXmlVisitor* visitor ) const; + +protected: + void CopyTo( TiXmlDeclaration* target ) const; + // used to be public + #ifdef TIXML_USE_STL + virtual void StreamIn( std::istream * in, TIXML_STRING * tag ); + #endif + +private: + + TIXML_STRING version; + TIXML_STRING encoding; + TIXML_STRING standalone; +}; + + +/** Any tag that tinyXml doesn't recognize is saved as an + unknown. It is a tag of text, but should not be modified. + It will be written back to the XML, unchanged, when the file + is saved. + + DTD tags get thrown into TiXmlUnknowns. +*/ +class TiXmlUnknown : public TiXmlNode +{ +public: + TiXmlUnknown() : TiXmlNode( TiXmlNode::TINYXML_UNKNOWN ) {} + virtual ~TiXmlUnknown() {} + + TiXmlUnknown( const TiXmlUnknown& copy ) : TiXmlNode( TiXmlNode::TINYXML_UNKNOWN ) { copy.CopyTo( this ); } + TiXmlUnknown& operator=( const TiXmlUnknown& copy ) { copy.CopyTo( this ); return *this; } + + /// Creates a copy of this Unknown and returns it. + virtual TiXmlNode* Clone() const; + // Print this Unknown to a FILE stream. + virtual void Print( FILE* cfile, int depth ) const; + + virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding ); + + virtual const TiXmlUnknown* ToUnknown() const { return this; } ///< Cast to a more defined type. Will return null not of the requested type. + virtual TiXmlUnknown* ToUnknown() { return this; } ///< Cast to a more defined type. Will return null not of the requested type. + + /** Walk the XML tree visiting this node and all of its children. + */ + virtual bool Accept( TiXmlVisitor* content ) const; + +protected: + void CopyTo( TiXmlUnknown* target ) const; + + #ifdef TIXML_USE_STL + virtual void StreamIn( std::istream * in, TIXML_STRING * tag ); + #endif + +private: + +}; + + +/** Always the top level node. A document binds together all the + XML pieces. It can be saved, loaded, and printed to the screen. + The 'value' of a document node is the xml file name. +*/ +class TiXmlDocument : public TiXmlNode +{ +public: + /// Create an empty document, that has no name. + TiXmlDocument(); + /// Create a document with a name. The name of the document is also the filename of the xml. + TiXmlDocument( const char * documentName ); + + #ifdef TIXML_USE_STL + /// Constructor. + TiXmlDocument( const std::string& documentName ); + #endif + + TiXmlDocument( const TiXmlDocument& copy ); + TiXmlDocument& operator=( const TiXmlDocument& copy ); + + virtual ~TiXmlDocument() {} + + /** Load a file using the current document value. + Returns true if successful. Will delete any existing + document data before loading. + */ + bool LoadFile( TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING ); + /// Save a file using the current document value. Returns true if successful. + bool SaveFile() const; + /// Load a file using the given filename. Returns true if successful. + bool LoadFile( const char * filename, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING ); + /// Save a file using the given filename. Returns true if successful. + bool SaveFile( const char * filename ) const; + /** Load a file using the given FILE*. Returns true if successful. Note that this method + doesn't stream - the entire object pointed at by the FILE* + will be interpreted as an XML file. TinyXML doesn't stream in XML from the current + file location. Streaming may be added in the future. + */ + bool LoadFile( FILE*, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING ); + /// Save a file using the given FILE*. Returns true if successful. + bool SaveFile( FILE* ) const; + + #ifdef TIXML_USE_STL + bool LoadFile( const std::string& filename, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING ) ///< STL std::string version. + { + return LoadFile( filename.c_str(), encoding ); + } + bool SaveFile( const std::string& filename ) const ///< STL std::string version. + { + return SaveFile( filename.c_str() ); + } + #endif + + /** Parse the given null terminated block of xml data. Passing in an encoding to this + method (either TIXML_ENCODING_LEGACY or TIXML_ENCODING_UTF8 will force TinyXml + to use that encoding, regardless of what TinyXml might otherwise try to detect. + */ + virtual const char* Parse( const char* p, TiXmlParsingData* data = 0, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING ); + + /** Get the root element -- the only top level element -- of the document. + In well formed XML, there should only be one. TinyXml is tolerant of + multiple elements at the document level. + */ + const TiXmlElement* RootElement() const { return FirstChildElement(); } + TiXmlElement* RootElement() { return FirstChildElement(); } + + /** If an error occurs, Error will be set to true. Also, + - The ErrorId() will contain the integer identifier of the error (not generally useful) + - The ErrorDesc() method will return the name of the error. (very useful) + - The ErrorRow() and ErrorCol() will return the location of the error (if known) + */ + bool Error() const { return error; } + + /// Contains a textual (english) description of the error if one occurs. + const char * ErrorDesc() const { return errorDesc.c_str (); } + + /** Generally, you probably want the error string ( ErrorDesc() ). But if you + prefer the ErrorId, this function will fetch it. + */ + int ErrorId() const { return errorId; } + + /** Returns the location (if known) of the error. The first column is column 1, + and the first row is row 1. A value of 0 means the row and column wasn't applicable + (memory errors, for example, have no row/column) or the parser lost the error. (An + error in the error reporting, in that case.) + + @sa SetTabSize, Row, Column + */ + int ErrorRow() const { return errorLocation.row+1; } + int ErrorCol() const { return errorLocation.col+1; } ///< The column where the error occured. See ErrorRow() + + /** SetTabSize() allows the error reporting functions (ErrorRow() and ErrorCol()) + to report the correct values for row and column. It does not change the output + or input in any way. + + By calling this method, with a tab size + greater than 0, the row and column of each node and attribute is stored + when the file is loaded. Very useful for tracking the DOM back in to + the source file. + + The tab size is required for calculating the location of nodes. If not + set, the default of 4 is used. The tabsize is set per document. Setting + the tabsize to 0 disables row/column tracking. + + Note that row and column tracking is not supported when using operator>>. + + The tab size needs to be enabled before the parse or load. Correct usage: + @verbatim + TiXmlDocument doc; + doc.SetTabSize( 8 ); + doc.Load( "myfile.xml" ); + @endverbatim + + @sa Row, Column + */ + void SetTabSize( int _tabsize ) { tabsize = _tabsize; } + + int TabSize() const { return tabsize; } + + /** If you have handled the error, it can be reset with this call. The error + state is automatically cleared if you Parse a new XML block. + */ + void ClearError() { error = false; + errorId = 0; + errorDesc = ""; + errorLocation.row = errorLocation.col = 0; + //errorLocation.last = 0; + } + + /** Write the document to standard out using formatted printing ("pretty print"). */ + void Print() const { Print( stdout, 0 ); } + + /* Write the document to a string using formatted printing ("pretty print"). This + will allocate a character array (new char[]) and return it as a pointer. The + calling code pust call delete[] on the return char* to avoid a memory leak. + */ + //char* PrintToMemory() const; + + /// Print this Document to a FILE stream. + virtual void Print( FILE* cfile, int depth = 0 ) const; + // [internal use] + void SetError( int err, const char* errorLocation, TiXmlParsingData* prevData, TiXmlEncoding encoding ); + + virtual const TiXmlDocument* ToDocument() const { return this; } ///< Cast to a more defined type. Will return null not of the requested type. + virtual TiXmlDocument* ToDocument() { return this; } ///< Cast to a more defined type. Will return null not of the requested type. + + /** Walk the XML tree visiting this node and all of its children. + */ + virtual bool Accept( TiXmlVisitor* content ) const; + +protected : + // [internal use] + virtual TiXmlNode* Clone() const; + #ifdef TIXML_USE_STL + virtual void StreamIn( std::istream * in, TIXML_STRING * tag ); + #endif + +private: + void CopyTo( TiXmlDocument* target ) const; + + bool error; + int errorId; + TIXML_STRING errorDesc; + int tabsize; + TiXmlCursor errorLocation; + bool useMicrosoftBOM; // the UTF-8 BOM were found when read. Note this, and try to write. +}; + + +/** + A TiXmlHandle is a class that wraps a node pointer with null checks; this is + an incredibly useful thing. Note that TiXmlHandle is not part of the TinyXml + DOM structure. It is a separate utility class. + + Take an example: + @verbatim + <Document> + <Element attributeA = "valueA"> + <Child attributeB = "value1" /> + <Child attributeB = "value2" /> + </Element> + <Document> + @endverbatim + + Assuming you want the value of "attributeB" in the 2nd "Child" element, it's very + easy to write a *lot* of code that looks like: + + @verbatim + TiXmlElement* root = document.FirstChildElement( "Document" ); + if ( root ) + { + TiXmlElement* element = root->FirstChildElement( "Element" ); + if ( element ) + { + TiXmlElement* child = element->FirstChildElement( "Child" ); + if ( child ) + { + TiXmlElement* child2 = child->NextSiblingElement( "Child" ); + if ( child2 ) + { + // Finally do something useful. + @endverbatim + + And that doesn't even cover "else" cases. TiXmlHandle addresses the verbosity + of such code. A TiXmlHandle checks for null pointers so it is perfectly safe + and correct to use: + + @verbatim + TiXmlHandle docHandle( &document ); + TiXmlElement* child2 = docHandle.FirstChild( "Document" ).FirstChild( "Element" ).Child( "Child", 1 ).ToElement(); + if ( child2 ) + { + // do something useful + @endverbatim + + Which is MUCH more concise and useful. + + It is also safe to copy handles - internally they are nothing more than node pointers. + @verbatim + TiXmlHandle handleCopy = handle; + @endverbatim + + What they should not be used for is iteration: + + @verbatim + int i=0; + while ( true ) + { + TiXmlElement* child = docHandle.FirstChild( "Document" ).FirstChild( "Element" ).Child( "Child", i ).ToElement(); + if ( !child ) + break; + // do something + ++i; + } + @endverbatim + + It seems reasonable, but it is in fact two embedded while loops. The Child method is + a linear walk to find the element, so this code would iterate much more than it needs + to. Instead, prefer: + + @verbatim + TiXmlElement* child = docHandle.FirstChild( "Document" ).FirstChild( "Element" ).FirstChild( "Child" ).ToElement(); + + for( child; child; child=child->NextSiblingElement() ) + { + // do something + } + @endverbatim +*/ +class TiXmlHandle +{ +public: + /// Create a handle from any node (at any depth of the tree.) This can be a null pointer. + TiXmlHandle( TiXmlNode* _node ) { this->node = _node; } + /// Copy constructor + TiXmlHandle( const TiXmlHandle& ref ) { this->node = ref.node; } + TiXmlHandle operator=( const TiXmlHandle& ref ) { if ( &ref != this ) this->node = ref.node; return *this; } + + /// Return a handle to the first child node. + TiXmlHandle FirstChild() const; + /// Return a handle to the first child node with the given name. + TiXmlHandle FirstChild( const char * value ) const; + /// Return a handle to the first child element. + TiXmlHandle FirstChildElement() const; + /// Return a handle to the first child element with the given name. + TiXmlHandle FirstChildElement( const char * value ) const; + + /** Return a handle to the "index" child with the given name. + The first child is 0, the second 1, etc. + */ + TiXmlHandle Child( const char* value, int index ) const; + /** Return a handle to the "index" child. + The first child is 0, the second 1, etc. + */ + TiXmlHandle Child( int index ) const; + /** Return a handle to the "index" child element with the given name. + The first child element is 0, the second 1, etc. Note that only TiXmlElements + are indexed: other types are not counted. + */ + TiXmlHandle ChildElement( const char* value, int index ) const; + /** Return a handle to the "index" child element. + The first child element is 0, the second 1, etc. Note that only TiXmlElements + are indexed: other types are not counted. + */ + TiXmlHandle ChildElement( int index ) const; + + #ifdef TIXML_USE_STL + TiXmlHandle FirstChild( const std::string& _value ) const { return FirstChild( _value.c_str() ); } + TiXmlHandle FirstChildElement( const std::string& _value ) const { return FirstChildElement( _value.c_str() ); } + + TiXmlHandle Child( const std::string& _value, int index ) const { return Child( _value.c_str(), index ); } + TiXmlHandle ChildElement( const std::string& _value, int index ) const { return ChildElement( _value.c_str(), index ); } + #endif + + /** Return the handle as a TiXmlNode. This may return null. + */ + TiXmlNode* ToNode() const { return node; } + /** Return the handle as a TiXmlElement. This may return null. + */ + TiXmlElement* ToElement() const { return ( ( node && node->ToElement() ) ? node->ToElement() : 0 ); } + /** Return the handle as a TiXmlText. This may return null. + */ + TiXmlText* ToText() const { return ( ( node && node->ToText() ) ? node->ToText() : 0 ); } + /** Return the handle as a TiXmlUnknown. This may return null. + */ + TiXmlUnknown* ToUnknown() const { return ( ( node && node->ToUnknown() ) ? node->ToUnknown() : 0 ); } + + /** @deprecated use ToNode. + Return the handle as a TiXmlNode. This may return null. + */ + TiXmlNode* Node() const { return ToNode(); } + /** @deprecated use ToElement. + Return the handle as a TiXmlElement. This may return null. + */ + TiXmlElement* Element() const { return ToElement(); } + /** @deprecated use ToText() + Return the handle as a TiXmlText. This may return null. + */ + TiXmlText* Text() const { return ToText(); } + /** @deprecated use ToUnknown() + Return the handle as a TiXmlUnknown. This may return null. + */ + TiXmlUnknown* Unknown() const { return ToUnknown(); } + +private: + TiXmlNode* node; +}; + + +/** Print to memory functionality. The TiXmlPrinter is useful when you need to: + + -# Print to memory (especially in non-STL mode) + -# Control formatting (line endings, etc.) + + When constructed, the TiXmlPrinter is in its default "pretty printing" mode. + Before calling Accept() you can call methods to control the printing + of the XML document. After TiXmlNode::Accept() is called, the printed document can + be accessed via the CStr(), Str(), and Size() methods. + + TiXmlPrinter uses the Visitor API. + @verbatim + TiXmlPrinter printer; + printer.SetIndent( "\t" ); + + doc.Accept( &printer ); + fprintf( stdout, "%s", printer.CStr() ); + @endverbatim +*/ +class TiXmlPrinter : public TiXmlVisitor +{ +public: + TiXmlPrinter() : depth( 0 ), simpleTextPrint( false ), + buffer(), indent( " " ), lineBreak( "\n" ) {} + + virtual bool VisitEnter( const TiXmlDocument& doc ); + virtual bool VisitExit( const TiXmlDocument& doc ); + + virtual bool VisitEnter( const TiXmlElement& element, const TiXmlAttribute* firstAttribute ); + virtual bool VisitExit( const TiXmlElement& element ); + + virtual bool Visit( const TiXmlDeclaration& declaration ); + virtual bool Visit( const TiXmlText& text ); + virtual bool Visit( const TiXmlComment& comment ); + virtual bool Visit( const TiXmlUnknown& unknown ); + + /** Set the indent characters for printing. By default 4 spaces + but tab (\t) is also useful, or null/empty string for no indentation. + */ + void SetIndent( const char* _indent ) { indent = _indent ? _indent : "" ; } + /// Query the indention string. + const char* Indent() { return indent.c_str(); } + /** Set the line breaking string. By default set to newline (\n). + Some operating systems prefer other characters, or can be + set to the null/empty string for no indenation. + */ + void SetLineBreak( const char* _lineBreak ) { lineBreak = _lineBreak ? _lineBreak : ""; } + /// Query the current line breaking string. + const char* LineBreak() { return lineBreak.c_str(); } + + /** Switch over to "stream printing" which is the most dense formatting without + linebreaks. Common when the XML is needed for network transmission. + */ + void SetStreamPrinting() { indent = ""; + lineBreak = ""; + } + /// Return the result. + const char* CStr() { return buffer.c_str(); } + /// Return the length of the result string. + size_t Size() { return buffer.size(); } + + #ifdef TIXML_USE_STL + /// Return the result. + const std::string& Str() { return buffer; } + #endif + +private: + void DoIndent() { + for( int i=0; i<depth; ++i ) + buffer += indent; + } + void DoLineBreak() { + buffer += lineBreak; + } + + int depth; + bool simpleTextPrint; + TIXML_STRING buffer; + TIXML_STRING indent; + TIXML_STRING lineBreak; +}; + + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif diff --git a/include/trajectory/EndCircleTraj.h b/include/trajectory/EndCircleTraj.h index 6724fa3..de82319 100755 --- a/include/trajectory/EndCircleTraj.h +++ b/include/trajectory/EndCircleTraj.h @@ -1,32 +1,32 @@ -#ifndef ENDCIRCLETRAJ_H -#define ENDCIRCLETRAJ_H - -#include "trajectory/EndHomoTraj.h" - -class EndCircleTraj: public EndHomoTraj{ -public: - EndCircleTraj(CtrlComponents *ctrlComp); - ~EndCircleTraj(){} - - void setEndRoundTraj(HomoMat startHomo, Vec3 axisPointFromInit, - Vec3 axisDirection, double maxSpeed, double angle, - bool keepOrientation = true); - void setEndRoundTraj(std::string stateName, Vec3 axisPointFromInit, - Vec3 axisDirection, double maxSpeed, double angle, - bool keepOrientation = true); - void setEndRoundTraj(Vec6 startP, Vec6 middleP, Vec6 endP, double speed); -private: - void _centerCircle(Vec3 p1, Vec3 p2, Vec3 p3); - bool _getEndTraj(HomoMat &homo, Vec6 &twist); - Vec3 _center, _omegaAxis; - double _radius, _theta; - - Vec6 _middlePosture; - Vec6 _middleQ; - HomoMat _initHomoToCenter, _middleHomo, _centerHomo; - RotMat _initOri; - - bool _keepOrientation; -}; - +#ifndef ENDCIRCLETRAJ_H +#define ENDCIRCLETRAJ_H + +#include "trajectory/EndHomoTraj.h" + +class EndCircleTraj: public EndHomoTraj{ +public: + EndCircleTraj(CtrlComponents *ctrlComp); + ~EndCircleTraj(){} + + void setEndRoundTraj(HomoMat startHomo, Vec3 axisPointFromInit, + Vec3 axisDirection, double maxSpeed, double angle, + bool keepOrientation = true); + void setEndRoundTraj(std::string stateName, Vec3 axisPointFromInit, + Vec3 axisDirection, double maxSpeed, double angle, + bool keepOrientation = true); + void setEndRoundTraj(Vec6 startP, Vec6 middleP, Vec6 endP, double speed); +private: + void _centerCircle(Vec3 p1, Vec3 p2, Vec3 p3); + bool _getEndTraj(HomoMat &homo, Vec6 &twist); + Vec3 _center, _omegaAxis; + double _radius, _theta; + + Vec6 _middlePosture; + Vec6 _middleQ; + HomoMat _initHomoToCenter, _middleHomo, _centerHomo; + RotMat _initOri; + + bool _keepOrientation; +}; + #endif // ENDCIRCLETRAJ_H \ No newline at end of file diff --git a/include/trajectory/EndLineTraj.h b/include/trajectory/EndLineTraj.h old mode 100755 new mode 100644 diff --git a/include/trajectory/JointSpaceTraj.h b/include/trajectory/JointSpaceTraj.h index 8533c06..2e4b123 100755 --- a/include/trajectory/JointSpaceTraj.h +++ b/include/trajectory/JointSpaceTraj.h @@ -1,33 +1,33 @@ -#ifndef JOINTSPACETRAJ_H -#define JOINTSPACETRAJ_H - -#include <vector> -#include <trajectory/Trajectory.h> -#include <string> -#include "control/CtrlComponents.h" -#include "trajectory/SCurve.h" - - -class JointSpaceTraj : public Trajectory{ -public: - JointSpaceTraj(CtrlComponents *ctrlComp); - ~JointSpaceTraj(){} - - bool getJointCmd(Vec6 &q, Vec6 &qd); - bool getJointCmd(Vec6 &q, Vec6 &qd, double &gripperQ, double &gripperQd); - - void setGripper(double startQ, double endQ, double speed = M_PI); - void setJointTraj(Vec6 startQ, Vec6 endQ, double speed); - bool setJointTraj(Vec6 startQ, std::string endName, double speed); - bool setJointTraj(std::string startName, std::string endName, double speed); -private: - void _generateA345(double pathTime); - - SCurve _jointCurve; - const double ddQMax = 15.0; - const double dddQMax = 30.0; - - double _a3, _a4, _a5, _s, _sDot; -}; - +#ifndef JOINTSPACETRAJ_H +#define JOINTSPACETRAJ_H + +#include <vector> +#include <trajectory/Trajectory.h> +#include <string> +#include "control/CtrlComponents.h" +#include "trajectory/SCurve.h" + + +class JointSpaceTraj : public Trajectory{ +public: + JointSpaceTraj(CtrlComponents *ctrlComp); + ~JointSpaceTraj(){} + + bool getJointCmd(Vec6 &q, Vec6 &qd); + bool getJointCmd(Vec6 &q, Vec6 &qd, double &gripperQ, double &gripperQd); + + void setGripper(double startQ, double endQ, double speed = M_PI); + void setJointTraj(Vec6 startQ, Vec6 endQ, double speed); + bool setJointTraj(Vec6 startQ, std::string endName, double speed); + bool setJointTraj(std::string startName, std::string endName, double speed); +private: + void _generateA345(double pathTime); + + SCurve _jointCurve; + const double ddQMax = 15.0; + const double dddQMax = 30.0; + + double _a3, _a4, _a5, _s, _sDot; +}; + #endif // JOINTSPACETRAJ_H \ No newline at end of file diff --git a/include/trajectory/SCurve.h b/include/trajectory/SCurve.h index cad0d30..9330785 100755 --- a/include/trajectory/SCurve.h +++ b/include/trajectory/SCurve.h @@ -1,49 +1,49 @@ -#ifndef SCURVE_H -#define SCURVE_H - -/* 归一化后的s曲线 */ - -#include <iostream> - -class SCurve{ -public: - SCurve(){} - ~SCurve(){} - void setSCurve(double deltaQ, double dQMax, double ddQMax, double dddQMax); - void restart(); -/* -考虑到归一化,在实际使用时,物理量为: -加速度 = deltaQ * getDDs(); -*/ - double getDDs(); - double getDDs(double t); -/* -考虑到归一化,在实际使用时,物理量为: -速度 = deltaQ * getDs(); -*/ - double getDs(); - double getDs(double t); -/* -考虑到归一化,在实际使用时,物理量为: -位置 = deltaQ * gets(); -*/ - double gets(); - double gets(double t); - - double getT(); -private: - int _getSegment(double t); - void _setFunc(); - double _runTime(); - - bool _started = false; - double _startTime; - - double _J, _aMax, _vMax; - double _T[7]; // period - double _t[7]; // moment - double _v0, _v1; // ds at _t[0], _t[1] - double _s0, _s1, _s2, _s3, _s4, _s5, _s6; // s at _t[0], _t[1] -}; - +#ifndef SCURVE_H +#define SCURVE_H + +/* 归一化后的s曲线 */ + +#include <iostream> + +class SCurve{ +public: + SCurve(){} + ~SCurve(){} + void setSCurve(double deltaQ, double dQMax, double ddQMax, double dddQMax); + void restart(); +/* +考虑到归一化,在实际使用时,物理量为: +加速度 = deltaQ * getDDs(); +*/ + double getDDs(); + double getDDs(double t); +/* +考虑到归一化,在实际使用时,物理量为: +速度 = deltaQ * getDs(); +*/ + double getDs(); + double getDs(double t); +/* +考虑到归一化,在实际使用时,物理量为: +位置 = deltaQ * gets(); +*/ + double gets(); + double gets(double t); + + double getT(); +private: + int _getSegment(double t); + void _setFunc(); + double _runTime(); + + bool _started = false; + double _startTime; + + double _J, _aMax, _vMax; + double _T[7]; // period + double _t[7]; // moment + double _v0, _v1; // ds at _t[0], _t[1] + double _s0, _s1, _s2, _s3, _s4, _s5, _s6; // s at _t[0], _t[1] +}; + #endif // SCURVE_H \ No newline at end of file diff --git a/include/trajectory/StopForTime.h b/include/trajectory/StopForTime.h index 0e435ce..7d02c99 100755 --- a/include/trajectory/StopForTime.h +++ b/include/trajectory/StopForTime.h @@ -1,17 +1,17 @@ -#ifndef STOPFORTIME_H -#define STOPFORTIME_H - -#include "trajectory/Trajectory.h" - -class StopForTime : public Trajectory{ -public: - StopForTime(CtrlComponents *ctrlComp); - ~StopForTime(){} - - bool getJointCmd(Vec6 &q, Vec6 &qd); - bool getJointCmd(Vec6 &q, Vec6 &qd, double &gripperQ, double &gripperQd); - void setStop(Vec6 stopQ, double stopTime); -private: -}; - +#ifndef STOPFORTIME_H +#define STOPFORTIME_H + +#include "trajectory/Trajectory.h" + +class StopForTime : public Trajectory{ +public: + StopForTime(CtrlComponents *ctrlComp); + ~StopForTime(){} + + bool getJointCmd(Vec6 &q, Vec6 &qd); + bool getJointCmd(Vec6 &q, Vec6 &qd, double &gripperQ, double &gripperQd); + void setStop(Vec6 stopQ, double stopTime); +private: +}; + #endif // STOPFORTIME_H \ No newline at end of file diff --git a/include/trajectory/TrajectoryManager.h b/include/trajectory/TrajectoryManager.h index 7bc364a..a4afb86 100755 --- a/include/trajectory/TrajectoryManager.h +++ b/include/trajectory/TrajectoryManager.h @@ -1,38 +1,38 @@ -#ifndef TRAJECTORY_MANAGER_H -#define TRAJECTORY_MANAGER_H - -#include <vector> -#include "control/CtrlComponents.h" -#include "trajectory/JointSpaceTraj.h" -#include "trajectory/EndLineTraj.h" -#include "trajectory/EndCircleTraj.h" -#include "trajectory/StopForTime.h" - -class TrajectoryManager{ -public: - TrajectoryManager(CtrlComponents *ctrlComp); - ~TrajectoryManager(){} - bool getJointCmd(Vec6 &q, Vec6 &qd); - bool getJointCmd(Vec6 &q, Vec6 &qd, double &gripperQ, double &gripperQd); - void addTrajectory(Trajectory* traj); - void setLoop(double backSpeed = 0.7); - void restartTraj(); - void emptyTraj(); - Vec6 getStartQ(); - Vec6 getEndQ(); - Vec6 getEndPosture(); - double getStartGripperQ(); - double getEndGripperQ(); - HomoMat getEndHomo(); - size_t size() {return _trajVec.size();} ; -private: - CtrlComponents *_ctrlComp; - JointSpaceTraj *_trajBack; - std::vector<Trajectory*> _trajVec; - int _trajID = 0; - double _jointErr = 0.05; - bool _trajCorrect = true; - bool _loop = false; -}; - +#ifndef TRAJECTORY_MANAGER_H +#define TRAJECTORY_MANAGER_H + +#include <vector> +#include "control/CtrlComponents.h" +#include "trajectory/JointSpaceTraj.h" +#include "trajectory/EndLineTraj.h" +#include "trajectory/EndCircleTraj.h" +#include "trajectory/StopForTime.h" + +class TrajectoryManager{ +public: + TrajectoryManager(CtrlComponents *ctrlComp); + ~TrajectoryManager(){} + bool getJointCmd(Vec6 &q, Vec6 &qd); + bool getJointCmd(Vec6 &q, Vec6 &qd, double &gripperQ, double &gripperQd); + void addTrajectory(Trajectory* traj); + void setLoop(double backSpeed = 0.7); + void restartTraj(); + void emptyTraj(); + Vec6 getStartQ(); + Vec6 getEndQ(); + Vec6 getEndPosture(); + double getStartGripperQ(); + double getEndGripperQ(); + HomoMat getEndHomo(); + size_t size() {return _trajVec.size();} ; +private: + CtrlComponents *_ctrlComp; + JointSpaceTraj *_trajBack; + std::vector<Trajectory*> _trajVec; + int _trajID = 0; + double _jointErr = 0.05; + bool _trajCorrect = true; + bool _loop = false; +}; + #endif // TRAJECTORY_MANAGER_H \ No newline at end of file diff --git a/lib/libZ1_ROS_Linux64.so b/lib/libZ1_ROS_x86_64.so old mode 100644 new mode 100755 similarity index 90% rename from lib/libZ1_ROS_Linux64.so rename to lib/libZ1_ROS_x86_64.so index fc463edb3a9e287b44fbb3bf997107ad09b83faa..5c494806d49b5c5a6f655681bb3689fb27a3c1c2 GIT binary patch delta 30863 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 Cs<b!& delta 30953 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 S+!%de-UNb}?S@Q}>C6B-?8tZk diff --git a/lib/libZ1_UDP_aarch64.so b/lib/libZ1_UDP_aarch64.so new file mode 100644 index 0000000000000000000000000000000000000000..599ef17619df24f72fce7525e2d912806f46ad6f GIT binary patch literal 1553288 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�b#R%3{FJeNIu7XAZcH~K0#Hrw4$Y3<>=>mz)HjAJfv zcmRG^#9Wl3^Awp;?8zfml0AI3?P`>jYtSGUh;MCXeU*F0v<=1=Q05s!*)cu)_pYbT zBGy)nIk4w!RQ(Sa<7ml*JUbQ)tNsZX{t4Ty@+sG}cCYV%?<n`!R{qZ<);|aNG6+rd zp=(r|RP-tAU-bV~<kG(xvqAZVy5Xh79F9E5dK}DsD$n4t{5SOjxjS?nzv_oNYdjDe z7%t_vpDQ<(LN27#u;Rwtj2-(vWjx5@r-z;IB#S%0spH9j$v_q!d{iBk_~-W@wCZ?B z_WFP?#mbX{KCoT#eUBXOOPr~a*mEU$%BjDJ@161i?}(m0{DnRQ3)zDPeS3~EIb}-m zA^YV=_H$N+F9W?IGh8+>I6Jw{my+sKA1ME1Ajlbf(nAutIg-maP~MZs+okeB!K6?8 znbY45ls#U*!b%Ia=PPdSL#xg{@n$RRegfaqlFE$krL+9fYVSx~z*z&#_D2THvSOn? zVZM)?J>vq8-1Wgvcco9Ij2UXaHt)rm@lDXgAZIe)Lu|=l^!b*8rLVar1z*cIkpr^* zl6Mvw=GoD**Yi}%OG^&q-&tG}=$!R%X=g>_v(Uj>){pYWwGtzqpUz%zu6fg|-{6c` z-s5Zc_~J9r$E)`(-svSzg@NC$N`H2_$^7r-waBv%psyQpkF?;6g#Iig-_p{m=~Zu7 zxuvMvkl(~W(}m|hfj@4h&27fr*vfqcX9-qOXMj58<NXin+?Kv&`7SfO?b)X}1D3d^ z=7X-M%D(-x1KaN0QnQUbdD~J3gtoPp@7zP*diI-HHt=Vy{buM8Z58yvaCxT(->9bV zDYPF0-}cewAjb1N_qpgHg?0BWmpv;ta_{njKaop@IMWPZ)dZ}XfK};_3u|(LRc>df z5qrqe0%VTC&^LXPaRRVLZ%Oq;UV9tZyqnm=w>o|6a?g)bY662jjk5ET!=$7FdqE(5 z^K$Lu4X`IapnbsDAau5N;oz;yy=y%+4eUS7MW*)C-&}I~nas`01L>v_ygkM^ht&%Y z9uU3$p!=*!a8No)DLCP~aSL|R$ZL7Tw0JoO@I!FyKN!FN+dq44!w3`heS5<J-?#sp zYxe=cFmji#W_ah%8aE6W9*T67?{xB;$AGbugUUG{vm0KkeVt!{Chbo9_otdTldY9& zU<zlT!Ed|q`4k@PF4=qMpc=)C?`2-Q&CvaigJa!Z-+lwUp8cDzLwsUMYG!B&urcW` zEf*aZuH=lOe&A9{UkmAHA^j|*pRPL#YrLI7*+Ph!FW>1J+^~F7#MGq2PXxDgla9^E z6~a!&yUojU(`7etg*1j+8GAl+<Qf=xEuZ<(`P{9*x9V4}nqu-I;%f;{0tY$6u2J); znBSDa&n_RInbP<!I!+byd_Ui7ZnY*HJi3Q^`on=-V572k@xGy>d&8A#KY=TgEnIN{ zGgrOJyvsYzAK&k~P`Zk{-u1hR<vQC-eB#TZLqX(*e9KOhM2GyR_M$_#QRd5PZ(e`x zHS~^qony84+g^DLl)u2<hv{bDrKf%ca-NgNK(b~X>-I|KNq){;<otiY-&V-}iygV{ zOk^x<Ei171HqSEgN3&-{_vB<o$LqVV^A0^K@~_B8=m@JhS8Vr?wCJPR#grKoU3)S) z+a_j2SA30c(Ut0oD38r1auMa>#jWU5<jJ)18eB<UgEBLsaW1q#c@5<6t^i-7$e+q< zP!4|F@BZ@g8k`55psineUW0t<?V+Dz*)wD1HF(XYp;K-7+Mmd4VC5)04gF5^3cF=_ zQeK1N<Q#=>1#Z$Fw!)yDqp){g1L#7Zyat=#PflKga(GGayat}0yavg+3AHYc<Tc>D z@MGjPaPkvEPfH5PPpG^GtHGcC@*4P<JLwSSn0XD{^~J}T*B}M^l<22uirw}+t8ML% zP+kM!$?@hjxDPz~|MME44*^pzHYD-gpyZjPyaqvR1%2}xTo2rY+sQcH-`;z#^t*oY z9n|sse><;%@+<nt4V9GFpts!U`&zHq%Z&Y>E_38h<u!0*(B!-ZZp!=)UF1k!gQ-?I z<mHC~Ue}IfdHK+XR(-VDE3ZNCKE%$a4@dTXyu&vJ`r021`_F6egk@(?-0c_5Yv5rl z^Pu&u#rVOY@vQ~iN6d(}j?A#?oHwGF-vgs%@B!JxN?Gg5flvnRZ-y`UMf;)crO;^Q zIk+}^x<&ivLGxR&CzV0-o8b|D(R^rs3-&bG(LOKl!8O=HlIdvI;vE(Zh2L%$ES-4? z#1j6DgpO1L?E1#}=VEW`iSuWFg#5%4`ib*bY>DV#zAM$rr5|8@DDU%TXs??yj|$NR zrW;?}^<!5}9&||iCo1t7dZ9g=xlDR#wwJuw1=x{Gr8^^+zQ?!C_<~h$3UyRaN44r0 z=&EVJ9*+-_xD|5EgQpebAJG{XLGq9MhP5I&_b2E9u5p~riVT&<x9`KBPv(0!@wSE7 z{^uF;oY0SF@w;msS8^6@WHM(B<Lmq?-!#eQ&$wR3&;B^Rb@fB%BRTElVh7lSe^CA1 zjBiY~ah=`K06i$?cN61kP##*w*1(w>GhC^U;m6b&PfJ&q-2KKT`nVcc<`5I_#Q6vL zM&Ie1paqYVHXq~Z@409~8**7WK0tKy66JA}Kk#LA2KP{3)J4A)4=_-97A5P^$BTf& z65vn_914G&R^!E=Q3eeB_*kVo6`g)bhZh*!4-7Qk3Sgl1<ikIxaVKJ$tXLe4dlNoe zjn~UuSI}?2Z1wcrPp+1|%(Kpb!t+z|S#9kjrc(S)-|Jf+<3^TgGmNRf=Nk9hN%H7i z_@ve^cCpWln|Eka#W8f_H$QOf0!eEGI+h$a{~Bck7s;hxR=fXYw+mgf+T9*x|6IV| zJ2&e3|99=O-Yr{zU1uL#KyAP6_Ku_c`Tqy)R`l0y!^mE6zCF=ycX38fyrDy%W5up; zPwpA?6VcT?aP*cz_=TXg*qwLSGP(!f;xNuFN(nvk-lxj~(C8Lubs71QC7<7T&&=q% zX@jkO-4-o|*3P4@R%me<bu~lJZ}@6)^qnULM(0Z&Uo$9rtz`JxjA(#%TA<OTl^0^a z91`6vc|2sx<Lj|KmXPlPd-(oKIcrmRQla(4y)FxTKX|@{`Zu|yx0$XY%5N@1mZj|i z%4~%%l%8bgf)@SRf*zh@jFroOu5?mpi}s5q$K)t~l4J|uW!XR#H}=kHBak;nTDkN0 z<cx~8G@5wxskDR5|7G@lt3SEKiD-?fUCEk0Xs+@ZY448kyijYBbu3-j-p^B*qjm4d zjv9+($NO31#&u!Nzy|U?V5feTdPm_mxER_n89%|>jMIJI_1UFE+BYg@uKB@lMBSO5 zXfye=-I*!eFXo;aZNV4OG8O-52>8=i_0fgRr2%-U4^8l+XA`ih<=r-5<-*2P$bRj~ z=wa8<_ZPUj(S>&3Ij|;$Jx!0{?-gDA31=+n`D*U^U(NH2O-5*t85EiU{VFHED#Z~0 z{?POe?|CI1Z^J)|$)z;~fAEda&ql7@=sm6A+(72V;s?;jdT40H{OdZkziAV3nAM!a zAs?~n4BQmKR==7ye0SUDa*T&BZpK$!g|B!U=Pp@!%14!Do7+$Bd>grO5;?=1c}*W} z=fzqJ>?BVn&#!Fk&ir7jf)8qb(n7h^1s!DnKzb;bc@lqs?tLa5_|NwpT|Alo{7Wy{ z?h(pR&qJ0h=08I+ghf-5WxEh%zAk?vxK}~DwtkQ7W=;toiRZA}@M$li`D!ow=;HqR zVc2(^B;WmzGB*8v!qU?nn$SZJ^2tTTI+C9unI4D^IJv1rD?}4+!v<xocVx0sXoB+H zl%9kiA}cK+zuB@}UpcO?{C1SwHWS=Mr|*&5(ASSgZc971-1cNI-eAt`H8)d$$rrGb zd?qf8>2D5#<i|?dA9teFUhnhMKf-o&khPJEj93l)lh04DM8385%Q8Osk^E)Ex(yD# zwxEqTZq{%4mFZFcMRv}rpiLK#b>?YrI0VU|rM+K?c$_w9{1@cQp9zcCsn3>~&*{PU zfR{X3Nw9c@GB!RQ-+u7VTZ@0}uT6uTp48^=65}j~{#kO*XXKCiy!L+GUwe@Oz1sVk z)!xRQ^``t|vWqFUNqeN^yRW#+jv;pTPcMQ8=OSk+&rTG434#N%L4K4*yff>}$;X+M zl#f%iUUsV>_%jf`G9u09k>VXcCnu)|JGuOMh1jp{oSY-b$@%l;fB6DAIe)@f9NU%r zd9=5~j~sujoSZ)Vd6GppLrZrh@^NnIlaKR1sIy1k!tQVD_<#OPyH(_W$!;ZkzH_FA z7hlKm*sXLvo|$wcAE#rtf@b&Ft&m5C-D>6H9KpIDQNId$FF8VUC^;fVTTU)cAHVya z|B#zF|DgbToAQx5HZ!Mf7w~pjb}JV)ILB^P+RJVwJdx}nT<M#Wa~1N_xe58h$;l~M zOSY>BIXTn7Ehi^u1vxnffLpu3t<A_9Uo<D@V8-W0_BfuLoc}lH<BTDH2#>9NoZzwY zaYlieBYSi$wsE>Y+lm*RtiR{~m)NbK^GP&3n9+-W{@c5jY-90)gx%^W*`|at9{AS+ zTdwJ;&yr)b4=l;g`whFkhb&nsSP+&!<tRQPUviRMGmUQy^szq}%5J4xoXW{LkGj50 zev?hRNA)e%+aElfGG8WNb@kUKd03KpTsyLXGtRjVpEIAU-&=F&$fkil`fdw#9yQho z@?{cleWRz{qxoHrjEVeT0qv0-`7rWIH8w!;yCXU$IjxZ|tKbV2y!VRlosSHdmJV-7 zS(tUwkv!DoiMR4l=b|5qo~1*}q!(`GJJG9h^p%Uz)wZC!N*8RPOwmv-beslsE9kJL z7fSxu`N7f)dw5Zg55-=$&FA1_roIO3EmNS6P54g)+ba6+rQKxxPiGDZ{<(T?>3=%Y zQTZHt>woIAXt4VI4dR57b--5k<n*TlR%Q^BcRo3i8RN-}WiB?P7=3A?{8q-fnL2Oa zc^NugF?99$gg*BT{Ib)3?5Wv}?j(QcZ_wWg(Bm@Ew?av}ot{azI~Bc)n1N6&_O(>> zJLz@)b4xn@oY3noMX!4ao$g|6d%KZiT9IoUJ7y5QZY4HC>2<Q%ZNfL-pI+xroVQpE zuR>4%+O>BMs0rX_Hn(5fY0$-pOYPC?G%wQArPr-xZu`<zx7I&!ECSwwiAm^lx#)Ab z^hNsIk=S>Oo;?{<tW2<Xe&NaB@ZZpFG~W@M_Sm!tJ&d(seUq%W{foUWo=nilC!uNE z`{o!PMwu!rwgi0+{Vx$8-}8;t4}b3*!)biuA`Zk`%~|i9Ynw}qMFFyumwo*@n_c)S zonAh6{dd-TxwGCsTdt*T%eH01pwC+0_l~2}Cc!C&zanX^@1jf|d2PJuzOLM1tS_A# zi!X6{aPu^sUoin3D9$9W=3Db_Iyr@TdFz^+CQvpXpJL_EZI_n~eeQDR?1JfDUsv%k zU)O|DzJ)32^RhkZf$WKtE8?n7zb-p4bY_k_y)3&Za|U<pJ&86Zyj6Bn-Y*Ils(!Vz z;-M{<PoSOvZTHk4teDnQKV^IBr(D1F4>Mges6TI9@xs;Ab25F?c%1sHd8YacIk%!> z=<}DCG7eW}@PZ=B6;fyZ(Bg&as|!2q1fI>b#&J!yNxzo3(&@Mni*t<EbUE|YT{ULM zKGu%nzscUXyjOmVi;Jy%7$5U~^^hUaQr3GUBP$w!-Z*%$s>LYBiIpp(47`|oy4f%L zigI97K3Tb3c{7v;V;JjRxii)fo4sPLiLYE{;*nkG*yPMmt_<Ok@?@+nF7BFtjw!hl z8e-+hC?6bEZj4_|HS3iV1Djmig`9Qdmrkmj80DE!*>rqonDr6tQjup&{DNB&xiD(! zuZMgW=Ws1Z<ie=s_fD=f@?M<Jbu-sWuGhITJYA6jPuJi{oFiN{C;AL~G*-^>#g#MV z5cUY=qj0gdmFJ@@)7`kTiuc$FRuWfh^))mmng?Br5O-d81#}%cr#u8c?$g=Fu;MBc z|2psgNM75>O2%KD7A8+eyzbT6(FlEAvDg<M#<{s(;us?j8{()r4-+5dBd=8~FDIAh zLgIfb+@tYzaNhLE?9)GN;<s?FWrTQN?YWhWMEN&biPvl<K2W&_qur+Ke%8r4Vhz@i z=Q1{AbmQuWeett1O!(0jU;LCI(w$O6U&%7zDI-nzt7A?0v>fsk_}FK(Yj|{WPFl@| zYX{WSUBMWkjjPLj@r$k*P_u+<JbT_A=bk^&gkRyFcd7}0z@0tKJ0889oF34;Nh8y0 z+GNAMb97BT`G@|1?ieT6Wb|VBf(F$55!eN|Z(t9qkNa=PSM)gNH2pU7gwPY5k8{YA zQUCjmhB-*DU%yi^=Y#4MtG*JO%&L2VAvW6x{*TBaW932Wc8_U0_}X&d#a?#edKKU6 z=N@^+-k0k_r&TVFRc;efzLV9uW2=0WyZF2ty-53dw%*}y&xbcRvnM5gF~3hY7O(Zg zdsgb5pZ~-x5L;YQrT-7{Ka;lf|4009;6J&1W9Swu_5VZu592-mx9Y#w6`xC7QVboo zMgPCa|8czMe-(RB@`L>M@*WvsrT#z3|M9%%{}%q|#awX@xR}d$%E5<b)<7ZrJMx%~ z3u_qf8t~&@)}f6P<Q_$rxA9_J{S(iOj6S|@R5bc3c+qX*-+Y@qAhU|&CxLs94!JVA zm$Jqv&qh{#WGD7Ga)u~=IPwJN-ev$7VviN$Zp=v`;bCO2FaFdT6JHCy4M%QLJnj?E zTtyq-p$%VLF@2FmcHf>_W9Nxk1OA<)@9DF>kEs9tJ(ZIaokaiCC#x?W+M}=P+uE9M z)2~rhU)86T8}U}PD9_5+di7~7eN&%4L}pFy&nVBBkm@=_9+?g9fuTpZ=yTf=*T7I@ zr7!+C_gA<+;QA}LaUQuvPJOStWaFGGqkov?i?8R~NR4dTquWMp|K)Ox_hn+jBdiZA zAIihNc$Q%w;L5b{$Mo|cG}M4!b-QdBXil_ViEm>s-`M&B;*%B6J#ptRmUkFqoeM7b zD5uN@#=mdhr^_@Bjay^Wb9{rGc|4N+R>Q3Ex3JzLZ`wIgln+JlFy#Go=I04uQ1?1> zNqoH8+u(MELiiH?@E~KUwa4<CH^HF*zk|O0Yc-w)_V0cCKCav+Rbwpwh1wKN5^Zv5 zlE#}%mjc4MWzZGk<&|URH^@52^WC=--@yy^JKsJ|eBcYj{3?ga$H2<z_w`y6H~Zor z@@zZxJ9$+mu@3vot0G=<6ZKfRTPS1t=3c?yuRS3DMwy3!r`Dam5kJa7HusrYE5C}~ zhZ65q-VZ<Pc~2de^8Rw{YL{^x<b6+nS>NjKv-DT_SDJhLXrp(CNAII--#k`|Yg?CJ zOdciC_!FbaxvX-KLywim>U;3()y41`@>s2yW9PA|TVT*rI+sSEui|s!&En<1B9E1L z^xCn-T`!!C{f_ZiJP%%en0Usz>+Bp>n@=<AwVzS>shk{Elg_gFwUxsP9vBJ0_fIE> z6?f&ZTDx@s`wG(QFaKdu4y!l8^&#--;soEmjo*)P?c&OUSI^>F%=H9U3)e_b*L&>6 zSy6@W4H}kf#x~Z$6O^mScjwp|@$u#5V{6psT>gtce@vT^a{5p;AY7+4u!-O7CyNwt z&mRyDbdIf2eyfNFd#d>TEb3d#fAO3E<>38w)NA26?Fi3TvF;@sO$D~=mKpNPW|7Yb zx>Zchq01=`&4|8^e<yPU^oM#1;QO0=@d)!Rp7rurQzG8^hi6RuY1YQG#6dqtoW$0l zCcI@BIcZ06CdxSS7%+y_T(93awr17H5zzp@i?~wggT@DQs88p<V#x65+O%QOTGso+ z&=x};b>+=cTT_TP7Jt;9tjI=t|JvF`&@b|JMb?o&+MOPn>>3-ooB7Y+*%W?@{y)jR zkapz5%H;WE7v-Vhk8>aD9@%(;zK6yS(S4;aej@j8z*pV)=?<K3!sFpv<?fWW$~(&1 zSKM)CyZE#lUGIS3g#T4BA@1y+cQ0fAbfX_0c!+nvBKh5W&?L7xA#|XDcfcq4-C*n8 zkkEk-c?aB*-%WuRxy^~817277Ux8=xyG!BUZhUVCzR5e_ocvDthTX_C2ZFp4-%aYL zY|(Dc0zB{}@5c9j_c&|Xn4zKOm@6DaR*2k@*S^h+4Xp+ilI0`=G%;TdZVx#YJfQ}7 zLOHTuKDu)?<yYM?vHdILOA*|XzbnONSC?^BR6JfXjqos;*Kf!f6TN!xr^{B?e9PkJ zbvecGlPoL$*jjKf0uFlN@pa&ta+BG-UifY2CtLB1FJ1?3=As8WdCDFDKF@P*mST<7 zw%WXYPFjuHRUd@w_n$B@v<4a%y?IRZ>$I=79?h9eAD~b4Au{q?(HQNnfzEaBHPMw> zS45-a1z3@GmDNx6Bg)$F(5{`EY+PuRXI$f7-Qz+9@Mw5;Ncd`u?(`R2wSKSTH~4A& zeuCfNr1kqTeuIzJ?=}1eC#~Nr$!kU)k3TR@<)Cx&nkiPij=bd?b`FmsYcBoc!4c6v z0h1B%bJ6LapD-fyF}(Koe6tSNtp`SeLmjk7aIod9VfE)QkIJE~yki@H#q;Di6K@w! z6#qWB$A(P=n8>g8D6~V*C3lIpM;0S%CFW%%bfY`NkTY*2^1^83AnZ}__dg=r*OiN> z+xgAJ(|-d`->~!B(LWx%GAjC{KChUiF}oTi$2)n>(C0&<gYW(w9(k3`=PzV_BXjNF z_kr)9$Md_3M_c^<n7Pj2195oPkKuRX%_o2l@@Y%P$l&+xB%a)FuCoM>xQ*{OGFH{) z@X}b;FD+hsE$^P>T@&w)%5}!~^Lc*@ym%3p#cLDeyI#DOKE2I6h}WiBe$nIh13r|n zUpy3)U%ik0;%Vx{R_WL{>@vaLHqs|3^9Aj)pV?+je{K3XOFGGBvXnBi)8t{FOC#Rw z!c6QtnZB-W<FR5hlv`GQ6vJMMZseIM@P^Gk^ua=6NQjM7o{m=XzP!itChTvLX+1ix z3_G0ab#wmKW@60>UuwB*b5CAbm$lD6hK+5F^1Bcpiw@K2y00*Y+%%oCi_=yc=U-Z9 znzf4Vu}%~hn1>#!GtIVwtD9MWI@3(Cg+-?qb_A72hqbzwva+qJAFcGMn!Xef=U2+5 zew6l{X-2#_Hn=AG;bm=h8&_LQe1iULR@_^4QBDK>k!{5BAr)Kay0PyDo0jQ0+s#9M z5Bkd4Zd+KZ);O^7X>Zia#L>9vzw+l0Z<BPsTM9WSWuNjemK1BRq2RTG^W93Z_iUms zR$uW~meNO^f!P;M2Kp~JX$<OP@+CZS@J&8t?1TxNn;gz<n85zM@!>7s3C=!=`PZBs ztL{svyCvbPc!@rAdyeFbOC|Qu$9OjZ3!Q_aI3X{0#c&J*mt<d;Pua=OA-Q+oRMWM7 zX8Xp~z(o6R<!?S*><J%4X3eJ`%0D5!=M!v3A6E?sV~>07Zs@*r9K{$Y4&+-c%FRhk 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°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ξ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 Tf1%&({yUxcU&>C%4%hxa|4ofU literal 0 HcmV?d00001 diff --git a/lib/libZ1_UDP_Linux64.so b/lib/libZ1_UDP_x86_64.so old mode 100644 new mode 100755 similarity index 90% rename from lib/libZ1_UDP_Linux64.so rename to lib/libZ1_UDP_x86_64.so index 87b0dd04268aeddcf2c6c3901291b9022a05d433..e06d4a00d81be2ebd7ef9e0ebcfc3a7bbd91ccb6 GIT binary patch delta 29534 zcmZvl3tUvy*1*phL}3PW7%)Lo2lIjD14|Pvb0|wFD>O@dWJ8%@Wnx*PJs8UhD{n(u z3rlM(E9^O@HDIryCw6;`WraP*vchhUK~X@vo$tTT8N6!W{C@O5d#$zCUVH7w+2=4x z^zGTvw`cpk$?q1XYwGiE)x0;;!ed-!;V@T?(I3lrZ`HZMFUPODdc(k}Mc3Z--Mh0! zCx5j0H+{z-y=HU$;8v#|+*~)dn@taF-gf%a33}t^g`V+=dU*4uv+uTL6(347U3NA9 zt7)%{*R^b|t5&&cazPIq%qv*j+4l2{%|Bdlz-eo`c-2>z4bvl=lf8X)-Me{k$zwLX zdh@m`KC$U#o7c=;U|W?_;@q4$uR1|5+Pvx7`x9s;ziffhZn}QFjhfAiuCnWmtEN}n zue(?6sklsUSXJnIlh~4%_2{hoH)r4dzOMT=@2Q+-qm+N|i=AxIlQ-|Z|GG4SDOvw# zf?mFP@{<#l>6&M0J#xpG7eZrR&`U1tQJ#0|Wv7lDcEbW~c<F-qR}R1Nx_OJPzw*jZ z=)bz*$kH`ki=3}(PCDx5r)c03ho)s{6J&d`t*<^wnn7Ce1(wB)J?ABBTB0^dvhB9M z6?5X^^6f8D$*J8CFPF55P1Cw*zIb_wsZZ7JkC#_e3`TF)*2c@9y?9NcrX_37#LElK z`bpZ$@$#a<4<u<?C+!`|>Z5C2v_H<*<xRUStt1jR%9uAVRbz<0j+a+gJ=9s#Qna7q z<xErW&|>j&x>@d`9gLT)z9ndr;^jqIs;@S!I5fgx>(VLf;fdCih%7(F41$QvPe3Mj zv-QY&GOmstqkcw~p|02zSG(^#x_0bh%WKXt^7gnq_ZYbmm**WLPrt<S<2gotq9vCe zPFq^mIdP++V~nnld?#JFHLms^qrP7jD)m!wb=fiM*JVBG!X0t7?-=!;ae3u2a`!YV zV*fGnMA6f1J@n#GR+{b6WxZ0r&D9F-3@=J-I%%+`72NSo(%bRGYoQMwuqB^VvFEsM zT2aBuQB^<MwStx7J^)+K#imL7!7vI|rf%zD=?gzI^|ynqy_rZ&(Osr~#V|`h*wSBq zSRc0Z$;VszWJ`bMVST{VSEO$1ZW-+P)NG*NVFRD#V6fZLH~(PjPdpr;*V51HV(B+p z^?v|XfF4V~;xtRY!qUHWSnpQ)vsR`imstk$EQ7}n8)$I{aebkszx}X28Z|R8@9vB@ zZTuvJGT!XeqpyC--9x_X#7`nWo%!j)Pf}>ecgckp>Q!>nP<x;8)mdG%t*5FiUT}Sz z%JQ`1yO8}+Wtj@&N|kz~QV+M(d6s&zrOpd|Hq`!RC;ijVs*~;PY>lCrBkj!zNd;Za z+CR$FJo{$-^H9<l`xQ3*7rFK{`{K+S9bL2$pRU+hu;S0AZx^>2%fmO8(Bc(x=rp@u z|0Z<b>Gr#Ay=Eq1wQZ}~C<<15-}KBP({Kld6J^+Vd!2qqsA;_YD_wsm^me}eLR~*k z($BI_(tC>cEc+w+<?`2A_Fnp2$(&%nNbf4wPOuv)fV1se^;2ZfIrhKwS<-)^{Y!mi z=&y<Ps}l6w(46z^cP69#b*lXq+kwBN^kVy5{T}(`V*86WBPPB}>`&^~g$7Qu_e)IL z(bid|DK%6y%YL%1&yYJVrPcA$cQ(bG(3IKs{t2|cxWv9o?=RCYw~Ia`)O@);VjI@$ zPqXUOUlqoE4z|9grg{2Ua{&JO!&Hy5)IW#*ywc9y=sM|kmHiX_jL`R2*$*Y?Z^_r! z*!$>D$U%kWl65V(GL(0%y{}DAl;Z2`r|7qa?z_&uyOW+8T6lxKXM#RCbl*+(*<JLP z<UhA!y-Mu2+1vD<p@a(i`JMEX(BwPpH+9w5g&L~tT{_u*st;{{(0;3~9~Zh%>?6Cm zK76UOHfhD*D?Vs??Dtk?%BbSdgHPFC%hG$vl(7Ae^pVw_wYlALzUX%MCENt&b{p2a zU+AKG``85AFRMfMzhe*R`Z&pb&%Ru*4ZZxHy-yc?dT7T-_QC}HOX;)S-WxxsZ@0g# zzx>dr6!N6crwr8w*{MoiX{FTn-sR*fk6cY!VKlw*d8@JFJ9V|?Lo=ScB=Q+m?vZ<U zP-SCi;|_b5<LoWhb=DT85bg=G^;hQC$)WT9W8a&guaGnTwD+;KT^*YJr+t>LzZH5l zW<OPTKT}E@S!NrpO}B+wjY%thp0uL1>4q1~MxG3%?X@TBw!i0wGWXd>cG81#ek<9m z3SHZ3Kd*=WuGDsQ^wG}=ec9D9zw`Lao6W)8xzeV_+Ws$_wsol*YyUmUTk7=1ruz1K zP4%l_>vc-K&{A)eJGwhg>h`Z2O{>voD~v0X*Sk9g>#xW!-D&7c>3p1{Pet1T)1>N0 z)6rXCYl(6cTw%78MW;x?!}pu&&%oCAxN|pES?Z<pO!Y-p?d6ASUvH_uUTUgmS+!sO zncCY`?Tak+UpIFSJ#n0)CPB{+P3q~eccS;x`ZzWv>mwyOhZtWD<>WZtv+4hmKTmW# zah&b#&f4B?&H;8<uyR&^FNL9rQgf2yc)d~HJ;`y|EdN`bwZePv)Dkph*?T?3g7+u% zFQrRL(7iG)C{x=5g2V+%uwsJgYut>uw%pRDE$Uy)#AO%3a@3_E-w;P{-8Qja+_{dP zQa98w(f(W545|BXVX+T$^zHwdRUY-V$uuXi6w_nskBeBUp|x`UFvs<Ims-UE^Wl*p z4xJMhbcERbEG1Z3P=J%v;bF-c<LGV64a>waj+3QexZ?|bnDotcEEx9Q8)}{XtlIiF zmxNvLzQ;VI5Jip^MPeNq)tmM5TCStwv@!AGWL4paL=DZ03p%3c-B$@#R{G<KOnO7k zFC>uUH{{wv$0^b<!qI4d?lo(G{(4Q8o$DAVk&_+cG9I&pqXx~jb%eKCvQKdwXJ2V) zy066iBFAwu?G(oi)9scpu^&7#qH)P_K}SSGW3QSKHCho3*r|$ip=0o7^)D`1F{!_o z5v0StzY3i&(vhMkf4<d9z~_=T$}uOo+$tuP%afxV*?neP#oiXvJemI+zyVXXO3FEo zK4Lr7F>U&fb=JTif=7m#`a@jM5$3pUO0crh&74w+e<`l-2=m&b!W_Ce^wOz>X@8;C z^gr&5S~c4;Wd7NXZsII(bdo<uJ5En7wA9@TWn`Wsd%$q3IBK-Xv?BNa!X9^$r5l<q zOY<Bzj17fM$3s7XM+QFNmAIfI@b2rBU}a^g6?p1hGH48I^6t<%V^khrdfD{Td#TJE zOCEc_V!7=t4PzaH?Ekg2iK#Ekn3;}C<&x7JvwECq2?v}D53k>|UzUw0IeO`t^3!Q7 z;K-Jv7Vs{LM@HGbAui~MGVw(v=vcrH$F&{FJ!%233k6PB3;6EM)&kx+&M`6h!=M>= z_YY<884mY=gw1Agl*8mv>sPZ>Lz`Zb>&|d2%v;HAjR7674jvie(A9B4M~K~TP=fdZ zzU(Dy0efGv7I5i!7VvBt?_mKSAeQ(7KE&n!zkv5x0gu`)-*{NS^Ww#2s=|>AxHK;4 zh@$s}O7Oo0oX7n~E#NUhYXLXqvw**O!RpgD&shsNb|wqB;yEiPT`oDifVW8gSuEh^ zE%WZrzaaT6Xjy!g<Axb0TEfIL;gJ!I8ypvOL^RZ?1S=~$7I6FXR)vniJ7xhNd_FW` zg2SQPUw_7oXXx+G9bOt2cK2IBCKjW#a+o^*BH1*`(S5*mmTJIUBas0+YE2Kl+|u=) zB93!d9Dh7(y6!y?FGt4S{dW{f&=Gs$4kb9es>i)9wQLRgE1@sXQLA^86=LG_XAXyG zu3k@a{~D_Wj&=o(Y`ve{T;S-He4J%Js<S*+Kp2m2v@*UG9vQ~a^>IN*7`-c%;P4vl zzECC=62|qRYYNpG{pe}a&wz`?cdlbjpSCA0w~7VtFYjN;&Z$1k;>6#c6x(@@;mPS% zmF^B1d!D1Zhb!)(Cp^4lyFYC%SzFUn(s`0&_N>5DN3GdS6pxI$dv#pU5p`mP5_GKD ztK-^^VLxik&JTqrsWp4m6V{q-Kc6-GT)^x{_vfVW0*AZ*zc*Oj`po1}Yqr5s4Gqf5 z3%KXbf85H)rHGG=aOl*ypd-TWrzk;u$@bk~Em`*lYspq#$dc_Nmld&OU%_L1$-c_v z|G#86TFs8ClD~>rvV-Hrd{yDdC7Tl$bVSj+n-ctQ$+oSxmTdcaYsn@}Vacwwk}=@5 zwbqh#Uc{2UY^{}&U(P<fWEV*Z_gMS<c<$y0)ROJ4pCfV+cimqfGb<$8P#+o7xIHM8 zpd+TC5heKFqOFVTJ4WxAMY}b0#Z)yDUw+gI=s_vJ*fFPj-osXNit*KY{#oW~?K9A_ z>}~O=)jFW(qt+ex%uBcfKfBKK(fw_BWXP${#04E8kE>FG!)tZa(zw1O<YVr@H;49K zqSo+3R*d8NtUY=Scaq`7j?=p*S6j_1T3zV<hDSVkY&hRPVs+Ny(Rbs|EZxwvWNWeG zhSM&K7Z<}LJ27B(T+q>p?q@5(;gy~`>=AQP>cc~KO;-tiV2#;k@3Hd83~tBYK4=z) zek(~cxgEc56%&82miDoZS^E8<hh{o1)AjE|2WB}ocGfSIz!mHpedNt69P@cH89K*t z0<Zoi&p~*;l+AGr)ZY`C<2Xg1BLAM_n9{A{3Kh+$hW&|PoGwGIboA3NkPEML<lBB* zE)P)b)-=zw8DZI6EpK1xc$MeSin)%uF8YMfnCl!o|5nMh3mjLT@a$64wo@PTIb#&q zx}Ke>DIvGj=+>7uQU^=R0>>o%HOVg{sNUjLcvLFN97A=#JYVL>vHdb7^ktdj`vm<i z2`zHu=$D3~iyUud@{Ik&O2^0gMWO5e<(O}yZq!fR@5JysUeG_07pmy&z4B?5<0QR8 z{#K=#((eJs>G~UT*#nM}Zr_YDgB#Fbc6PRW@_<A1OXR9mj!$T6^lFD!e>YUU+Hpc> zy+mGn7~lQmYhe4aKn^|Z7@!|7*^l70T+V*P;n79zdc@IZeDS%a*LkhFO5yFvbUCQH zoZHEK@~Sf*+D7$DG&3?2SWkFqmU?UG$44BCy6QKEil1@xwA+3?RTgb=tkv%erM>Jp zx0}8`H0vG5v@Ct2Z28vlr>*^4dGb5QVm&OqzbC#DIsJP_!R+!asz;+r>dg=y238wI z;REU+b4;D7KGRa)d{{lgQh)WTsos}mM%ce65tgV9xGeP}^27HG%HG!`CF(faeUjbm z?(*l&wq6F-2;cFh+14ak7$vZw;#aspUR3BNA4eU-c!>WmrR-&YnC*SAL}6UQ(nM|R zoKCb?_lD`=hmYm-U5=r)eaUjoF76qtWyLPX#f;(iyKu$8?sBZqyG!K{49tOdrRE0) z=0*AV2ZvjKLH_)KDc&V?+>eeaUG&wVdA~a5CF=IjXMZ{zHvNsz_sx!F$@-#D$suNi z&G=j%`^#~r-YfLOUyf&NdQoVl;kZb5|8=Pu;O|eFU3_#SU99Ht+|=@@8DQ^+^pt`6 zsWM1U>7!4RbM%zOg!P7=a)<j7tLA-Anl(o;CAQ92HCL@OYp#_N8+FEs&zAC&zF6ia zq&%$;m#&=<IzvM{rA*iLFXZk-+`lL<B&PJS#k}%yVoGm)viwGoH#d&XDJSqYYj|f$ z3*>^%Dd+3UWUVUk{-SdVuWRPWn52{n+wM<fYZ5izmBu8rcS&nf%49u53X@YF(r=Y$ zGQ!znC|nlmV^7(vk9Y9$o@sRLLuT}Ke-nM7xp-Hb(f@X}sXpIQ&yJxkQ0m>QO!Y@0 zXG+T13HsfkOS+|W(pft*oiufCXs<J6ug?3NpIj;9_43ew^pt*G^ifjKlcp~TUDY#X zx!OK{>y<J{PYz`qpVFFa+w+N}4ot}<3ug>WS;I<i9GKFNX>>?on)DfzGEIM4ZW=`C z+R&OoDcy8^t!&I8Z=*tyoRkb3?fi6N%4Z3--S5fPVJRN{^3b7SMB{e6Z}oAu*~fKY z>wMLTvlf`0xG%IRH)U0lUL87nOv<SV`m)e1r>A6f)+dG@Ix}TRS3OzYE=t+TaNjmL z<q2L`^_!CNvwpfHUzD;`uMaK1h(6fHJSFQdPDz*W)Rgb_l2G8{l<RbctlPAd5A<u~ zt7$1?^<3#*oU%#3P2Mj~c~I{Wx^#L<Z=3#s+&nYoQT-(8IV)u+FUMMDrL5?!+FDAc z!l89bQ%-i+e!oe!-$}nWhFb1Sxh0wYFT6kH7QNe_^AfeDu^9&pPJyYv`sFWw%JE%y z_z`xC3;Tu!R;7%~(3i-ZCz(Vnp(pYCg*>fFF8TM9DRXSUuaFT>F>9_1UHDW=TZaC8 zsNmI<9tpf7^}dmEx=nY>x^T)R?u|6YOzHV4?`BtyJ7u>P-}82Tw_j~I&q#WG%4A#H zH8Qt8Wk|OZuQaVMTGL5c-zV$qQ?m5i<<)wce?q<jw%sLius-EHeOl<8w^C-M=}(8A z_$=j08;d{ri<Cy*)&1~A%5b(5*Ow`y^>jJ+%alR3ebYlXe3??;PxpjI9ZU(^b(<XM zlsc7Hqvs{2<_umxLOmup2gEsa;qRSPdDI$9J}%DgYh-O=>P-D?X-iD)r@KPEI;ZZm z>Di(ENvUUd))PXfbxS?pp|6t_JyXvsoZORy{<uu_a@^VK`b+D2jJp1}bv;yFziC}( ztLx3yb$50Bv~`^v>fI~#J6)e3e;uEi!+aRfJ2k)@ey?|GpG;qmM2#(5z4v}^-&5U| z=dp#*-gTkBdZ(UZOPkO=QTtD^x|`m6b`J6};&G?;(a)93+^GcwT;oo4>D(b+%}yPx z*Mxq`P93C{U+M{|$Lm+ii6^9H>(gb@38~ZcouLgUqz<uVEbm5xylS%=T+{=ni)8nJ z)B$>3$UZQ&hn`l~HIY~LBMvmZwL<lM)QfWRpwzqc$E0ph>Qem{8JR;P8)Q~a>a)5- zk_HpcC>b<3^>2NL3_LOQT-)v>x&Fk|v-LTl+7nYtb$yFu4@tdAe_X1Eqz>hd`reS# zbsP%j3{8Dp&yp^~@cL-z_F<`MdRBb`dF#Juzp>|y-wk8Zy`!RM3{<mkusk<B^?7E{ zjNDWYZ+#!hO}$QkMC>Cdoh;{#NFC3fc<+eRu+9cD>6FwZ3BMSfq~R3gV<l;1>WTWP zp;Jbt{?ZxiUZ)Z9c{292)NEVxf92BCQpZxM`n1$PI3V18dg`0pJSL7y?b%)bw_H9Y zbwzUh&*p4Otq-+KNxdu8w)ac9#hZG9{*DB^B=}8v%bWU@t?i4@qa~>=c717R)wQX? zWPQcm6K+c7rz=0*LKALs{`!fWa!%S<DLW_a47s@|ZKy=gNlW4-pZs)A+Sgqe6ZHwb zIWcWPlAKbMc5>=bzx<V@MQNuh>*tHoZVq`Sr!{Px+%)~5(Z)~GjDtoa%!S4Ll=Cxd z=0W2Ye%A8y4L@6u?dB(i>&UEwhIZ*e!^2OQpC~^`$cjSK52dX-qry2oW(4|bTJG&J zqbZx;Fhi}Mrj@}0ex>JEJW11n&_7nwBCvX@ro~_oI`4=X4KNo*VG(SDWzcys^<fSS zLJy3<Vi;59OSB5jxjbh0w&DO*!y*`jWv~JIVH5^o8;n5bt2lsx1_HP<W@NHu<-%N8 z1id?{53A`=0Oky!9?Z<a?k@a5FN~g8K?7U_Mrc|XHlB=QSTma6x8IGUu{eZHr)ioG z#!e>?=sQExqA)t104k~H(KHVXo=L;de+~`9-1BHyl`mktSHz6+A_9Q5QwRW7R$N2? zT=+;?7{*o;fHDXXz&!*~O8~Hxp8H_<9Rh&9_Xz-2stnwV`~w1jnI91V%=wrAVB04I z05vkB-4`>Gb`St;{E`4*MFFYuE5+9Y0E^i6V=Jl1oY4M-BR7tr2S)Fw2e8af#-Jaz z!N6+9lvH~kV#ugh2BXjioyrb|VFY@xi^3p`Jrt`jGMQ{{AyqH}OJNKKpl=NU^e2GF zXc&571O{KEA>{~GVy6Y^5sbpj6R7_Z_OR?V>=o-70_tgR6DV`R4a;HKI~7b4F1+tz z2z@XH!wqC&5C%Un1Tg#yb3m2%&;#^-STK-we<e^D`45?ZvEP_8OfKzr8h}pN03$FL zMqvSrK|gd?{6Pa;c%hT!RtCK=0Lx*~pQK93VH0#V#|-z0IMkbsa_CQNHX2|M=Ae(l z2-G?^8*Rv)(8==kz#16nLU{=OlA4WbSfSaQ4bM;<bZs^?R)KdEj+7zv!szH`BL>}h z%|?N$2uq=R91X!R)Tr+tk3$%NwNT4Pul&N8(odkBVbq(^Z1`dH3IZQS``*%KBXc+r zUXNqwTZ{u3zNOhn%B6fe6`|ALZ1`aA1I<PddRO591|P#-EngUcG1#OSz%R?$yPo>c z2fZ-3q1gy1`BMaTas`obk)*!%QPXVX!N_w&2&2zaVI&o6X#kdOZ8qGau!lwL577^s zjWBkek4Y)|aD;}?2euQavip>PVB|CWo=SNqexdd?Lj!%gsb7I3KNpQK2xHLwGY#?k zP~R`jMlmegLyw^!`o_TD2$+p2oV?eFAP=PNHFA)bW$rbCFg9ebQI1|4y4R?IxiAca zun9(B5*wO#_+F#Jqjt8FsQ?4e4<nwvhQ>}8g_$r0bD=wbuTcO!uoP-%?lr2RZyFBA z5g7Eq2rPz0#e0na40!h%MeLYGm+v*)l*7;mbFbK2VZ^xb&%qG}0T_f4m^7Y-=i>-E z%h1E38}=Fv$__R`ZP8w%P3fW2LtxMY%b*WBZz2OQ0&}3Yc(37w9vFi~ODpJ6J_bwa z5%k_dMVNaV0i3BO8x>$c_8PUweQWj_QOfRz$;??ef=v^UKSdAE#^G}Wh`tQwq4&cg z7=~rg`8*khZdd~Y6<mb5&|bi?GJtKc3}!0FFc<n^0n}b3Q0Rm{=!Vsbo0tnQ7v>R& z2iCv{jH<w1qC?!2ywDAuFOykV5#XYR3wJGsF#0A9PQ+0?kwf2GL=Gcw6FCgN!w|v1 zyEF*>?~zLAd!HdFAn*q2!!Rs>&TV86dSN*X!Uk3Th`Dht>p${24$j5!YZ_1rm|2K} zZ>Rv>-|aOTq4#@wrtJ3M_&gedr7!|3VeYSV1o~kE^!-jIq4Q7tO(Fv^dJO%|WDG|3 z;&)O7lWZS`2)r#Ao=?Lt54!hL0eWE>48lqng8}F{z?^_S7=aPk1cR-ln)|)KjY$V1 z?PL-b{Y8K<03$FAV-;Mu|0ZP@(j!;^owj{O0QwU48BrMSyw4~oVrZZjYF+jjm6K^G zX`c~+QP>2FlChhDAICn!2fZo#3_tc|um<{I7zSV?48n>S7hx`va1euT=uX{d<iP+e zhMunbj2s*WVFX5C3`SwnMd-WjGjd@77C~nk9e}wm0)zf^>QAM7+&-fedSKbb1emq2 z!f52ecl<u1`Vthq_ZhV?1{+nm&px9K=JuuHG~}=n2Ho@s`m*T}jP%=QIE!ic1R8=x z&;x`0u~+he1P&uG1_Of#d^#N%TtUQK1cwp;^o=0ps(dy*nn8mzNF@x;q(_RgXb}1? z#ZGZHj%VWd3LMTN)pN)k)UKq5&<}$!2pgcclzK1>lP<-+;%Xx0A_$9N1eU?@d>VvB z*W++Df!v55x^JTAFkH@1U50)s0m9(TGz5LO&;X3yN&{Zxw^1KDeasygg?<=VPT;U2 z#zh+!;k)Q@iKc0l7{b6k7%JY!P{80y0=k?4?q^IDR}=Ug9In}CXjj6ADZ{e048>fA zZXNz$8Ek@DfPk-p&*NWlD;>F-^&fa0!8HipB1O;#3+5B?dpNv~h8q|fSoA3o--I6+ zgW68yi;?f5$4g-oJ-wOwe-Jp#ZJ}Z4*IEqEE%@u!V&vV)5R7Rt{4g-K#b~&*0!R5R zhISW`o{0erp4DQMDV~b~j9$`W#O|hIaf?xTkD3!LMjP~9N_i#qE~nlq<O`?={R?Su zH4Q9pF{)vBRf|!~Bo41`G0LIu!4@NvNvlbV5v@=c)h&j5CW>`9fbK_$Q1P)AqmemK z2HO+^=ox!$Jr!XTdezuJ-eS};M7}3lj3kC8xS_?!f&M33i~<;iJ|%yOcCKJ(p2H6e zzzRPX+Vd?&5V~Om`d|#^zR+Sg8Ds55dIF1JttxLK09A%QHTEz7-J1y*24Ncvyi5Rd z@%KuLQ3{J{@dIOZ*fR%wTU%KFYBIb|L!~fG>R<$xLg!m#0+zuVSoAhS0^RSl7)>zN zKq}|qXj_X>1pWVJNMP(^0#W>gK$Jd$-PHsN^PqD(_KG_y=m8gz9T-CY7cE9ElhE@e zkt%*oCSc@S<k!-p??^ceeosB<iP95QhGFRbiH<ONwV$zv0T_U>Jq!(#*z+GU2cy3+ z6blHTVn1WSh35c0g<2~^0mFxwlw~;hi;TcrgUJJ9`hKGUMxFbOoP{))#+w`H>%ZTq zhMvLu4efe(;(j9!`e6|ajNfkrV9|vAM$!$`KYzbb2`eHO>^Ew-2w#X}=$^daXoK1m z94x{CEQW!L_8aBUH<gB9?lkOG88$)hbOO2&`x5M+b_I6OJ$Jtmg@LOGjAa{LKtRw} zw%;hbiS@7Du-^zGaPlrFhxJ^xc)#I=(OdQ#jjDVr0YT?&`;E+U94@CK^z+WDM)4j3 zfu4H_1jbfkw}hTn?KgZd@c4cs0-am%ul9+z2@vMKPrapT{cj^uwLyHc--y95blyt2 ziPXYiJ9-$=4;W2~wgZOqHt0BDc%jzqfDu%59xxiAlQ*-O`1N)_U=+bf&jUscbRUl% zmSrC>a(uKi=zvjP!G&|!0i!|j)B}dL48zk87{$<cCXQj*WaPI~Vafp`7e<N?7(VEn zd%%b&&L^Ndu)pqr;ek=!dY8iB!UIM%bl-q~RW3hZxR;~%;UDI%IKcYn!gKEdBMkk1 z9NkF@s}2}R?0D|A7{cg!dH~Cwpg|aZl7=d&_w)gy3`T;~hu%7RzJiq3({t#5n?PZ7 z2lW)cA%J_(e}^6x{c@nf2rI##^z2?7H`5@D?ZY7q9w4CmsMtoTpl?vC5rm#0tws`C zZ|<m8qZs;6Z8f4W=xH@_|3yIOwi-SdENV5v(0OsI;k=(Ay0q2s!q^=Az{u4VtwxLs z=Z*YY&rd`*w;I(j_l{Ph2|Dj>HS(&c;BPg`VPI9O(Ey9qv>KTY;BalLQ3~DbTa8*6 zttGHk)O(Ev6o14&492h*^v(E#&b<T<Jr!J(bK!2GVW{nIH6kzu-PNk+twtq`9K;a} z{@rSL){ttW)$qeIz0HWiXhNIeei(<H+l*2e=+b5cVKk}D$bEzc9c_jWhP$;H5$JKY z8QNObzt2SlF3OH;Gm;)8#n27?Fb@V`5e&jo7=}I=fz>bygD?ggpw@$cpcA%1H*`Kk zMqv*0LoW<N-$QEsXSNvu1Ws5Bi(n%RLXAvBVDM2Q&cZSD!ZzrG&c_H4=D;xYzz8gc zMLn@sa+n#Q+zUC3z##M;-)1xgDu}E%Jzh@$eNez$cbgG|9+>nv4*F3MYW?Xkj1C|` z=oyF|48W!*u!Bh(up30?U=j4fDD=VH96AVnFb2agsp3f*9!%u02o}Qt^us6&D*1^t z0R1rODH=Eld+33sibL9r8W?~Luxu!qc^dgJ{6Xh%0*6Jg7RF!<26EesikuoQPNqQ^ zIfazLC~Sk_k)(Db4US?CKqoAPe&|>7Q`?L%%!N(R2Q#0cJ}iLF(PRL6U^y%sLjW+q zSK`}X?DVz@qv%;C$v7OtBItuL7=(c{2ndE@8;n5bb2I>RVD5N&2))n;!!W4yuo0Gd z$k_Av&8Gt}2+LLZOfm+2XI8KrxX{jGvb{jWFcX%+0vLu~Rh~c!VGKr~_iR!KgV6mV z4MGpp&cPlQ!D<+Q5g36n=$?pu5Pz@;1}eBH<HA`$1?VoM0xW_t7=-RkG<YsOg??BL zBd{8}&%+)Dq4p9PnZ)FSUg(8k=!a2Q1KsB{M_>_bf)#!)k~ZTIx?#};RD?lT4RbGK z%-A11FanEU6ZArD9X)}W&<As&9~Qs>^ui!4hhgZ45m*DGFuacSALF7CfmTG1p%W&t zzTMCbb73Czz#>=#OQ9F~U>U52KImt?`(X{#Cbt=t0raqx<?NfnoMD*;pa({v_X*a& z=OPRdcwqqgVHi565}3*i%-cdwE~Y`~yo5;x{V)dI)6l<+9{QkvCYgfn5*mC3zn7B% z=)49w^v`F=LuBL;hO`2KwiZJKMX&${pt}}>br?d=qf|uh43L>R90aKdoi7m}^wlv0 zTWRQ30>{1#HbNhaK|id-uIP2zd6f>q0;s*g`uB3-36nBdwu5D+%AYfquVL^l8G*hi zjum&|82W!AkT)p*NsnQm8NNxtdb<&U(X@8M9j1Q2cB2yJ4rw={Fb0$A@jtrV@Ivot z?G;8X7tWdOM%!B`E^jw--zJcosR-S-wHrC_(9p(q!w0<|K>{fH7<=gbq}|AT9et$T z$b*6H?M5*y`?TFChvCoKjj-b9?M4xSM!q0GSoUSRp%JLIv!dPbaN*fWM9>GzRHV>J zK(TMyjZ($$aRejLcB7HN0zW_k%KZ_$cj+<Ag~8o41f4(A0qBJR=!dm1@C$)Mt%;7k zhkXSX#awvzPyv>~m|`<MdLQn`fzltKB4r=UX`q4DcB24#pch7AHToC~LanXcXn;-_ zg>LA?E*I9qBG?EkqBee)xDCgN{4Nm&><10^2UJWwXq3Ss*FmEJd2S}ZccdJFF&ND{ zXgL2(x#vM62ZnncG<-0(H+In17r!6ULs$TPZu~<(^eg!Z2aVbfS^p6(8WF@`8+7(R zXm~%uAq+tG0Dg%HJun8f!8nFaSfKRK^D*_I9~Pa2Kj`-m*eBTMV+Wnk3v;0l7EPi9 zkqUakg(pIU7vKN}F66hQFbcKpM0yE&=$m%XC{<;C`x;bbev?}8DS=%}pfCu-ij@bA z%+JtQ(IAYh!XB2bJ!s^8PI(=E6dygva{(9HW26|yU>kG>aPS3=VIB;wCt~P-mL7dc z#Z8o9td61DLH(`RK_@JNxv&%#K_B$OYUqbS7=aO}y?W57XyU@dMG_5%p&NQ$BZV{= zegk<Uj^9KMi(nq~!crK6)k+`6A@tW{zmxI@3>5*oVG(i<tc77%jy~`)9fq+V4)XiI zuc&yC$)<RS2w}{i!LNx>J7g5Yh<?aufMMGqBk3Dbn{deRz}!xUj51gRD`5mil)TF! zBj;O&5EjGS<U>Xc3^)!M+IIxh6*-KgRU9&cTtw4o0On>MGTh&zfO)Vi>yS|d1HBFz z0T_m180?K*l=$2Ppg55FFgS<+cfp)PhW7_};vu8$M=~-Fe{`S>*1#w%z)s6O14DIj z<{_h2RXp#I;iRJXd;)`E*aTx295Qlo6p%}&yH3(eWyN&YAii3;X}YV2Ua63txCl2f z*@Yyl^ro0$r`Yky;DRG3zhF(9L4`IMJi|4bukMx1z)ORynBnRRHqLPMJMO=Ov$bBm zQo1DhbxoT<o&NmzW!DVX#H`92V}^}l$LDk|mh<D0{F$!tdPJ7Zr16|%td7TG0@b3j zX(sJ>WII-RfkJxXY7`OCXCY~ltXXDMlV@R8Bny?WKvpQBTk2=gLRj=mU6<))QgW$l znqDn+3PqAO+jSwjlG#*flqIvVtdzRh=*lGRG8NK0F~ijnHB=$(NL1;}zl^p5Qldco zm(dngRjE>TUWNycjPQaa+2wUzl(?vi3YW`ijKP=^5SFSEv+vtWT*LWxu6{W|RLh9V z>D)U>Ds^1;$f_iQV@IR~wNFZvx|m-)pLk4w{gat6Qgu18cx2P%c+Ztx%D4dIBZoot zW&_4PNxK4Lw~V*~t0b&)k8nAX>lUosQgQ{otd=zxXC-|TGt!T-$}oLxS5{4uJcmve zNy!{D#hd21dK8w=j2XjJo%6anXLn8F-y`5RaSs0T_0e%D`F+USzKR*yTz7oTc#-Ey z+LdPKMqEkG@}%%e*F@%Yl|qy3RJuxOzmhN_GGeZ)uT4vlDRW)?TMn{pF46+2n@d(| zWzSqjpjHN7MW``Zb`||{x|)pv%;1iXYI9OoP0Nuw)EMu)iVhXX;8IX2OG;g%J3INE z_u@|S_k7m?`MT6KfVAuLP)B64LRi)-1f_W%jpxbWtIc^f?`qfZtn!j(qrYk{Aw}=% z)HE~M-PGuBx*Fpe*>kn)v8<-4|4iIS=4DLQU*qc0vuS?wQ6n}4e{<Bdy-q&8#_YC! zt!t1ibAg<At*ejXx!1bRuq9nD_gw2bRgX&jwTye|4b4YoTX|W|5c{P0TCx?E?D?cA zPnOJg4Yy^kk!R++F3@wNeLj6Fm%{7JIlcZm*HvUEc>%d9m%$5M<87I1<?02P)=J$1 zlzz!B!?aD7l)0{QX#7@v5!0qqw=J?@v#Xz^E@Yd^lQ9di@krG|0;}a0>qkyoH9e+g zvgb)XYBeMaiLXtPuP0+}$-kbewX)`VLTHjYRbn;Y;F@Mj3d+?tkPnm;bvg#JYA5|O zxh*}_5-M3l>zM_7bAlGN0yRGBAJJfI>&3l8s!+3<H!fl?49oUKv=^4<MXu4d%oaKE zM%Sr5wbo{%yQ&obOogxEI;mBb-srl7jdc5sG||v$?>{=Ynu*7*b(88p>SNdVJE)o5 zH_;}u>?Zo}m1Q^4o62+l*_-9PRd1T{#dswzW|kN9<QLu@Q9-p=?=Y?M7t@<OnTHj# zZ^dE;H&1phX7enNG3CtIoWg%LkkMDo#bxCL+caSBQL{*`p9!davZ)-GLD{ZAp33p; zm;5EHg)&*T#5J+7ZQ?&YFLG0V<UiAMAM&<Sj&4eg%m(BENn1)+xmhixscI=yXp(tL z>6urmmXfSosaGZivU90xTDCT3uW>z<wFzCFwhQcClk(N3WDWIhHXyG|z8ULAnRhcY zEGp}7CU&<p-^?UxkiuJB7iLwS{m<AZoM3kQ7OGauwp(1I6SQf2<=z>tti&y-awYp# zRLu2TiLXGWgRJs-dyUR!<JN!7*~aLwpDW`=*@)Gc%&U*KQc3QQODFPTt~=GeV9wV& zY_{{*XU#dg8ZSkn-^LgfV8)s|{87~xQJq`XZG_^N$;zq{tCYhw*4Ffn*`;N-xkhId zTzj;75~dku8{2OqJu%6yAmAJsQ$d#4oGVCOlWePC5IoYXba|5OLl~5Nkky!fbOuM_ zum2!5ud0+)o^12swnnm+5n`i^0k))@WyUgBACya!v`yA1G)SF7wd_<Vm3D<Z8F9P1 zv*xH=a>+mUV@X<&M5RPY%4Nyz<^XTHou=5t?_k<{q{KqKf?Kkevx(KpishIz%FgAk z@mZzgjt*Vr^PQ8_`W<m6O>467PFJtQPHd<ib=jAlr%E9#o9<*X`ec_X#YDf0#SoKx z3(G9j-(~7{DG<`#z$e)XVadN+t+=Q68WYqw-TJ=`suQ<aw=7iZf|`G-N22!0dZn&8 zMy+C>gE}hPRT}|mR`5z%B?DJ3V=C!y-q@r2%cyHRhN^{ErL4$*C3PBPr!sEh8z^V0 z@Zuk}2QD(h8?l0!!HIMQy=H-|Ag>I~J?21w^u!j9A)IrNWHr3{&pn|32$kY0rLINY zr=ta^md#XCUEiVR)OPrz)XPzGOYU%f>;}69byTwNr6ZhD?`4?EWZ}J>WgB1FYYac^ zNmJi<(lRiP$@Y6)<NG;Z+iP5|)P-H0ci7HnGdb6B3u{nK=S7%lAvyUzZo2G8_c7PX zWc__~xKZlvWA!)E4GxN0rxPFNzt*;_{^6mBG~dS!Jn1#*xsvJ5PP~%35m~sBx@2%A z2Oo~dD@i0H^)C>X$^RlRNu!P)Db?|eQEKm5hMGkI(i0~j;iRY}1(swHk|NoqB*m6w z0}_1SZ#HPw+JU4@@|C1Prr*!#`J^6X)eJrQj;W^9j#E|je7~8_5{0NNQ(zi`Y$sm> zI$w2pVpr$oB<*Z#2R0Afi$<&Pb}4JG=vAycdRJwZ7J@8o+g{@nRX6@o?VX;dX|=Ku zwJmeJd{E^YmR0+~UV~g}+RXp0lMR?fCG7!M4_nf|<-`YE=di*TK0rG2r0xMVB7EKG zNZ)FqEgz%KXU)p0QpT)uO|&_8$k<h`GbFsq#s4iL+g1@{xn!*dr7~}|+NpH8XEj6D zBpWFzo7Id`qa;7*y3m$%rp$N{CCAAJk=97vgA6bC$Op|^RrW)aDrNdZtft1KeTM2^ z$43q5gmJ19n;v2y%4OR_tU%^9b+U3&_Zg>kSVCpI1LGpe7jtB%i#p0V<sM;1dZb<m ztxR@_Yw+kdesgObPjl9Dk6Pu<jD3bAa51rK#FnrmfsrauBV~F%L!~9Z8qaMqz1p1I zRlt^crhHKCI)hFpuc3RK71z*CgUnk)_t>))NXQxjXQHc8nPfjqsYVJPrc@wH9;P1K ziW0_T*TZH$vK}$(6#`q*U|ITzYaq(?kKj8j^-5VL&8p;+w6%b{+gd6X%REZ9q?6>H zwG4NzY**4sNnXcjF_G6PWuYuxXD+lg6bYbCfd@OK%sf{PuHzKhD1#qm1LNHFC`!Mq ze^i~ZC&>qoQnOL^JW9;fGWanw^m&hAlP4=4qb(AxN<rE6m^ljVl(LdW?=uFINp%L9 z!+xO#`JHprSd9qKsIy3>1ZXrU%L2sdlkEXKF@M&ZtrRNo$h#h4K<X8mq<uX(sFlHw zlQoVoAgg?Oi!nvDvea4ws+InQ<~I5`A#q4kASaJgmB;HRaKtSfbk;7XYJz-R?dmE1 zCtSJN&MRAt{mPd*HLd#JsY&@<bgtSEcRhhKmh1))kn9cgwpPY$z;&g}+dx#Dp*PT* zi0s-xL&cKyBs!kwo;16$OqFtF)00?oQhU<uY1UJg$y4~uk$DQ$vO<BS^^{sn<#O;T zSD&ng@)n~?g%|%!g^M_(<jRPr8MZcA@ibdjRGOcru?87j!vlhIhTLAmq$rkcHMCYM z$r}l;TBdKre~m0rD3CQu$iw4COp0ajGt>`C$ukJuvgsKP2|-DF7R!i?corcW-Ltfm zCwrb{O=^6X#k?I}ZH<6BHhsvDa14A7W5Rk4V@^oVxhlxd!sl`1mMVpqY<ix~yJgq& zv>cY~7ZB!3z5);D3bgeCCSKX3N`Be?0+u{3zv#L!+sSuF7N|$fiCv?5LVvwu#MG9S zaf#ZVm%V6ieA`~6Znf;85(70Rs20RQnGs|O(|L+4;W~vH*%_qsY@nMs+$L%J<-AR< zQEEkOa*fZ{689VT;oF=ag&nO~d&weBsb#Wj6HYkxyu^6a$n=*?UsW$549g~kBH8{D z-C-hbCMoO~n+b`1U^5kHbql44lqk^SEljUc*|x<s&Ee!*aJd|#JAHJEj9=w)%Xu%m zhB85xyi7%IlnOk;zXAvr*fOWcSFf;cYoz@Z!r<f<a$VTj$#+S5Cdmu)T_?!K5Yv!T zkwUGsqo%dOT0l~25xS+mmTc3XIySwehh%IWk9dq-9bI6}*J0|Bw5=veENt4UOkb8? zw_?h9?o}dckTtKG&iA}Z#Y)L~&1_?y0(Yg?XroQqUqhECgI}lNGMW53d!X|VIry4u zV6vL%EgV6LWYg=oV`qDV9{D6+p<0%_LCtd6_y+FErTq;YL?ru7v*9IgViJ)}3T?7S zfv1!($dl<|Oro+WO#7^wFx3gT9^^_@JzlD%uAVV#lATIeE`#5qAvV;v)S}FhXWpWV z9AMwZ8wZ%T)vi5Ou72Bffi3Ag*$UNqdxtt`-@%CEjY6etRA4tzD3z>tX^W%8yUd6j z+4wGP@&CW8l2=OJ!-V|3N2s~d{2sc9<iC&4m@IrBVU28i-wZCR0Tjr*271HBp-LoG zf#=0-AWzn8L&ph!8}*nEA0TA+RbU1wkhXtg!h3>$o25+(xuSmvc!pB&%6bKEYabE> zx%`L#%VqjU)GL-Xz?ONTeDx8XXFh(+)a5%YMpieb?mbsaw~f3IdH!S9Nm&gofBxgm z+439Jnr;5ryoZ4F#4SjQB>NL21xk^gxEqN_CM!vvCCRwSJpCz2jwP9Z#4VeYB-50P zT7<;8tkvkGR&V^H?(p{^PdY|E68Q$?n$$;J-DP0J)epyo5oQ8!5kOWkHPoTD<D>2m zBNwYk*DI?sRdG;O4OU0KPgGW`vGR+)9V>1h3PH(N2uq2APnK;bpE**uog_C%@~6xK z_Dlr^?o))NGWau7w?v^*wtYtCnP)rL>3DIX&?IYiu-Ecr`MGH_PoYWbK4-+(v_I!9 zmGh=n;|GpCoqoSUhL^IR-24S^`8d0OLDEWP`xm5o&aG-VxKu}GQ?eRKk?3C{;ia{* zc?Su{5GBd8BrQmCr9??`r0Pp-`roF8gUcQznJ@iw45p%X{y*|-kth8>^5w|2|3|(S zd7IR$7PoL2lk7%fXtE@`kwj&(k~CV9j0*J>vJ8nWbE!Ps$Wf$Nb~RFa5gM<$RGBa( z8<6nEZ70tk<x5+SdYz$W%MMeWzmuC`Q?T`@m)lC+->2HHLXE#|3IWl-V$@=i{}n@0 zCJVn}2gsD|l#*4AIm^^Ep*Y%>bc@)(cAaD6$!-c%YwT<Fz<OJ&apd!#y6G;zU1h%c zYX+O$<Qp2`RsgazzQZ*WgN~1C;@UfSpCUWIA(|pd`<A|P<NuZ^$SvSoq6x}EC9IVd zO4uM9E#Y=m3QF_0#LfNsJ1m=|@H>RXvi`ex_#^LB>7qC~tCFTisdg{54hO2~<*0F? z)D5V|DfN~AQ|~}cX1*t~B-#Ew?-_>NrQTLIe~){$h~`jaUVcxbJ|!JZl!K#0!t{^Q zYhKMn(Xs1CSq#O}t`L>{UFgbW*)DXPZFf<xO?E0Uv_H76vL)RkOMh@(kk!OLPRM?B z_%np7MJv=8?)rgl`z7s1wY>R4T<T#P>&bRERsore8rMsHG?&{(RbqctB~FgJO%Ee> zGnH!YYdz}4;^}zXfCu)1-GmyH^$G#mwVSt~)m5zqFC@&f#})D4H0-`tC35mlj1wn` zpUmdgfUMdFT8-Xu<KnpSB2F%0*@dyGK63J?4o)?FrTvT(ZZJO+GcN}z*^*Yt!#}$Q z+O$>j*3T>wHt3(pXPb=q1tV7aFH{Lgl`7Rp9i^<c)kjZG<$uCTHL7|O#%>wWWX`w3 zCX&w@1h&kFWNQ=0l~UQMY`DkoVVtUEu!X`sm~yjH;JBoO?1y`>Y?I_)2{Th<?61_% zk?Fq@3FG`LrUg>>E2hP=6C369Kd#aF8eduLr?Qi;UT9pxIj+!=AAdk;;ehQ#Z_e2X zUEL*U&vQ&bYrQVac)+~b;70lW4^H`ohAOe${6@QNQuv#CrTp+e_x}E?RMo2Ah=+rW z0+U#QN&Fl6sF7vAyGD!Wcb>ReQ(W7e{O{hsyG~7>Me9>ntLpW?a~k(c_8$xZ4-0<~ z06W4T%#&)_sf1C<{?pR^$v#jkb$@cRk4ah#OLm1A?M0;|hLDq&LPXM<IS*?;$;r(O zbLJ~DquG3lT;EJkrBc_7pK?jw3kqcVUiw-lReRA@OZ{H9%c*PBX2oTXK9#n%qh7;K zBJSm=wO?9|o1OCAldfKpwvR}1B_AYe*l(7PYFx)ll_jp<M^{)TEwsjd-9j^!vaE$> zG9FRQaH$$LB@>VYWRsGRJ7u#7Nl<nn$*SG<r{SjMj$d-9jbj69x1{Yib3S6f>8Wr( z*<#1oPlKG__p2>8OL`vQ{K5h_fN8O;09mysv>At#!}v!zoVrd$P_L|tWS0WR!B!L5 z7V;HhQqoE*ZL(2;;Z`V>F>Pd`P3E=Hbeq(vQmO1|BLVDZ?bK_OLSV~0S*~s;o+hbl z$CP{hLEg_NWwjgEs94m)>fEkLQ@PyonA&(39%NVxWZOaJV^o?|2~USWK-McXO1pwj zCjSLEa{i^}TDAP}m+Mqp(qq!|zZ`6%vhcsO7L$4lX@6r&w10C$seSk8!<*XGJ8e+= zOa0$!E%%Xwf18gUSq9xGmN5pi#wQC6H85_zAf)1sf7Grw@+oyMUT;|2ok1cZ52mFL z*NYy^=f9B$7pAkrJ-8yBiTL2o^oi=&si#lO%6a?fFfwqJQKJqd%XDhw$tFFWcY#Q9 z)ulR+n36?ExWOaIO3H0N>V9ob6VyeLW=mJcvJp1wkv?0xdbnRmDXZYMe@?BD8_ipu zs>AWmmaY!wSqbSAJ8P%68(E2RU2^&fvLXQ|KG~FjnibWF{_rFYvI@fg?8($;RT%Z1 z%=UM7O7EN1a6!BALr31A8uATT1tcvImw7TzfjS_o;G%Y8;1R}Z6MpA8)$tLX(}!ni zQ`?U^4XbxyDbK4D)RN9b8I$#$=?kN8VV8ni^e*(jf$yl<j_|C~{ti`17HT?P*d?8( zfN641m-Jz3o9see&Kh0P)tjQUB(p<<ljwc1EJ<QG$(Sm6B`q1tpo~bi+^ABG%u7yR ztnPwJm?!PY%m{7^b}I1rt57T3>{vF+9(($Dme62F`XGn%u6E-DqU<#FROy?L-b-$B zr1xX~u5pm=hPr>Id-Y4^4Jw5Ww!L)p0INJN+N5UDh!hfBEh|!JkB2N(;y9n0KGBx> zhMb$4et|7BEDxuqUqa@ZQwg|1vb!<|w`@`A;ZmKbCM(HqQ^F<r{ORa9sPdWdvZ}C5 zRcMs$UDJCdPD0YAB<Wq|aLM=T<eCV-cw0_^Q=f8F&3Ef=IbvYckZ&>7+1<#Rmp=eN zf;ftIBYc*G67m$PO5B>A>3tpA2kpk?yiw_N_sKGR0o(FKXL`1}(KzX;SL&VCFr`r{ zka-Hswltc~-22ZtvAoti=b<iaBC@eZM5em91+|lJ0Ur4zrQ{zXZ{SOR<^d*NNA+ZN zNDa_r7eN=vG8aMfrrl*uiaHlli+$CVK7NFA^FPP-n>xN{`0UYxItiB>Xv!lc>GX=z zq6Ix8eVQ%PEi*FG&mi|}C@R+(YM}Tc-jPp`YO~n#s@l4;yAw`8^1I_HELD_j+CX`! zJ1#isb|<<#8GIbeu6EGDqrQGKA?_k93y)(Za2q&|=Cu>W)q}O;ll&fd^hs3@qTmIV z0w>wb^l2w#p2D~GsNM0I%0<iTq!jt2&J1DZa9OZ`$L()3(@)Au8gtO#=)&KLxJn&* z%-7pn-c)zg?5y-2w#>0IHY@!C+Fy}HPq<TMrC+AbOFe16Ql|H$T_#LVrcXec75p-y z7rC#N!d~b+vR<KD+Ivx<KnjlsHL~V-dLEJO$J4c1$?8o#&S$;T?<Om|dQ+h^G^S5_ zmr)O$o9+&IE=o`8k=CETYN0+U=70I82xR)z>G$iM_}WPNg=sk#TN_WuoXM5KYnTr~ zS#k|wFAuG`CVfy=e#c+HP-k4V1qR}O(?X4%y4`gA2@F*}gP&*Oda|be!53|l=y#^~ zt?2lZ7af1%qT^3mbo>d6_@AuM&WZowh%4gk`12I^$IDN}`Fflke}JOn4^DLafr-TU zADSq(D39HlUYE7}Zz~^!b@-E@b>^6}@GhoguH(p^*s@5_l6YKNkD4Laeph;T`S`B% zrCA++b>^@eE)w`-C<Rh-H>N{EOYTnpzA(!@CC#)jf3d_>;v?!$uXN?Uv2c6(#6tJQ zmRjXeeVXFx=wwUYacg(4wW>ugvgA3Ixpqlh?i2k}HU@WGJvpx4-cfC;Rc&}&p0v(# z=ZnkFiOUP(a<`NycY$Mq-w{_wkC8hcwcG{bQFlalW?b%;dfe&W(9Tbp!7S;t9Za*Z z<SPVZp#pPW!7bY@q5e4~O-5KK`8<7bmhV@q7ah4=k)-}6Ojiz}&C1Fv*<Ub*;rlGB z^7v5htg(Xg$YiDV+-s?Ci%*0Y|6reT5|Cv|9bIOrbK*Ob^Epe+3oz7$-rFp7MZESa z{ELRFcC^Bh{}Gp8^MWP!R$20)arxvIJ6cQolGXyBTI${L{10W@QSL~Mscy8?JL2jE zL8~@rKhzc8FD!NMxbufM#e=!YlD`+PHfUx%PnRAo--X@`{&!3MuekjbzJa9Vo@3<C zpJmB?ubTGKr7=A%%e&R8tjB|Rp)_tJBO2+U?^a9wUEFt5M=VmJ)PY%+dTw0(*{xP> zO{$bS`lF>zi92tN_mGpZQhPtP)WhQHFJH0}z=SZJH(2V9p)T6ek^JnPs_joK_4V=E zcf8z@-N{O=y=$pE#%Ag(9nP1T>Uv9^5wATY)KPnrQoG-_)c$zKZmhM`yfaX0&+C@D zBl3lH9ktWGLLFXgsr#y5rSd6Dw$kF|6<2zXp5bebcHZA%siR-X^<QzLbIW?=#k0pU zJ2@WWd7R0t*|lA%-A$IdWBLrfyd(Ge*QkBFEcJ}|I_kg0QU_#&QhWb%wDam$tsVrV zM5(oxEcH`X2efZ*v}${$3Ux)`HA~HF4D)j^UOT$flHU^#dHrjaS8cT=e>c7?e|p`L zN2@LQ)_9PyH{ww|V#%k*{oMAZCHFmQ%4N_uOkHiAWi%&l^g-A%3d`hg=t4N&h03_^ z0dHAq^%@YhJ80E@H(opaZA;Bgq11s_EVVlSsn0`QEj34PQ(a@J|A>$9=c$(3$J;|y zd%dOpt+Q48S8m{H=-iTTs_QIujiuGbzhl+bc+E(5qh3qBH?CIyzofa)XIt{0;_`Ee zUC9IQS@Jz``7L~b!L+~3lDEX=vABKsI!k_eJTs-U<Mt({{6sA|-sxfQTMc;TSQX~P zEA(iH%VorO^wvAyQg@8j&fhG5UMW%P@LWs1KkoIG2Rdq3DYfSYOWhn-5Bktjvq_+4 zG3@*<{jx0g0n6%?xYd*NN%fIq{P!Hrc=Pc+#va-BJ<mrT$&cb$I~cDM?|;WKWdBv_ zXq%<JKdyH4v0Q!<S|8>7#NDfY7iQkRF4Lf6t{)%?s%4JBN*&fM^@Ya-=9cUqRP6*y z9f>!xIKI}2Td6gNrJfzH-7!(Pohfy+kEOmkUVCe*)wV}Ap)S;%mU?cywt8)B4!p~f zyW{d_;&NY_CC`t`)zM1X2Y87~Yo1I?ogG(ip=jkeA9bOYVW~S}&B=(jcAO<YGhXfU z4tZxwJ}EB0vAboj$$HhASF_Y-#nn5Hv()PCFzRqmOU)_5{B+OksIBit?Mpnm_L*6h z+9xBF+Vi(HwwvOKJA6;%ZL)Iym!<wDuKsWQmKl($-JH&ubGvywiMp*eI&L8y6XYGq z{)x#JkTE}{FSbR8$xA<(k0-m3W<~p1m5jLSj)_W+e<q2(0hYSs&hc`@n(fgOEcw6U z-Q7iXm3wz?TpoA#I~$IYhh-t|vce}>>W(d8R{RDWkoBf|h^6khjZKf=VR_eTss~!? z+v1IO+<<v+_X{07U$TB78!Y2r(!b=nYfKZ!k+eMs!=dSW(ywyr{!o2;`j-iC&41Io zbm9-dt=BWACF;RYd*_V%JM+xAA~oYO{_J7s*VK%zN&Hj2?cFm5+4$>=(l0Y(HveSl zvdj$ro|iwgJuBlA8-JZK^!V`^-*w_2<z1GYA-Wz2Wu1^QC`tE)@=u~7uSez$&G=HU z4CN0~>ax(z;Tf$uezuRuc#*%h7+Q8p#%Q}93DxmOFgj6v%$XS#UG#=fU17%E>Yshi zpOhh8h=1or8H<w{>dBX8^uT=Hr5XH9$Hvgc%QD{VjC$VO49>dV(E6(~{_Lzr?ykBn zgP-pF92cs(uE&c*cnZsZq{r~&j%SkPvgDB-qmzUDo8amblsZ-HcqGY{c2(?nWXq8; zYbn+|U>VnhmaOeD(cE&@;j-i5BrNUguqv2t4HLgOf0W{oKGrW%c}97($5jdc2lR_M A3;+NC delta 29420 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 ZO|gcF$Ig`$$MwoETi_XGW%uhl{2%7?N-Y2Y diff --git a/main.cpp b/main.cpp old mode 100755 new mode 100644