Implementation notes: amd64, coolmagma, crypto_stream

Computer: coolmagma
Architecture: amd64
CPU ID: GenuineIntel-000106a5-bfebfbff
CPU cycles/second: 2400081000...2400185000 (amd64cpuinfo)
SUPERCOP version: 20110825
Benchmark dates: 20100722...20110827

crypto_core

TimeRelative timePrimitiveImplementationCompiler
5801.00hsalsa20crypto_core/hsalsa20/refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer (4.4.1)
5801.00hsalsa20crypto_core/hsalsa20/ref2gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer (4.4.1)
6521.00salsa20crypto_core/salsa20/refgcc -m64 -march=nocona -O2 -fomit-frame-pointer (4.4.1)
4281.00salsa2012crypto_core/salsa2012/refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer (4.4.1)
3441.00salsa208crypto_core/salsa208/refgcc -m64 -O3 -fomit-frame-pointer

crypto_stream

TimeRelative timePrimitiveImplementationCompiler
209801.00aes128ctrcrypto_stream/aes128ctr/cryptoppg++ -m64 -march=core2 -O2 -fomit-frame-pointer (4.4.1)
170961.00aes128estreamcrypto_stream/aes128estream/e/schwabe/core2gcc -funroll-loops -m64 -O2 -fomit-frame-pointer
179761.05aes128estreamcrypto_stream/aes128estream/e/schwabe/athlon64-1gcc -m64 -march=barcelona -O3 -fomit-frame-pointer
181481.06aes128estreamcrypto_stream/aes128estream/e/schwabe/athlon64-2gcc -m64 -O3 -fomit-frame-pointer
192281.12aes128estreamcrypto_stream/aes128estream/e/hongjun/v1gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer
197081.15aes128estreamcrypto_stream/aes128estream/e/hongjun/v0gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer
223361.31aes128estreamcrypto_stream/aes128estream/e/bernstein/amd64-1gcc -m64 -O3 -fomit-frame-pointer
223481.31aes128estreamcrypto_stream/aes128estream/e/bernstein/amd64-2gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer
240801.41aes128estreamcrypto_stream/aes128estream/e/gladmangcc -m64 -march=nocona -Os -fomit-frame-pointer
241321.41aes128estreamcrypto_stream/aes128estream/e/bernstein/little-2gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer
253121.48aes128estreamcrypto_stream/aes128estream/e/bernstein/little-1gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer
266481.56aes128estreamcrypto_stream/aes128estream/e/bernstein/little-4gcc -m64 -march=barcelona -Os -fomit-frame-pointer
275281.61aes128estreamcrypto_stream/aes128estream/e/bernstein/little-3gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer
279841.64aes128estreamcrypto_stream/aes128estream/e/bernstein/big-1gcc -march=k8 -O -fomit-frame-pointer
aes128estreamcrypto_stream/aes128estream/e/bernstein/x86-mmx-1gcc -m64 -O3 -fomit-frame-pointer
aes128estreamcrypto_stream/aes128estream/e/schwabe/pentium4-1gcc -m64 -O3 -fomit-frame-pointer
aes128estreamcrypto_stream/aes128estream/e/schwabe/ppc32linux-1gcc -m64 -O3 -fomit-frame-pointer
aes128estreamcrypto_stream/aes128estream/e/schwabe/ultrasparc3-1gcc -m64 -O3 -fomit-frame-pointer
250681.00aes192ctrcrypto_stream/aes192ctr/cryptoppg++ -m64 -march=barcelona -O2 -fomit-frame-pointer (4.4.1)
294201.00aes256ctrcrypto_stream/aes256ctr/cryptoppg++ -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer (4.4.1)
275241.00aes256estreamcrypto_stream/aes256estream/e/hongjun/v1gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer (4.4.1)
277961.01aes256estreamcrypto_stream/aes256estream/e/hongjun/v0gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer
318921.16aes256estreamcrypto_stream/aes256estream/e/gladmangcc -m64 -march=nocona -Os -fomit-frame-pointer
amastridcrypto_stream/amastrid/refg++ -m64 -O3 -fomit-frame-pointer
37721.00chacha12crypto_stream/chacha12/e/amd64-xmm6gcc -march=barcelona -O -fomit-frame-pointer (4.4.1)
71921.91chacha12crypto_stream/chacha12/e/amd64-3gcc -funroll-loops
73721.95chacha12crypto_stream/chacha12/e/regsgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer
79722.11chacha12crypto_stream/chacha12/e/mergedgcc -funroll-loops -march=nocona -O -fomit-frame-pointer
88922.36chacha12crypto_stream/chacha12/e/refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer
chacha12crypto_stream/chacha12/amd64-ssse3gcc -m64 -O3 -fomit-frame-pointer
chacha12crypto_stream/chacha12/e/ppc-altivecgcc -m64 -O3 -fomit-frame-pointer
chacha12crypto_stream/chacha12/e/sparcgcc -m64 -O3 -fomit-frame-pointer
chacha12crypto_stream/chacha12/e/x86-1gcc -m64 -O3 -fomit-frame-pointer
chacha12crypto_stream/chacha12/e/x86-mmxgcc -m64 -O3 -fomit-frame-pointer
chacha12crypto_stream/chacha12/e/x86-xmmgcc -m64 -O3 -fomit-frame-pointer
chacha12crypto_stream/chacha12/e/x86-xmm2gcc -m64 -O3 -fomit-frame-pointer
chacha12crypto_stream/chacha12/e/x86-xmm5gcc -m64 -O3 -fomit-frame-pointer
chacha12crypto_stream/chacha12/e/x86-xmm6gcc -m64 -O3 -fomit-frame-pointer
57721.00chacha20crypto_stream/chacha20/e/amd64-xmm6gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer (4.4.1)
113801.97chacha20crypto_stream/chacha20/e/amd64-3gcc -march=barcelona -O2 -fomit-frame-pointer
122482.12chacha20crypto_stream/chacha20/e/regsgcc -m64 -march=nocona -O3 -fomit-frame-pointer
127002.20chacha20crypto_stream/chacha20/e/mergedgcc -m64 -march=core2 -O2 -fomit-frame-pointer
132362.29chacha20crypto_stream/chacha20/e/refgcc -funroll-loops -O3 -fomit-frame-pointer
chacha20crypto_stream/chacha20/amd64-ssse3gcc -m64 -O3 -fomit-frame-pointer
chacha20crypto_stream/chacha20/e/ppc-altivecgcc -m64 -O3 -fomit-frame-pointer
chacha20crypto_stream/chacha20/e/sparcgcc -m64 -O3 -fomit-frame-pointer
chacha20crypto_stream/chacha20/e/x86-1gcc -m64 -O3 -fomit-frame-pointer
chacha20crypto_stream/chacha20/e/x86-mmxgcc -m64 -O3 -fomit-frame-pointer
chacha20crypto_stream/chacha20/e/x86-xmmgcc -m64 -O3 -fomit-frame-pointer
chacha20crypto_stream/chacha20/e/x86-xmm2gcc -m64 -O3 -fomit-frame-pointer
chacha20crypto_stream/chacha20/e/x86-xmm5gcc -m64 -O3 -fomit-frame-pointer
chacha20crypto_stream/chacha20/e/x86-xmm6gcc -m64 -O3 -fomit-frame-pointer
27641.00chacha8crypto_stream/chacha8/e/amd64-xmm6gcc -funroll-loops -m64 -O2 -fomit-frame-pointer (4.4.1)
50921.84chacha8crypto_stream/chacha8/e/amd64-3gcc -m64 -march=k8 -O2 -fomit-frame-pointer
57922.10chacha8crypto_stream/chacha8/e/regsgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer
58042.10chacha8crypto_stream/chacha8/e/mergedgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer
64762.34chacha8crypto_stream/chacha8/e/refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer
chacha8crypto_stream/chacha8/amd64-ssse3gcc -m64 -O3 -fomit-frame-pointer
chacha8crypto_stream/chacha8/e/ppc-altivecgcc -m64 -O3 -fomit-frame-pointer
chacha8crypto_stream/chacha8/e/sparcgcc -m64 -O3 -fomit-frame-pointer
chacha8crypto_stream/chacha8/e/x86-1gcc -m64 -O3 -fomit-frame-pointer
chacha8crypto_stream/chacha8/e/x86-mmxgcc -m64 -O3 -fomit-frame-pointer
chacha8crypto_stream/chacha8/e/x86-xmmgcc -m64 -O3 -fomit-frame-pointer
chacha8crypto_stream/chacha8/e/x86-xmm2gcc -m64 -O3 -fomit-frame-pointer
chacha8crypto_stream/chacha8/e/x86-xmm5gcc -m64 -O3 -fomit-frame-pointer
chacha8crypto_stream/chacha8/e/x86-xmm6gcc -m64 -O3 -fomit-frame-pointer
65121.00cryptmtv3crypto_stream/cryptmtv3/e/v3gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer (4.4.1)
211681.00dragoncrypto_stream/dragon/e/submissions/dragongcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer (4.4.1)
222561.00hc128crypto_stream/hc128/e/hc-128/200701bgcc -m64 -march=nocona -O3 -fomit-frame-pointer (4.4.1)
222601.00hc128crypto_stream/hc128/e/hc-128/200606gcc -m64 -march=nocona -O3 -fomit-frame-pointer (4.4.1)
224761.01hc128crypto_stream/hc128/e/hc-128/200701agcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer
533001.00hc256crypto_stream/hc256/e/hc-256/200701gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer (4.4.1)
533281.00hc256crypto_stream/hc256/e/hc-256/200511gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer
97761.00lexv2crypto_stream/lexv2/e/v2/refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer (4.4.1)
98041.00lexv2crypto_stream/lexv2/e/v2/schwabe/amd64-1gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer
98761.01lexv2crypto_stream/lexv2/e/v2/schwabe/amd64-2gcc -fno-schedule-insns -O -fomit-frame-pointer
lexv2crypto_stream/lexv2/e/v2/schwabe/ppc32linux-1gcc -m64 -O3 -fomit-frame-pointer
lexv2crypto_stream/lexv2/e/v2/schwabe/ppc32macos-1gcc -m64 -O3 -fomit-frame-pointer
lexv2crypto_stream/lexv2/e/v2/schwabe/sparc-1gcc -m64 -O3 -fomit-frame-pointer
lexv2crypto_stream/lexv2/e/v2/schwabe/sparc-2gcc -m64 -O3 -fomit-frame-pointer
72521.00nlsv2crypto_stream/nlsv2/e/v2/sync/2gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer (4.4.1)
146642.02nlsv2crypto_stream/nlsv2/e/v2/sync/1gcc -m64 -O3 -fomit-frame-pointer
ocelot1crypto_stream/ocelot1/refg++ -m64 -O3 -fomit-frame-pointer
ocelot2crypto_stream/ocelot2/refg++ -m64 -O3 -fomit-frame-pointer
67721.00panamacrypto_stream/panama/cryptoppg++ -march=barcelona -O2 -fomit-frame-pointer (4.4.1)
79841.00rabbitcrypto_stream/rabbit/e/opt/2/2gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer (4.4.1)
79881.00rabbitcrypto_stream/rabbit/e/opt/2/3gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer (4.4.1)
80881.01rabbitcrypto_stream/rabbit/e/opt/1/2gcc -funroll-loops -m64 -O -fomit-frame-pointer
80961.01rabbitcrypto_stream/rabbit/e/opt/1/4gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer
81041.02rabbitcrypto_stream/rabbit/e/opt/1/3gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer
98801.24rabbitcrypto_stream/rabbit/e/refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer
118761.49rabbitcrypto_stream/rabbit/e/opt/1/1gcc -march=nocona -O2 -fomit-frame-pointer
120481.51rabbitcrypto_stream/rabbit/e/opt/2/1gcc -march=nocona -O -fomit-frame-pointer
rabbitcrypto_stream/rabbit/e/opt/2/4gcc -m64 -O3 -fomit-frame-pointer
rabbitcrypto_stream/rabbit/e/opt/2/5gcc -m64 -O3 -fomit-frame-pointer
58041.00salsa20crypto_stream/salsa20/e/amd64-xmm6gcc -march=barcelona -O3 -fomit-frame-pointer
58081.00salsa20crypto_stream/salsa20/amd64_xmm6gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer
67961.17salsa20crypto_stream/salsa20/e/amd64-xmm5gcc -funroll-loops -m64 -O3 -fomit-frame-pointer
98761.70salsa20crypto_stream/salsa20/e/amd64-xmmgcc -m64 -march=barcelona -O -fomit-frame-pointer
102121.76salsa20crypto_stream/salsa20/e/amd64-xmm2gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer
114121.97salsa20crypto_stream/salsa20/e/amd64-3gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer
119042.05salsa20crypto_stream/salsa20/e/amd64-2gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer
129002.22salsa20crypto_stream/salsa20/e/mergedgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer
129562.23salsa20crypto_stream/salsa20/e/regsgcc -march=nocona -O3 -fomit-frame-pointer
135762.34salsa20crypto_stream/salsa20/e/refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer
157922.72salsa20crypto_stream/salsa20/refgcc -funroll-loops -O3 -fomit-frame-pointer
167242.88salsa20crypto_stream/salsa20/e/amd64-1gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer
salsa20crypto_stream/salsa20/e/ppc-altivecgcc -m64 -O3 -fomit-frame-pointer
salsa20crypto_stream/salsa20/e/sparcgcc -m64 -O3 -fomit-frame-pointer
salsa20crypto_stream/salsa20/e/x86-1gcc -m64 -O3 -fomit-frame-pointer
salsa20crypto_stream/salsa20/e/x86-2gcc -m64 -O3 -fomit-frame-pointer
salsa20crypto_stream/salsa20/e/x86-3gcc -m64 -O3 -fomit-frame-pointer
salsa20crypto_stream/salsa20/e/x86-athlongcc -m64 -O3 -fomit-frame-pointer
salsa20crypto_stream/salsa20/e/x86-mmxgcc -m64 -O3 -fomit-frame-pointer
salsa20crypto_stream/salsa20/e/x86-pmgcc -m64 -O3 -fomit-frame-pointer
salsa20crypto_stream/salsa20/e/x86-xmmgcc -m64 -O3 -fomit-frame-pointer
salsa20crypto_stream/salsa20/e/x86-xmm2gcc -m64 -O3 -fomit-frame-pointer
salsa20crypto_stream/salsa20/e/x86-xmm4gcc -m64 -O3 -fomit-frame-pointer
salsa20crypto_stream/salsa20/e/x86-xmm5gcc -m64 -O3 -fomit-frame-pointer
salsa20crypto_stream/salsa20/x86_xmm5gcc -m64 -O3 -fomit-frame-pointer
37721.00salsa2012crypto_stream/salsa2012/e/amd64-xmm6gcc -m64 -O -fomit-frame-pointer
37761.00salsa2012crypto_stream/salsa2012/amd64_xmm6gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer
44121.17salsa2012crypto_stream/salsa2012/e/amd64-xmm5gcc -m64 -O3 -fomit-frame-pointer
62601.66salsa2012crypto_stream/salsa2012/e/amd64-xmmgcc -Os -fomit-frame-pointer
63961.70salsa2012crypto_stream/salsa2012/e/amd64-xmm2gcc -m64 -O3 -fomit-frame-pointer
71361.89salsa2012crypto_stream/salsa2012/e/amd64-3gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer
75041.99salsa2012crypto_stream/salsa2012/e/amd64-2gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer
78242.07salsa2012crypto_stream/salsa2012/e/mergedgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer
78562.08salsa2012crypto_stream/salsa2012/e/regsgcc -m64 -march=nocona -O3 -fomit-frame-pointer
84322.24salsa2012crypto_stream/salsa2012/e/refgcc -m64 -O3 -fomit-frame-pointer
104842.78salsa2012crypto_stream/salsa2012/e/amd64-1gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer
106802.83salsa2012crypto_stream/salsa2012/refgcc -march=barcelona -O3 -fomit-frame-pointer
salsa2012crypto_stream/salsa2012/e/ppc-altivecgcc -m64 -O3 -fomit-frame-pointer
salsa2012crypto_stream/salsa2012/e/sparcgcc -m64 -O3 -fomit-frame-pointer
salsa2012crypto_stream/salsa2012/e/x86-1gcc -m64 -O3 -fomit-frame-pointer
salsa2012crypto_stream/salsa2012/e/x86-2gcc -m64 -O3 -fomit-frame-pointer
salsa2012crypto_stream/salsa2012/e/x86-3gcc -m64 -O3 -fomit-frame-pointer
salsa2012crypto_stream/salsa2012/e/x86-athlongcc -m64 -O3 -fomit-frame-pointer
salsa2012crypto_stream/salsa2012/e/x86-mmxgcc -m64 -O3 -fomit-frame-pointer
salsa2012crypto_stream/salsa2012/e/x86-pmgcc -m64 -O3 -fomit-frame-pointer
salsa2012crypto_stream/salsa2012/e/x86-xmmgcc -m64 -O3 -fomit-frame-pointer
salsa2012crypto_stream/salsa2012/e/x86-xmm2gcc -m64 -O3 -fomit-frame-pointer
salsa2012crypto_stream/salsa2012/e/x86-xmm4gcc -m64 -O3 -fomit-frame-pointer
salsa2012crypto_stream/salsa2012/e/x86-xmm5gcc -m64 -O3 -fomit-frame-pointer
salsa2012crypto_stream/salsa2012/x86_xmm5gcc -m64 -O3 -fomit-frame-pointer
27681.00salsa208crypto_stream/salsa208/e/amd64-xmm6gcc -m64 -O -fomit-frame-pointer
27721.00salsa208crypto_stream/salsa208/amd64_xmm6gcc -m64 -O3 -fomit-frame-pointer
32161.16salsa208crypto_stream/salsa208/e/amd64-xmm5gcc -m64 -march=k8 -Os -fomit-frame-pointer
43801.58salsa208crypto_stream/salsa208/e/amd64-xmmgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer
45481.64salsa208crypto_stream/salsa208/e/amd64-xmm2gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer
51281.85salsa208crypto_stream/salsa208/e/amd64-3gcc -funroll-loops -march=k8 -O -fomit-frame-pointer
53441.93salsa208crypto_stream/salsa208/e/amd64-2gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer
54841.98salsa208crypto_stream/salsa208/e/regsgcc -m64 -O3 -fomit-frame-pointer
57562.08salsa208crypto_stream/salsa208/e/mergedgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer
65442.36salsa208crypto_stream/salsa208/e/refgcc -m64 -march=core2 -O3 -fomit-frame-pointer
73762.66salsa208crypto_stream/salsa208/e/amd64-1gcc -m64 -march=barcelona -O -fomit-frame-pointer
84763.06salsa208crypto_stream/salsa208/refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer
salsa208crypto_stream/salsa208/e/ppc-altivecgcc -m64 -O3 -fomit-frame-pointer
salsa208crypto_stream/salsa208/e/sparcgcc -m64 -O3 -fomit-frame-pointer
salsa208crypto_stream/salsa208/e/x86-1gcc -m64 -O3 -fomit-frame-pointer
salsa208crypto_stream/salsa208/e/x86-2gcc -m64 -O3 -fomit-frame-pointer
salsa208crypto_stream/salsa208/e/x86-3gcc -m64 -O3 -fomit-frame-pointer
salsa208crypto_stream/salsa208/e/x86-athlongcc -m64 -O3 -fomit-frame-pointer
salsa208crypto_stream/salsa208/e/x86-mmxgcc -m64 -O3 -fomit-frame-pointer
salsa208crypto_stream/salsa208/e/x86-pmgcc -m64 -O3 -fomit-frame-pointer
salsa208crypto_stream/salsa208/e/x86-xmmgcc -m64 -O3 -fomit-frame-pointer
salsa208crypto_stream/salsa208/e/x86-xmm2gcc -m64 -O3 -fomit-frame-pointer
salsa208crypto_stream/salsa208/e/x86-xmm4gcc -m64 -O3 -fomit-frame-pointer
salsa208crypto_stream/salsa208/e/x86-xmm5gcc -m64 -O3 -fomit-frame-pointer
salsa208crypto_stream/salsa208/x86_xmm5gcc -m64 -O3 -fomit-frame-pointer
67721.00snow20crypto_stream/snow20/e/benchmarks/snow-2.0gcc -m64 -march=core2 -O2 -fomit-frame-pointer (4.4.1)
68161.00sosemanukcrypto_stream/sosemanuk/cryptoppg++ -m64 -march=k8 -O3 -fomit-frame-pointer (4.4.1)
75921.11sosemanukcrypto_stream/sosemanuk/e/submissions/sosemanukgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer
102481.00tpycrypto_stream/tpy/e/tpygcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer (4.4.1)
74201.00tpy6crypto_stream/tpy6/e/tpy6gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer (4.4.1)
128521.00tpypycrypto_stream/tpypy/e/tpypygcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer (4.4.1)
63121.00triviumcrypto_stream/trivium/e/submissions/triviumgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer (4.4.1)
63801.00xsalsa20crypto_stream/xsalsa20/refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer (4.4.1)