Fix TDivisor type
Hooray! It works!
This commit is contained in:
parent
ecce5e797f
commit
932a11679d
1 changed files with 22 additions and 22 deletions
|
@ -16,8 +16,8 @@ type size_t = u64;
|
|||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
struct TDivisor {
|
||||
u: [u16; 2],
|
||||
v: [u16; 2],
|
||||
u: [u64; 2],
|
||||
v: [u64; 2],
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
|
@ -297,8 +297,8 @@ unsafe fn find_divisor_v(mut d: *mut TDivisor) -> i32 {
|
|||
residue_add(f1, residue_mul(u1, residue_mul(v1, v1))),
|
||||
residue_inv(residue_add(v1, v1)),
|
||||
);
|
||||
(*d).v[0_i32 as usize] = v0 as u16;
|
||||
(*d).v[1_i32 as usize] = v1 as u16;
|
||||
(*d).v[0_i32 as usize] = v0;
|
||||
(*d).v[1_i32 as usize] = v1;
|
||||
1_i32
|
||||
}
|
||||
|
||||
|
@ -750,32 +750,32 @@ unsafe fn divisor_add(src1: *const TDivisor, src2: *const TDivisor, mut dst: *mu
|
|||
);
|
||||
}
|
||||
if udeg == 2_i32 {
|
||||
(*dst).u[0_i32 as usize] = u[0_i32 as usize] as u16;
|
||||
(*dst).u[1_i32 as usize] = u[1_i32 as usize] as u16;
|
||||
(*dst).u[0_i32 as usize] = u[0_i32 as usize];
|
||||
(*dst).u[1_i32 as usize] = u[1_i32 as usize];
|
||||
(*dst).v[0_i32 as usize] = (if vdeg >= 0_i32 {
|
||||
v[0_i32 as usize]
|
||||
} else {
|
||||
0_i32 as u64
|
||||
}) as u16;
|
||||
});
|
||||
(*dst).v[1_i32 as usize] = (if vdeg >= 1_i32 {
|
||||
v[1_i32 as usize]
|
||||
} else {
|
||||
0_i32 as u64
|
||||
}) as u16;
|
||||
});
|
||||
} else if udeg == 1_i32 {
|
||||
(*dst).u[0_i32 as usize] = u[0_i32 as usize] as u16;
|
||||
(*dst).u[1_i32 as usize] = BAD as u16;
|
||||
(*dst).u[0_i32 as usize] = u[0_i32 as usize];
|
||||
(*dst).u[1_i32 as usize] = BAD;
|
||||
(*dst).v[0_i32 as usize] = (if vdeg >= 0_i32 {
|
||||
v[0_i32 as usize]
|
||||
} else {
|
||||
0_i32 as u64
|
||||
}) as u16;
|
||||
(*dst).v[1_i32 as usize] = BAD as u16;
|
||||
});
|
||||
(*dst).v[1_i32 as usize] = BAD;
|
||||
} else {
|
||||
(*dst).u[0_i32 as usize] = BAD as u16;
|
||||
(*dst).u[1_i32 as usize] = BAD as u16;
|
||||
(*dst).v[0_i32 as usize] = BAD as u16;
|
||||
(*dst).v[1_i32 as usize] = BAD as u16;
|
||||
(*dst).u[0_i32 as usize] = BAD;
|
||||
(*dst).u[1_i32 as usize] = BAD;
|
||||
(*dst).v[0_i32 as usize] = BAD;
|
||||
(*dst).v[1_i32 as usize] = BAD;
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -786,10 +786,10 @@ unsafe fn divisor_mul128(
|
|||
mut dst: *mut TDivisor,
|
||||
) {
|
||||
if mult_lo == 0_i32 as u64 && mult_hi == 0_i32 as u64 {
|
||||
(*dst).u[0_i32 as usize] = BAD as u16;
|
||||
(*dst).u[1_i32 as usize] = BAD as u16;
|
||||
(*dst).v[0_i32 as usize] = BAD as u16;
|
||||
(*dst).v[1_i32 as usize] = BAD as u16;
|
||||
(*dst).u[0_i32 as usize] = BAD;
|
||||
(*dst).u[1_i32 as usize] = BAD;
|
||||
(*dst).v[0_i32 as usize] = BAD;
|
||||
(*dst).v[1_i32 as usize] = BAD;
|
||||
return;
|
||||
}
|
||||
let mut cur: TDivisor = *src;
|
||||
|
@ -1179,8 +1179,8 @@ unsafe fn Generate(installation_id_str: *const i8, confirmation_id: *mut i8) ->
|
|||
d_0.u[0_i32 as usize] = residue_sub(
|
||||
residue_mul(x1, x1),
|
||||
residue_mul(43_i32 as u64, residue_mul(x2, x2)),
|
||||
) as u16;
|
||||
d_0.u[1_i32 as usize] = residue_add(x1, x1) as u16;
|
||||
);
|
||||
d_0.u[1_i32 as usize] = residue_add(x1, x1);
|
||||
if find_divisor_v(&mut d_0) != 0 {
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue