⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mymath.cpp

📁 liu7788414
💻 CPP
📖 第 1 页 / 共 5 页
字号:
#endif
	if(abs(e21)>=CRIT_VALUE&&abs(s)>=CRIT_VALUE)
		e21 = (e21>>PHT_EXT)*s;
	else
		e21 = e21*s>>PHT_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(e22)>=DANGER_VALUE&&abs(s)>=DANGER_VALUE)
		myPrintError("ERROR");
#endif
	if(abs(e22)>=CRIT_VALUE&&abs(s)>=CRIT_VALUE)
		e22 = (e22>>PHT_EXT)*s;
	else
		e22 = e22*s>>PHT_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(e23)>=DANGER_VALUE&&abs(s)>=DANGER_VALUE)
		myPrintError("ERROR");
#endif
	if(abs(e23)>=CRIT_VALUE&&abs(s)>=CRIT_VALUE)
		e23 = (e23>>PHT_EXT)*s;
	else
		e23 = e23*s>>PHT_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(e31)>=DANGER_VALUE&&abs(s)>=DANGER_VALUE)
		myPrintError("ERROR");
#endif
	if(abs(e31)>=CRIT_VALUE&&abs(s)>=CRIT_VALUE)
		e31 = (e31>>PHT_EXT)*s;
	else
		e31 = e31*s>>PHT_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(e32)>=DANGER_VALUE&&abs(s)>=DANGER_VALUE)
		myPrintError("ERROR");
#endif
	if(abs(e32)>=CRIT_VALUE&&abs(s)>=CRIT_VALUE)
		e32 = (e32>>PHT_EXT)*s;
	else
		e32 = e32*s>>PHT_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(e33)>=DANGER_VALUE&&abs(s)>=DANGER_VALUE)
		myPrintError("ERROR");
#endif
	if(abs(e33)>=CRIT_VALUE&&abs(s)>=CRIT_VALUE)
		e33 = (e33>>PHT_EXT)*s;
	else
		e33 = e33*s>>PHT_EXT;
	return *this;
}

Matrix3x3& Matrix3x3::operator/=(PhType s)
{
	e11 = e11<<PHT_EXT;
	e11 /= s;
	e12 = e12<<PHT_EXT;
	e12 /= s;
	e13 = e13<<PHT_EXT;
	e13 /= s;
	e21 = e21<<PHT_EXT;
	e21 /= s;
	e22 = e22<<PHT_EXT;
	e22 /= s;
	e23 = e23<<PHT_EXT;
	e23 /= s;
	e31 = e31<<PHT_EXT;
	e31 /= s;
	e32 = e32<<PHT_EXT;
	e32 /= s;
	e33 = e33<<PHT_EXT;
	e33 /= s;
	return *this;
}

Matrix3x3 operator+(Matrix3x3 m1, Matrix3x3 m2)
{
	return	Matrix3x3(	m1.e11+m2.e11,
						m1.e12+m2.e12,
						m1.e13+m2.e13,
						m1.e21+m2.e21,
						m1.e22+m2.e22,
						m1.e23+m2.e23,
						m1.e31+m2.e31,
						m1.e32+m2.e32,
						m1.e33+m2.e33);
}

Matrix3x3 operator-(Matrix3x3 m1, Matrix3x3 m2)
{
	return	Matrix3x3(	m1.e11-m2.e11,
						m1.e12-m2.e12,
						m1.e13-m2.e13,
						m1.e21-m2.e21,
						m1.e22-m2.e22,
						m1.e23-m2.e23,
						m1.e31-m2.e31,
						m1.e32-m2.e32,
						m1.e33-m2.e33);
}

Matrix3x3 operator/(Matrix3x3 m, PhType s)
{	
	return	Matrix3x3(	(m.e11<<PHT_EXT)/s,
						(m.e12<<PHT_EXT)/s,
						(m.e13<<PHT_EXT)/s,
						(m.e21<<PHT_EXT)/s,
						(m.e22<<PHT_EXT)/s,
						(m.e23<<PHT_EXT)/s,
						(m.e31<<PHT_EXT)/s,
						(m.e32<<PHT_EXT)/s,
						(m.e33<<PHT_EXT)/s);
}

