INNER CODE UNIT · C
inf
StrobeLabs/eth.zig · src/crypto/blst/src/bulk_addition.c:64
inf = vec_is_zero(A->Z, sizeof(A->Z)); \
vec_select(B->X, A->Z, B->X, sizeof(B->X), inf); \
sqr_##field(B->Y, A->X); \
mul_by_3_##field(B->Y, B->Y); /* 3*X1^2 */ \
vec_copy(B->Z, A->Z, sizeof(B->Z)); /* 2*Y1 */ \
} /* B->Y is numenator */ \
/* B->Z is denominator */ \
vec_select(A->X, B->X, A->X, sizeof(A->X), inf); \
vec_select(A->Y, A->Z, A->Y, sizeof(A->Y), inf); \
vec_select(A->Z, one, B->Z, sizeof(A->Z), inf); \
vec_select(B->Z, zero, B->Z, sizeof(B->Z), inf); \
if (mul_acc != NULL) \
mul_##field(A->Z, A->Z, mul_acc); /* chain multiplication */\
}
/*
* Calculate λ and resulting coordinates.
*