| 145 |
virtual ~LatticeFigureOfMerit(){}; |
virtual ~LatticeFigureOfMerit(){}; |
| 146 |
|
|
| 147 |
void putMillerIndicesInRange(const Double& qrange_end, |
void putMillerIndicesInRange(const Double& qrange_end, |
| 148 |
|
const Int4& irc_type, |
| 149 |
vector<HKL_Q>& cal_hkl_tray) const; |
vector<HKL_Q>& cal_hkl_tray) const; |
| 150 |
|
|
| 151 |
void setDeWolffFigureOfMerit(const Int4& num_ref_figure_of_merit, const vector<QData>& qdata); |
void setDeWolffFigureOfMerit(const Int4& num_ref_figure_of_merit, const Int4& irc_type, const vector<QData>& qdata); |
| 152 |
|
|
| 153 |
void setWuFigureOfMerit(const Int4& num_ref_figure_of_merit, const vector<QData>& qdata, |
void setWuFigureOfMerit(const Int4& num_ref_figure_of_merit, const vector<QData>& qdata, |
| 154 |
const Double& min_thred_num_hkl, |
const Double& min_thred_num_hkl, |
| 323 |
|
|
| 324 |
inline void LatticeFigureOfMerit::reduceLatticeConstants(NRMat<Int4>& trans_mat) |
inline void LatticeFigureOfMerit::reduceLatticeConstants(NRMat<Int4>& trans_mat) |
| 325 |
{ |
{ |
| 326 |
|
// trans_mat * m_S_red * transpose(trans_mat) = m_S_optimized.first(old). |
| 327 |
setInverseOfBuergerReducedForm(trans_mat); |
setInverseOfBuergerReducedForm(trans_mat); |
| 328 |
|
// m_S_optimized.first(new) = m_S_red. |
| 329 |
m_S_optimized.first = m_S_red; |
m_S_optimized.first = m_S_red; |
|
m_S_optimized.second = mprod(m_S_optimized.second, trans_mat); |
|
|
} |
|
|
|
|
| 330 |
|
|
| 331 |
inline VecDat3<Int4> product_hkl(const VecDat3<Int4>& lhs, const NRMat<Int4>& rhs) |
// m_S_optimized.second(new) * m_S_optimized.first(new) * transpose(m_S_optimized.second(new)) |
| 332 |
{ |
// = m_S_optimized.second(old) * m_S_optimized.first(old) * transpose(m_S_optimized.second(old)) is Delone reduced. |
| 333 |
assert( rhs.nrows() >= 3 && rhs.ncols() == 3 ); |
m_S_optimized.second = mprod(m_S_optimized.second, trans_mat); |
|
|
|
|
VecDat3<Int4> ans; |
|
|
ans[0] = lhs[0]*rhs[0][0] + lhs[1]*rhs[1][0] + lhs[2]*rhs[2][0]; |
|
|
ans[1] = lhs[0]*rhs[0][1] + lhs[1]*rhs[1][1] + lhs[2]*rhs[2][1]; |
|
|
ans[2] = lhs[0]*rhs[0][2] + lhs[1]*rhs[1][2] + lhs[2]*rhs[2][2]; |
|
|
return ans; |
|
| 334 |
} |
} |
| 335 |
|
|
| 336 |
|
|