Matrix3x3 operator*(Matrix3x3 m1, Matrix3x3 m2)
{
#ifdef USE_FLOAT
	return Matrix3x3(	m1.e11*m2.e11 + m1.e12*m2.e21 + m1.e13*m2.e31,
						m1.e11*m2.e12 + m1.e12*m2.e22 + m1.e13*m2.e32,
						m1.e11*m2.e13 + m1.e12*m2.e23 + m1.e13*m2.e33,
						m1.e21*m2.e11 + m1.e22*m2.e21 + m1.e23*m2.e31,
						m1.e21*m2.e12 + m1.e22*m2.e22 + m1.e23*m2.e32,
						m1.e21*m2.e13 + m1.e22*m2.e23 + m1.e23*m2.e33,
						m1.e31*m2.e11 + m1.e32*m2.e21 + m1.e33*m2.e31,
						m1.e31*m2.e12 + m1.e32*m2.e22 + m1.e33*m2.e32,
						m1.e31*m2.e13 + m1.e32*m2.e23 + m1.e33*m2.e33 );
#else
	Matrix3x3 m;
	//m1.e11*m2.e11 + m1.e12*m2.e21 + m1.e13*m2.e31
#ifdef DEBUG_OVERFLOW
	if(abs(m1.e11)>=DANGER_VALUET&&abs(m2.e11)>=DANGER_VALUET)
		myPrintError("ERROR_T");
#endif
	if(abs(m1.e11)>=CRIT_VALUE&&abs(m2.e11)>=CRIT_VALUE)
		m.e11 += (m1.e11>>TRI_EXT)*m2.e11;
	else
		m.e11 += m1.e11*m2.e11>>TRI_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m1.e12)>=DANGER_VALUET&&abs(m2.e21)>=DANGER_VALUET)
		myPrintError("ERROR_T");
#endif
	if(abs(m1.e12)>=CRIT_VALUE&&abs(m2.e21)>=CRIT_VALUE)
		m.e11 += (m1.e12>>TRI_EXT)*m2.e21;
	else
		m.e11 += m1.e12*m2.e21>>TRI_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m1.e13)>=DANGER_VALUET&&abs(m2.e31)>=DANGER_VALUET)
		myPrintError("ERROR_T");
#endif
	if(abs(m1.e13)>=CRIT_VALUE&&abs(m2.e31)>=CRIT_VALUE)
		m.e11 += (m1.e13>>TRI_EXT)*m2.e31;
	else
		m.e11 += m1.e13*m2.e31>>TRI_EXT;
	
	//m1.e11*m2.e12 + m1.e12*m2.e22 + m1.e13*m2.e32
#ifdef DEBUG_OVERFLOW
	if(abs(m1.e11)>=DANGER_VALUET&&abs(m2.e12)>=DANGER_VALUET)
		myPrintError("ERROR_T");
#endif
	if(abs(m1.e11)>=CRIT_VALUE&&abs(m2.e12)>=CRIT_VALUE)
		m.e12 += (m1.e11>>TRI_EXT)*m2.e12;
	else
		m.e12 += m1.e11*m2.e12>>TRI_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m1.e12)>=DANGER_VALUET&&abs(m2.e22)>=DANGER_VALUET)
		myPrintError("ERROR_T");
#endif
	if(abs(m1.e12)>=CRIT_VALUE&&abs(m2.e22)>=CRIT_VALUE)
		m.e12 += (m1.e12>>TRI_EXT)*m2.e22;
	else
		m.e12 += m1.e12*m2.e22>>TRI_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m1.e13)>=DANGER_VALUET&&abs(m2.e32)>=DANGER_VALUET)
		myPrintError("ERROR_T");
#endif
	if(abs(m1.e13)>=CRIT_VALUE&&abs(m2.e32)>=CRIT_VALUE)
		m.e12 += (m1.e13>>TRI_EXT)*m2.e32;
	else
		m.e12 += m1.e13*m2.e32>>TRI_EXT;

	//m1.e11*m2.e13 + m1.e12*m2.e23 + m1.e13*m2.e33
