function v=huvent(bits)
% for k=0:t
% a=4096.^(t-k).*(2/(8*k + 1) + 1/(6*k + 1) + 2^-1/(12*k + 3) + 2^-8/(6*k + 5) - 2^-5/(6*k + 3) - 2^-4/(12*k + 7) - 2^-5/(8*k + 5) - 2^-8/(12*k + 11));
% a0=a0+a;
% end
M3= 12; b3=[8,1,2;6,1,1;12*2^1,3*2^1,1;6*2^8,5*2^8,1;6*2^5,3*2^5,-1;12*2^4,7*2^4,-1;8*2^5,5*2^5,-1;12*2^8,11*2^8,-1];
%b3 = [24 2 8; 24 3 6; 24 4 -8; 24 6 -3; 24 8 -3; 48 20 1; 192 96 -1; 768 480 -3; 384 256 -3; 384 288 -1; 768 640 -1];
M1 = 4; b1 = [8 1 4; 8 4 -2; 8 5 -1; 8 6 -1];
M5 = 30;b5=[60,3, +6;60*2,5*2, +5;60,6, +3;60*2^2,9*2^2, +3;60*2^3,10*2^3,+5;60*2^6,15*2^6,-1;60*2^6,18*2^6,-3;60*2^8,21*2^8,-3;60*2^11,25*2^11,-5;60*2^11,27*2^11,+3;60*2^13,30*2^13,+1;60*2^14,33*2^14,+3;60*2^16,35*2^16,-5;60*2^17,39*2^17,-3;60*2^18,42*2^18,-3;60*2^21,45*2^21,-1;60*2^23,50*2^23,+5;60*2^23,51*2^23,+3;60*2^24,54*2^24,+3;60*2^26,55*2^26,+5;60*2^26,57*2^26, +3];
M2 = 8; b2 = [16 1 4; 16 4 -2; 16 5 -1; 16 6 -1; 64 36 1; 128 96 -1; 256 208 -1; 256 224 -1];
M4 = 16; b4 = [32 1 4; 32 4 -2; 32 5 -1; 32 6 -1; 128 36 1; 256 96 -1; 512 208 -1; 512 224 -1; 2048 1088 1; 4096 2560 -1; 8192 5376 -1; 8192 5632 -1; 32768 25600 1; 65536 57344 -1; 131072 118784 -1; 131072 122880 -1];
M6 = 10; b6=[8 2 -1;256 192 -1;10 1 4;10 3 -1;160 80 -1;160 112 -1;640 576 1] ;
[bbp(bits, M1, b1) ' ' bbp(bits, M2, b2) ' ' bbp(bits, M3, b3) ' ' bbp(bits, M4, b4) ' ' bbp(bits, M5, b5) ' ' bbp(bits, M6, b6)]
end
function r = expm(p, ak,n)
base=bitshift(1,n);
if ak==1,r=0;return;end
if p<2,r=mod(base^p, ak);return;end
p1 = p;
i = 0;
while p1 > 0
buf(i+1) = mod(p1,base);
p1 = bitshift(p1,-n);
i = i + 1;
end
r=1;
for j=i:-1:2
for m = 1:buf(j)*n
r = mod(r + r, ak);
end
for k = 1:n
p1 = r;
t = r;
r = 0;
while p1>0
r = mod(r + mod(t * mod(p1,base), ak), ak); %最大出现ak*base
t = mod(t * base, ak);
p1 = bitshift(p1,-n);
end
end
end
for m = 1:buf(1)*n
r = mod(r + r, ak);
end
end
1万+

被折叠的 条评论
为什么被折叠?



