void CPalGroup::SetAddRGBA(COLORREF crSrc, COLORREF * crTarget, int uAddR, int uAddG, int uAddB, int uAddA) { *crTarget = RGB( ROUND_R(LimitRGB(GetRValue(crSrc) + uAddR)), ROUND_G(LimitRGB(GetGValue(crSrc) + uAddG)), ROUND_B(LimitRGB(GetBValue(crSrc) + uAddB)) ); *crTarget = RGB(ROUND_R(GetRValue(*crTarget)), ROUND_G(GetGValue(*crTarget)), ROUND_B(GetBValue(*crTarget))); *crTarget |= (UINT32)ROUND(LimitRGB(GetAValue(crSrc) + uAddA)) << 24; }
void CPalGroup::SetAddHLSA(COLORREF crSrc, COLORREF * crTarget, double fpAddH, double fpAddL, double fpAddS, int uAddA) { double modH, modL, modS; RGBtoHLS(crSrc, &modH, &modL, &modS); *crTarget = HLStoRGB( SubHLS(modH + fpAddH), LimitHLS(modL + fpAddL), LimitHLS(modS + fpAddS) ); *crTarget = RGB(ROUND_R(GetRValue(*crTarget)), ROUND_G(GetGValue(*crTarget)), ROUND_B(GetBValue(*crTarget))); *crTarget |= (UINT32)ROUND(LimitRGB(GetAValue(crSrc) + uAddA)) << 24; }
void CPalGroup::SetRGBA(COLORREF * crTarget, UINT8 rVal, UINT8 gVal, UINT8 bVal, UINT8 aVal) { *crTarget = RGB(ROUND_R(rVal), ROUND_G(gVal), ROUND_B(bVal)); *crTarget |= (COLORREF)aVal << 24; }
void CPalGroup::SetHLSA(COLORREF * crTarget, double dH, double dL, double dS, UINT8 aVal) { *crTarget = HLStoRGB(LimitHLS(dH), LimitHLS(dL), LimitHLS(dS)); *crTarget = RGB(ROUND_R(GetRValue(*crTarget)),ROUND_G(GetGValue(*crTarget)),ROUND_B(GetBValue(*crTarget))); *crTarget |= (UINT32)aVal << 24; }
void sha512_b(){ uint64_t A = INIT_A; uint64_t B = INIT_B; uint64_t C = INIT_C; uint64_t D = INIT_D; uint64_t E = INIT_E; uint64_t F = INIT_F; uint64_t G = INIT_G; uint64_t H = INIT_H; uint64_t W[16],t; int i; for(i=0;i<16;i++) W[i]=i; ROUND_A(A,B,C,D,E,F,G,H,k[0],W[0]); ROUND_A(H,A,B,C,D,E,F,G,k[1],W[1]); ROUND_A(G,H,A,B,C,D,E,F,k[2],W[2]); ROUND_A(F,G,H,A,B,C,D,E,k[3],W[3]); ROUND_A(E,F,G,H,A,B,C,D,k[4],W[4]); ROUND_A(D,E,F,G,H,A,B,C,k[5],W[5]); ROUND_A(C,D,E,F,G,H,A,B,k[6],W[6]); ROUND_A(B,C,D,E,F,G,H,A,k[7],W[7]); ROUND_A(A,B,C,D,E,F,G,H,k[8],W[8]); ROUND_A(H,A,B,C,D,E,F,G,k[9],W[9]); ROUND_A(G,H,A,B,C,D,E,F,k[10],W[10]); ROUND_A(F,G,H,A,B,C,D,E,k[11],W[11]); ROUND_A(E,F,G,H,A,B,C,D,k[12],W[12]); ROUND_A(D,E,F,G,H,A,B,C,k[13],W[13]); ROUND_A(C,D,E,F,G,H,A,B,k[14],W[14]); ROUND_A(B,C,D,E,F,G,H,A,k[15],W[15]); //--------------------------------------- ROUND_B(A,B,C,D,E,F,G,H,k[16],W[0], W[14],W[1],W[0],W[9]) ROUND_B(H,A,B,C,D,E,F,G,k[17],W[1], W[15],W[2],W[1],W[10]) ROUND_B(G,H,A,B,C,D,E,F,k[18],W[2], W[0],W[3],W[2],W[11]) ROUND_B(F,G,H,A,B,C,D,E,k[19],W[3], W[1],W[4],W[3],W[12]) ROUND_B(E,F,G,H,A,B,C,D,k[20],W[4], W[2],W[5],W[4],W[13]) ROUND_B(D,E,F,G,H,A,B,C,k[21],W[5], W[3],W[6],W[5],W[14]) ROUND_B(C,D,E,F,G,H,A,B,k[22],W[6], W[4],W[7],W[6],W[15]) ROUND_B(B,C,D,E,F,G,H,A,k[23],W[7], W[5],W[8],W[7],W[0]) ROUND_B(A,B,C,D,E,F,G,H,k[24],W[8], W[6],W[9],W[8],W[1]) ROUND_B(H,A,B,C,D,E,F,G,k[25],W[9], W[7],W[10],W[9],W[2]) ROUND_B(G,H,A,B,C,D,E,F,k[26],W[10], W[8],W[11],W[10],W[3]) ROUND_B(F,G,H,A,B,C,D,E,k[27],W[11], W[9],W[12],W[11],W[4]) ROUND_B(E,F,G,H,A,B,C,D,k[28],W[12], W[10],W[13],W[12],W[5]) ROUND_B(D,E,F,G,H,A,B,C,k[29],W[13], W[11],W[14],W[13],W[6]) ROUND_B(C,D,E,F,G,H,A,B,k[30],W[14], W[12],W[15],W[14],W[7]) ROUND_B(B,C,D,E,F,G,H,A,k[31],W[15], W[13],W[0],W[15],W[8]) ROUND_B(A,B,C,D,E,F,G,H,k[32],W[0], W[14],W[1],W[0],W[9]) ROUND_B(H,A,B,C,D,E,F,G,k[33],W[1], W[15],W[2],W[1],W[10]) ROUND_B(G,H,A,B,C,D,E,F,k[34],W[2], W[0],W[3],W[2],W[11]) ROUND_B(F,G,H,A,B,C,D,E,k[35],W[3], W[1],W[4],W[3],W[12]) ROUND_B(E,F,G,H,A,B,C,D,k[36],W[4], W[2],W[5],W[4],W[13]) ROUND_B(D,E,F,G,H,A,B,C,k[37],W[5], W[3],W[6],W[5],W[14]) ROUND_B(C,D,E,F,G,H,A,B,k[38],W[6], W[4],W[7],W[6],W[15]) ROUND_B(B,C,D,E,F,G,H,A,k[39],W[7], W[5],W[8],W[7],W[0]) ROUND_B(A,B,C,D,E,F,G,H,k[40],W[8], W[6],W[9],W[8],W[1]) ROUND_B(H,A,B,C,D,E,F,G,k[41],W[9], W[7],W[10],W[9],W[2]) ROUND_B(G,H,A,B,C,D,E,F,k[42],W[10], W[8],W[11],W[10],W[3]) ROUND_B(F,G,H,A,B,C,D,E,k[43],W[11], W[9],W[12],W[11],W[4]) ROUND_B(E,F,G,H,A,B,C,D,k[44],W[12], W[10],W[13],W[12],W[5]) ROUND_B(D,E,F,G,H,A,B,C,k[45],W[13], W[11],W[14],W[13],W[6]) ROUND_B(C,D,E,F,G,H,A,B,k[46],W[14], W[12],W[15],W[14],W[7]) ROUND_B(B,C,D,E,F,G,H,A,k[47],W[15], W[13],W[0],W[15],W[8]) ROUND_B(A,B,C,D,E,F,G,H,k[48],W[0], W[14],W[1],W[0],W[9]) ROUND_B(H,A,B,C,D,E,F,G,k[49],W[1], W[15],W[2],W[1],W[10]) ROUND_B(G,H,A,B,C,D,E,F,k[50],W[2], W[0],W[3],W[2],W[11]) ROUND_B(F,G,H,A,B,C,D,E,k[51],W[3], W[1],W[4],W[3],W[12]) ROUND_B(E,F,G,H,A,B,C,D,k[52],W[4], W[2],W[5],W[4],W[13]) ROUND_B(D,E,F,G,H,A,B,C,k[53],W[5], W[3],W[6],W[5],W[14]) ROUND_B(C,D,E,F,G,H,A,B,k[54],W[6], W[4],W[7],W[6],W[15]) ROUND_B(B,C,D,E,F,G,H,A,k[55],W[7], W[5],W[8],W[7],W[0]) ROUND_B(A,B,C,D,E,F,G,H,k[56],W[8], W[6],W[9],W[8],W[1]) ROUND_B(H,A,B,C,D,E,F,G,k[57],W[9], W[7],W[10],W[9],W[2]) ROUND_B(G,H,A,B,C,D,E,F,k[58],W[10], W[8],W[11],W[10],W[3]) ROUND_B(F,G,H,A,B,C,D,E,k[59],W[11], W[9],W[12],W[11],W[4]) ROUND_B(E,F,G,H,A,B,C,D,k[60],W[12], W[10],W[13],W[12],W[5]) ROUND_B(D,E,F,G,H,A,B,C,k[61],W[13], W[11],W[14],W[13],W[6]) ROUND_B(C,D,E,F,G,H,A,B,k[62],W[14], W[12],W[15],W[14],W[7]) ROUND_B(B,C,D,E,F,G,H,A,k[63],W[15], W[13],W[0],W[15],W[8]) ROUND_B(A,B,C,D,E,F,G,H,k[64],W[0], W[14],W[1],W[0],W[9]) ROUND_B(H,A,B,C,D,E,F,G,k[65],W[1], W[15],W[2],W[1],W[10]) ROUND_B(G,H,A,B,C,D,E,F,k[66],W[2], W[0],W[3],W[2],W[11]) ROUND_B(F,G,H,A,B,C,D,E,k[67],W[3], W[1],W[4],W[3],W[12]) ROUND_B(E,F,G,H,A,B,C,D,k[68],W[4], W[2],W[5],W[4],W[13]) ROUND_B(D,E,F,G,H,A,B,C,k[69],W[5], W[3],W[6],W[5],W[14]) ROUND_B(C,D,E,F,G,H,A,B,k[70],W[6], W[4],W[7],W[6],W[15]) ROUND_B(B,C,D,E,F,G,H,A,k[71],W[7], W[5],W[8],W[7],W[0]) ROUND_B(A,B,C,D,E,F,G,H,k[72],W[8], W[6],W[9],W[8],W[1]) ROUND_B(H,A,B,C,D,E,F,G,k[73],W[9], W[7],W[10],W[9],W[2]) ROUND_B(G,H,A,B,C,D,E,F,k[74],W[10], W[8],W[11],W[10],W[3]) ROUND_B(F,G,H,A,B,C,D,E,k[75],W[11], W[9],W[12],W[11],W[4]) ROUND_B(E,F,G,H,A,B,C,D,k[76],W[12], W[10],W[13],W[12],W[5]) ROUND_B(D,E,F,G,H,A,B,C,k[77],W[13], W[11],W[14],W[13],W[6]) ROUND_B(C,D,E,F,G,H,A,B,k[78],W[14], W[12],W[15],W[14],W[7]) ROUND_B(B,C,D,E,F,G,H,A,k[79],W[15], W[13],W[0],W[15],W[8]) printf("%08x %08x %08x %08x %08x %08x %08x %08x\n",P(A),P(B),P(C),P(D),P(E),P(F),P(G),P(H)); }