#ifdef DEBUG_OVERFLOW
	if(abs(m1.e11)>=DANGER_VALUET&&abs(m2.e13)>=DANGER_VALUET)
		myPrintError("ERROR_T");
#endif
	if(abs(m1.e11)>=CRIT_VALUE&&abs(m2.e13)>=CRIT_VALUE)
		m.e13 += (m1.e11>>TRI_EXT)*m2.e13;
	else
		m.e13 += m1.e11*m2.e13>>TRI_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m1.e12)>=DANGER_VALUET&&abs(m2.e23)>=DANGER_VALUET)
		myPrintError("ERROR_T");
#endif
	if(abs(m1.e12)>=CRIT_VALUE&&abs(m2.e23)>=CRIT_VALUE)
		m.e13 += (m1.e12>>TRI_EXT)*m2.e23;
	else
		m.e13 += m1.e12*m2.e23>>TRI_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m1.e13)>=DANGER_VALUET&&abs(m2.e33)>=DANGER_VALUET)
		myPrintError("ERROR_T");
#endif
	if(abs(m1.e13)>=CRIT_VALUE&&abs(m2.e33)>=CRIT_VALUE)
		m.e13 += (m1.e13>>TRI_EXT)*m2.e33;
	else
		m.e13 += m1.e13*m2.e33>>TRI_EXT;
	
	//m1.e21*m2.e11 + m1.e22*m2.e21 + m1.e23*m2.e31
#ifdef DEBUG_OVERFLOW
	if(abs(m1.e21)>=DANGER_VALUET&&abs(m2.e11)>=DANGER_VALUET)
		myPrintError("ERROR_T");
#endif
	if(abs(m1.e21)>=CRIT_VALUE&&abs(m2.e11)>=CRIT_VALUE)
		m.e21 += (m1.e21>>TRI_EXT)*m2.e11;
	else
		m.e21 += m1.e21*m2.e11>>TRI_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m1.e22)>=DANGER_VALUET&&abs(m2.e21)>=DANGER_VALUET)
		myPrintError("ERROR_T");
#endif
	if(abs(m1.e22)>=CRIT_VALUE&&abs(m2.e21)>=CRIT_VALUE)
		m.e21 += (m1.e22>>TRI_EXT)*m2.e21;
	else
		m.e21 += m1.e22*m2.e21>>TRI_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m1.e23)>=DANGER_VALUET&&abs(m2.e31)>=DANGER_VALUET)
		myPrintError("ERROR_T");
#endif
	if(abs(m1.e23)>=CRIT_VALUE&&abs(m2.e31)>=CRIT_VALUE)
		m.e21 += (m1.e23>>TRI_EXT)*m2.e31;
	else
		m.e21 += m1.e23*m2.e31>>TRI_EXT;
	
	//m1.e21*m2.e12 + m1.e22*m2.e22 + m1.e23*m2.e32
#ifdef DEBUG_OVERFLOW
	if(abs(m1.e21)>=DANGER_VALUET&&abs(m2.e12)>=DANGER_VALUET)
		myPrintError("ERROR_T");
#endif
	if(abs(m1.e21)>=CRIT_VALUE&&abs(m2.e12)>=CRIT_VALUE)
		m.e22 += (m1.e21>>TRI_EXT)*m2.e12;
	else
		m.e22 += m1.e21*m2.e12>>TRI_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m1.e22)>=DANGER_VALUET&&abs(m2.e22)>=DANGER_VALUET)
		myPrintError("ERROR_T");
#endif
	if(abs(m1.e22)>=CRIT_VALUE&&abs(m2.e22)>=CRIT_VALUE)
		m.e22 += (m1.e22>>TRI_EXT)*m2.e22;
	else
		m.e22 += m1.e22*m2.e22>>TRI_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m1.e23)>=DANGER_VALUET&&abs(m2.e32)>=DANGER_VALUET)
		myPrintError("ERROR_T");
#endif
	if(abs(m1.e23)>=CRIT_VALUE&&abs(m2.e32)>=CRIT_VALUE)
		m.e22 += (m1.e23>>TRI_EXT)*m2.e32;
	else
		m.e22 += m1.e23*m2.e32>>TRI_EXT;

	//m1.e21*m2.e13 + m1.e22*m2.e23 + m1.e23*m2.e33
#ifdef DEBUG_OVERFLOW
	if(abs(m1.e21)>=DANGER_VALUET&&abs(m2.e13)>=DANGER_VALUET)
		myPrintError("ERROR_T");
#endif
	if(abs(m1.e21)>=CRIT_VALUE&&abs(m2.e13)>=CRIT_VALUE)
		m.e23 += (m1.e21>>TRI_EXT)*m2.e13;
	else
		m.e23 += m1.e21*m2.e13>>TRI_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m1.e22)>=DANGER_VALUET&&abs(m2.e23)>=DANGER_VALUET)
		myPrintError("ERROR_T");
#endif
	if(abs(m1.e22)>=CRIT_VALUE&&abs(m2.e23)>=CRIT_VALUE)
		m.e23 += (m1.e22>>TRI_EXT)*m2.e23;
	else
		m.e23 += m1.e22*m2.e23>>TRI_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m1.e23)>=DANGER_VALUET&&abs(m2.e33)>=DANGER_VALUET)
		myPrintError("ERROR_T");
#endif
	if(abs(m1.e23)>=CRIT_VALUE&&abs(m2.e33)>=CRIT_VALUE)
		m.e23 += (m1.e23>>TRI_EXT)*m2.e33;
	else
		m.e23 += m1.e23*m2.e33>>TRI_EXT;
	
	//m1.e31*m2.e11 + m1.e32*m2.e21 + m1.e33*m2.e31
#ifdef DEBUG_OVERFLOW
	if(abs(m1.e31)>=DANGER_VALUET&&abs(m2.e11)>=DANGER_VALUET)
		myPrintError("ERROR_T");
#endif
	if(abs(m1.e31)>=CRIT_VALUE&&abs(m2.e11)>=CRIT_VALUE)
		m.e31 += (m1.e31>>TRI_EXT)*m2.e11;
	else
		m.e31 += m1.e31*m2.e11>>TRI_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m1.e32)>=DANGER_VALUET&&abs(m2.e21)>=DANGER_VALUET)
		myPrintError("ERROR_T");
#endif
	if(abs(m1.e32)>=CRIT_VALUE&&abs(m2.e21)>=CRIT_VALUE)
		m.e31 += (m1.e32>>TRI_EXT)*m2.e21;
	else
		m.e31 += m1.e32*m2.e21>>TRI_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m1.e33)>=DANGER_VALUET&&abs(m2.e31)>=DANGER_VALUET)
		myPrintError("ERROR_T");
#endif
	if(abs(m1.e33)>=CRIT_VALUE&&abs(m2.e31)>=CRIT_VALUE)
		m.e31 += (m1.e33>>TRI_EXT)*m2.e31;
	else
		m.e31 += m1.e33*m2.e31>>TRI_EXT;

	//m1.e31*m2.e12 + m1.e32*m2.e22 + m1.e33*m2.e32
#ifdef DEBUG_OVERFLOW
	if(abs(m1.e31)>=DANGER_VALUET&&abs(m2.e12)>=DANGER_VALUET)
		myPrintError("ERROR_T");
#endif
	if(abs(m1.e31)>=CRIT_VALUE&&abs(m2.e12)>=CRIT_VALUE)
		m.e32 += (m1.e31>>TRI_EXT)*m2.e12;
	else
		m.e32 += m1.e31*m2.e12>>TRI_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m1.e32)>=DANGER_VALUET&&abs(m2.e22)>=DANGER_VALUET)
		myPrintError("ERROR_T");
#endif
	if(abs(m1.e32)>=CRIT_VALUE&&abs(m2.e22)>=CRIT_VALUE)
		m.e32 += (m1.e32>>TRI_EXT)*m2.e22;
	else
		m.e32 += m1.e32*m2.e22>>TRI_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m1.e33)>=DANGER_VALUET&&abs(m2.e32)>=DANGER_VALUET)
		myPrintError("ERROR_T");
#endif
	if(abs(m1.e33)>=CRIT_VALUE&&abs(m2.e32)>=CRIT_VALUE)
		m.e32 += (m1.e33>>TRI_EXT)*m2.e32;
	else
		m.e32 += m1.e33*m2.e32>>TRI_EXT;

	//m1.e31*m2.e13 + m1.e32*m2.e23 + m1.e33*m2.e33
#ifdef DEBUG_OVERFLOW
	if(abs(m1.e31)>=DANGER_VALUET&&abs(m2.e13)>=DANGER_VALUET)
		myPrintError("ERROR_T");
#endif
	if(abs(m1.e31)>=CRIT_VALUE&&abs(m2.e13)>=CRIT_VALUE)
		m.e33 += (m1.e31>>TRI_EXT)*m2.e13;
	else
		m.e33 += m1.e31*m2.e13>>TRI_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m1.e32)>=DANGER_VALUET&&abs(m2.e23)>=DANGER_VALUET)
		myPrintError("ERROR_T");
#endif
	if(abs(m1.e32)>=CRIT_VALUE&&abs(m2.e23)>=CRIT_VALUE)
		m.e33 += (m1.e32>>TRI_EXT)*m2.e23;
	else
		m.e33 += m1.e32*m2.e23>>TRI_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m1.e33)>=DANGER_VALUET&&abs(m2.e33)>=DANGER_VALUET)
		myPrintError("ERROR_T");
#endif
	if(abs(m1.e33)>=CRIT_VALUE&&abs(m2.e33)>=CRIT_VALUE)
		m.e33 += (m1.e33>>TRI_EXT)*m2.e33;
	else
		m.e33 += m1.e33*m2.e33>>TRI_EXT;
	return m;
#endif
}

Matrix3x3 operator*(Matrix3x3 m, PhType s)
{
	PhType e11,e12,e13,e21,e22,e23,e31,e32,e33;
#ifdef DEBUG_OVERFLOW
	if(abs(m.e11)>=DANGER_VALUE&&abs(s)>=DANGER_VALUE)
		myPrintError("ERROR");
#endif
	if(abs(m.e11)>=CRIT_VALUE&&abs(s)>=CRIT_VALUE)
		e11 = (m.e11>>PHT_EXT)*s;
	else
		e11 = m.e11*s>>PHT_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m.e12)>=DANGER_VALUE&&abs(s)>=DANGER_VALUE)
		myPrintError("ERROR");
#endif
	if(abs(m.e12)>=CRIT_VALUE&&abs(s)>=CRIT_VALUE)
		e12 = (m.e12>>PHT_EXT)*s;
	else
		e12 = m.e12*s>>PHT_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m.e13)>=DANGER_VALUE&&abs(s)>=DANGER_VALUE)
		myPrintError("ERROR");
#endif
	if(abs(m.e13)>=CRIT_VALUE&&abs(s)>=CRIT_VALUE)
		e13 = (m.e13>>PHT_EXT)*s;
	else
		e13 = m.e13*s>>PHT_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m.e21)>=DANGER_VALUE&&abs(s)>=DANGER_VALUE)
		myPrintError("ERROR");
#endif
	if(abs(m.e21)>=CRIT_VALUE&&abs(s)>=CRIT_VALUE)
		e21 = (m.e21>>PHT_EXT)*s;
	else
		e21 = m.e21*s>>PHT_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m.e22)>=DANGER_VALUE&&abs(s)>=DANGER_VALUE)
		myPrintError("ERROR");
#endif
	if(abs(m.e22)>=CRIT_VALUE&&abs(s)>=CRIT_VALUE)
		e22 = (m.e22>>PHT_EXT)*s;
	else
		e22 = m.e22*s>>PHT_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m.e23)>=DANGER_VALUE&&abs(s)>=DANGER_VALUE)
		myPrintError("ERROR");
#endif
	if(abs(m.e23)>=CRIT_VALUE&&abs(s)>=CRIT_VALUE)
		e23 = (m.e23>>PHT_EXT)*s;
	else
		e23 = m.e23*s>>PHT_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m.e31)>=DANGER_VALUE&&abs(s)>=DANGER_VALUE)
		myPrintError("ERROR");
#endif
	if(abs(m.e31)>=CRIT_VALUE&&abs(s)>=CRIT_VALUE)
		e31 = (m.e31>>PHT_EXT)*s;
	else
		e31 = m.e31*s>>PHT_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m.e32)>=DANGER_VALUE&&abs(s)>=DANGER_VALUE)
		myPrintError("ERROR");
#endif
	if(abs(m.e32)>=CRIT_VALUE&&abs(s)>=CRIT_VALUE)
		e32 = (m.e32>>PHT_EXT)*s;
	else
		e32 = m.e32*s>>PHT_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m.e33)>=DANGER_VALUE&&abs(s)>=DANGER_VALUE)
		myPrintError("ERROR");
#endif
	if(abs(m.e33)>=CRIT_VALUE&&abs(s)>=CRIT_VALUE)
		e33 = (m.e33>>PHT_EXT)*s;
	else
		e33 = m.e33*s>>PHT_EXT;
	return	Matrix3x3( e11,e12,e13,
					   e21,e22,e23,
					   e31,e32,e33 );
}

Matrix3x3 operator*(PhType s, Matrix3x3 m)
{
	PhType e11,e12,e13,e21,e22,e23,e31,e32,e33;
#ifdef DEBUG_OVERFLOW
	if(abs(m.e11)>=DANGER_VALUE&&abs(s)>=DANGER_VALUE)
		myPrintError("ERROR");
#endif
	if(abs(m.e11)>=CRIT_VALUE&&abs(s)>=CRIT_VALUE)
		e11 = (m.e11>>PHT_EXT)*s;
	else
		e11 = m.e11*s>>PHT_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m.e12)>=DANGER_VALUE&&abs(s)>=DANGER_VALUE)
		myPrintError("ERROR");
#endif
	if(abs(m.e12)>=CRIT_VALUE&&abs(s)>=CRIT_VALUE)
		e12 = (m.e12>>PHT_EXT)*s;
	else
		e12 = m.e12*s>>PHT_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m.e13)>=DANGER_VALUE&&abs(s)>=DANGER_VALUE)
		myPrintError("ERROR");
#endif
	if(abs(m.e13)>=CRIT_VALUE&&abs(s)>=CRIT_VALUE)
		e13 = (m.e13>>PHT_EXT)*s;
	else
		e13 = m.e13*s>>PHT_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m.e21)>=DANGER_VALUE&&abs(s)>=DANGER_VALUE)
		myPrintError("ERROR");
#endif
	if(abs(m.e21)>=CRIT_VALUE&&abs(s)>=CRIT_VALUE)
		e21 = (m.e21>>PHT_EXT)*s;
	else
		e21 = m.e21*s>>PHT_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m.e22)>=DANGER_VALUE&&abs(s)>=DANGER_VALUE)
		myPrintError("ERROR");
#endif
	if(abs(m.e22)>=CRIT_VALUE&&abs(s)>=CRIT_VALUE)
		e22 = (m.e22>>PHT_EXT)*s;
	else
		e22 = m.e22*s>>PHT_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m.e23)>=DANGER_VALUE&&abs(s)>=DANGER_VALUE)
		myPrintError("ERROR");
#endif
	if(abs(m.e23)>=CRIT_VALUE&&abs(s)>=CRIT_VALUE)
		e23 = (m.e23>>PHT_EXT)*s;
	else
		e23 = m.e23*s>>PHT_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m.e31)>=DANGER_VALUE&&abs(s)>=DANGER_VALUE)
		myPrintError("ERROR");
#endif
	if(abs(m.e31)>=CRIT_VALUE&&abs(s)>=CRIT_VALUE)
		e31 = (m.e31>>PHT_EXT)*s;
	else
		e31 = m.e31*s>>PHT_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m.e32)>=DANGER_VALUE&&abs(s)>=DANGER_VALUE)
		myPrintError("ERROR");
#endif
	if(abs(m.e32)>=CRIT_VALUE&&abs(s)>=CRIT_VALUE)
		e32 = (m.e32>>PHT_EXT)*s;
	else
		e32 = m.e32*s>>PHT_EXT;
#ifdef DEBUG_OVERFLOW
	if(abs(m.e33)>=DANGER_VALUE&&abs(s)>=DANGER_VALUE)
		myPrintError("ERROR");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -