// Generated by tools/gen_transforms.py from the butterfly descriptions of the VP9 specification // v0.6 section 8.7.1. Do not edit by hand. macro_rules! transforms_1d { ($t:ty) => { #[inline(always)] fn r14(x: $t) -> $t { x.wrapping_add(1 << 13) >> 14 } #[inline(always)] pub fn idct4(x: [$t; 4]) -> [$t; 4] { let v0 = r14(x[0].wrapping_mul(11585).wrapping_add(x[2].wrapping_mul(-11585))); let v1 = r14(x[0].wrapping_mul(11585).wrapping_add(x[2].wrapping_mul(11585))); let v2 = r14(x[1].wrapping_mul(6270).wrapping_add(x[3].wrapping_mul(-15137))); let v3 = r14(x[1].wrapping_mul(15137).wrapping_add(x[3].wrapping_mul(6270))); let v4 = v1.wrapping_add(v3); let v5 = v1.wrapping_sub(v3); let v6 = v0.wrapping_add(v2); let v7 = v0.wrapping_sub(v2); [v4, v6, v7, v5] } #[inline(always)] pub fn idct8(x: [$t; 8]) -> [$t; 8] { let v0 = r14(x[0].wrapping_mul(11585).wrapping_add(x[4].wrapping_mul(-11585))); let v1 = r14(x[0].wrapping_mul(11585).wrapping_add(x[4].wrapping_mul(11585))); let v2 = r14(x[2].wrapping_mul(6270).wrapping_add(x[6].wrapping_mul(-15137))); let v3 = r14(x[2].wrapping_mul(15137).wrapping_add(x[6].wrapping_mul(6270))); let v4 = v1.wrapping_add(v3); let v5 = v1.wrapping_sub(v3); let v6 = v0.wrapping_add(v2); let v7 = v0.wrapping_sub(v2); let v8 = r14(x[1].wrapping_mul(3196).wrapping_add(x[7].wrapping_mul(-16069))); let v9 = r14(x[1].wrapping_mul(16069).wrapping_add(x[7].wrapping_mul(3196))); let v10 = r14(x[5].wrapping_mul(13623).wrapping_add(x[3].wrapping_mul(-9102))); let v11 = r14(x[5].wrapping_mul(9102).wrapping_add(x[3].wrapping_mul(13623))); let v12 = v8.wrapping_add(v10); let v13 = v8.wrapping_sub(v10); let v14 = v9.wrapping_add(v11); let v15 = v9.wrapping_sub(v11); let v16 = r14(v15.wrapping_mul(11585).wrapping_add(v13.wrapping_mul(-11585))); let v17 = r14(v15.wrapping_mul(11585).wrapping_add(v13.wrapping_mul(11585))); let v18 = v4.wrapping_add(v14); let v19 = v4.wrapping_sub(v14); let v20 = v6.wrapping_add(v17); let v21 = v6.wrapping_sub(v17); let v22 = v7.wrapping_add(v16); let v23 = v7.wrapping_sub(v16); let v24 = v5.wrapping_add(v12); let v25 = v5.wrapping_sub(v12); [v18, v20, v22, v24, v25, v23, v21, v19] } #[inline(always)] pub fn idct16(x: [$t; 16]) -> [$t; 16] { let v0 = r14(x[0].wrapping_mul(11585).wrapping_add(x[8].wrapping_mul(-11585))); let v1 = r14(x[0].wrapping_mul(11585).wrapping_add(x[8].wrapping_mul(11585))); let v2 = r14(x[4].wrapping_mul(6270).wrapping_add(x[12].wrapping_mul(-15137))); let v3 = r14(x[4].wrapping_mul(15137).wrapping_add(x[12].wrapping_mul(6270))); let v4 = v1.wrapping_add(v3); let v5 = v1.wrapping_sub(v3); let v6 = v0.wrapping_add(v2); let v7 = v0.wrapping_sub(v2); let v8 = r14(x[2].wrapping_mul(3196).wrapping_add(x[14].wrapping_mul(-16069))); let v9 = r14(x[2].wrapping_mul(16069).wrapping_add(x[14].wrapping_mul(3196))); let v10 = r14(x[10].wrapping_mul(13623).wrapping_add(x[6].wrapping_mul(-9102))); let v11 = r14(x[10].wrapping_mul(9102).wrapping_add(x[6].wrapping_mul(13623))); let v12 = v8.wrapping_add(v10); let v13 = v8.wrapping_sub(v10); let v14 = v9.wrapping_add(v11); let v15 = v9.wrapping_sub(v11); let v16 = r14(v15.wrapping_mul(11585).wrapping_add(v13.wrapping_mul(-11585))); let v17 = r14(v15.wrapping_mul(11585).wrapping_add(v13.wrapping_mul(11585))); let v18 = v4.wrapping_add(v14); let v19 = v4.wrapping_sub(v14); let v20 = v6.wrapping_add(v17); let v21 = v6.wrapping_sub(v17); let v22 = v7.wrapping_add(v16); let v23 = v7.wrapping_sub(v16); let v24 = v5.wrapping_add(v12); let v25 = v5.wrapping_sub(v12); let v26 = r14(x[1].wrapping_mul(1606).wrapping_add(x[15].wrapping_mul(-16305))); let v27 = r14(x[1].wrapping_mul(16305).wrapping_add(x[15].wrapping_mul(1606))); let v28 = r14(x[9].wrapping_mul(12665).wrapping_add(x[7].wrapping_mul(-10394))); let v29 = r14(x[9].wrapping_mul(10394).wrapping_add(x[7].wrapping_mul(12665))); let v30 = r14(x[5].wrapping_mul(7723).wrapping_add(x[11].wrapping_mul(-14449))); let v31 = r14(x[5].wrapping_mul(14449).wrapping_add(x[11].wrapping_mul(7723))); let v32 = r14(x[13].wrapping_mul(15679).wrapping_add(x[3].wrapping_mul(-4756))); let v33 = r14(x[13].wrapping_mul(4756).wrapping_add(x[3].wrapping_mul(15679))); let v34 = v26.wrapping_add(v28); let v35 = v26.wrapping_sub(v28); let v36 = v32.wrapping_add(v30); let v37 = v32.wrapping_sub(v30); let v38 = v33.wrapping_add(v31); let v39 = v33.wrapping_sub(v31); let v40 = v27.wrapping_add(v29); let v41 = v27.wrapping_sub(v29); let v42 = r14(v41.wrapping_mul(6270).wrapping_add(v35.wrapping_mul(-15137))); let v43 = r14(v41.wrapping_mul(15137).wrapping_add(v35.wrapping_mul(6270))); let v44 = r14(v37.wrapping_mul(-15137).wrapping_add(v39.wrapping_mul(6270))); let v45 = r14(v37.wrapping_mul(-6270).wrapping_add(v39.wrapping_mul(-15137))); let v46 = v34.wrapping_add(v36); let v47 = v34.wrapping_sub(v36); let v48 = v40.wrapping_add(v38); let v49 = v40.wrapping_sub(v38); let v50 = v42.wrapping_add(v45); let v51 = v42.wrapping_sub(v45); let v52 = v43.wrapping_add(v44); let v53 = v43.wrapping_sub(v44); let v54 = r14(v53.wrapping_mul(11585).wrapping_add(v51.wrapping_mul(-11585))); let v55 = r14(v53.wrapping_mul(11585).wrapping_add(v51.wrapping_mul(11585))); let v56 = r14(v49.wrapping_mul(11585).wrapping_add(v47.wrapping_mul(-11585))); let v57 = r14(v49.wrapping_mul(11585).wrapping_add(v47.wrapping_mul(11585))); let v58 = v18.wrapping_add(v48); let v59 = v18.wrapping_sub(v48); let v60 = v20.wrapping_add(v52); let v61 = v20.wrapping_sub(v52); let v62 = v22.wrapping_add(v55); let v63 = v22.wrapping_sub(v55); let v64 = v24.wrapping_add(v57); let v65 = v24.wrapping_sub(v57); let v66 = v25.wrapping_add(v56); let v67 = v25.wrapping_sub(v56); let v68 = v23.wrapping_add(v54); let v69 = v23.wrapping_sub(v54); let v70 = v21.wrapping_add(v50); let v71 = v21.wrapping_sub(v50); let v72 = v19.wrapping_add(v46); let v73 = v19.wrapping_sub(v46); [v58, v60, v62, v64, v66, v68, v70, v72, v73, v71, v69, v67, v65, v63, v61, v59] } #[inline(always)] pub fn idct32(x: [$t; 32]) -> [$t; 32] { let v0 = r14(x[0].wrapping_mul(11585).wrapping_add(x[16].wrapping_mul(-11585))); let v1 = r14(x[0].wrapping_mul(11585).wrapping_add(x[16].wrapping_mul(11585))); let v2 = r14(x[8].wrapping_mul(6270).wrapping_add(x[24].wrapping_mul(-15137))); let v3 = r14(x[8].wrapping_mul(15137).wrapping_add(x[24].wrapping_mul(6270))); let v4 = v1.wrapping_add(v3); let v5 = v1.wrapping_sub(v3); let v6 = v0.wrapping_add(v2); let v7 = v0.wrapping_sub(v2); let v8 = r14(x[4].wrapping_mul(3196).wrapping_add(x[28].wrapping_mul(-16069))); let v9 = r14(x[4].wrapping_mul(16069).wrapping_add(x[28].wrapping_mul(3196))); let v10 = r14(x[20].wrapping_mul(13623).wrapping_add(x[12].wrapping_mul(-9102))); let v11 = r14(x[20].wrapping_mul(9102).wrapping_add(x[12].wrapping_mul(13623))); let v12 = v8.wrapping_add(v10); let v13 = v8.wrapping_sub(v10); let v14 = v9.wrapping_add(v11); let v15 = v9.wrapping_sub(v11); let v16 = r14(v15.wrapping_mul(11585).wrapping_add(v13.wrapping_mul(-11585))); let v17 = r14(v15.wrapping_mul(11585).wrapping_add(v13.wrapping_mul(11585))); let v18 = v4.wrapping_add(v14); let v19 = v4.wrapping_sub(v14); let v20 = v6.wrapping_add(v17); let v21 = v6.wrapping_sub(v17); let v22 = v7.wrapping_add(v16); let v23 = v7.wrapping_sub(v16); let v24 = v5.wrapping_add(v12); let v25 = v5.wrapping_sub(v12); let v26 = r14(x[2].wrapping_mul(1606).wrapping_add(x[30].wrapping_mul(-16305))); let v27 = r14(x[2].wrapping_mul(16305).wrapping_add(x[30].wrapping_mul(1606))); let v28 = r14(x[18].wrapping_mul(12665).wrapping_add(x[14].wrapping_mul(-10394))); let v29 = r14(x[18].wrapping_mul(10394).wrapping_add(x[14].wrapping_mul(12665))); let v30 = r14(x[10].wrapping_mul(7723).wrapping_add(x[22].wrapping_mul(-14449))); let v31 = r14(x[10].wrapping_mul(14449).wrapping_add(x[22].wrapping_mul(7723))); let v32 = r14(x[26].wrapping_mul(15679).wrapping_add(x[6].wrapping_mul(-4756))); let v33 = r14(x[26].wrapping_mul(4756).wrapping_add(x[6].wrapping_mul(15679))); let v34 = v26.wrapping_add(v28); let v35 = v26.wrapping_sub(v28); let v36 = v32.wrapping_add(v30); let v37 = v32.wrapping_sub(v30); let v38 = v33.wrapping_add(v31); let v39 = v33.wrapping_sub(v31); let v40 = v27.wrapping_add(v29); let v41 = v27.wrapping_sub(v29); let v42 = r14(v41.wrapping_mul(6270).wrapping_add(v35.wrapping_mul(-15137))); let v43 = r14(v41.wrapping_mul(15137).wrapping_add(v35.wrapping_mul(6270))); let v44 = r14(v37.wrapping_mul(-15137).wrapping_add(v39.wrapping_mul(6270))); let v45 = r14(v37.wrapping_mul(-6270).wrapping_add(v39.wrapping_mul(-15137))); let v46 = v34.wrapping_add(v36); let v47 = v34.wrapping_sub(v36); let v48 = v40.wrapping_add(v38); let v49 = v40.wrapping_sub(v38); let v50 = v42.wrapping_add(v45); let v51 = v42.wrapping_sub(v45); let v52 = v43.wrapping_add(v44); let v53 = v43.wrapping_sub(v44); let v54 = r14(v53.wrapping_mul(11585).wrapping_add(v51.wrapping_mul(-11585))); let v55 = r14(v53.wrapping_mul(11585).wrapping_add(v51.wrapping_mul(11585))); let v56 = r14(v49.wrapping_mul(11585).wrapping_add(v47.wrapping_mul(-11585))); let v57 = r14(v49.wrapping_mul(11585).wrapping_add(v47.wrapping_mul(11585))); let v58 = v18.wrapping_add(v48); let v59 = v18.wrapping_sub(v48); let v60 = v20.wrapping_add(v52); let v61 = v20.wrapping_sub(v52); let v62 = v22.wrapping_add(v55); let v63 = v22.wrapping_sub(v55); let v64 = v24.wrapping_add(v57); let v65 = v24.wrapping_sub(v57); let v66 = v25.wrapping_add(v56); let v67 = v25.wrapping_sub(v56); let v68 = v23.wrapping_add(v54); let v69 = v23.wrapping_sub(v54); let v70 = v21.wrapping_add(v50); let v71 = v21.wrapping_sub(v50); let v72 = v19.wrapping_add(v46); let v73 = v19.wrapping_sub(v46); let v74 = r14(x[1].wrapping_mul(804).wrapping_add(x[31].wrapping_mul(-16364))); let v75 = r14(x[1].wrapping_mul(16364).wrapping_add(x[31].wrapping_mul(804))); let v76 = r14(x[17].wrapping_mul(12140).wrapping_add(x[15].wrapping_mul(-11003))); let v77 = r14(x[17].wrapping_mul(11003).wrapping_add(x[15].wrapping_mul(12140))); let v78 = r14(x[9].wrapping_mul(7005).wrapping_add(x[23].wrapping_mul(-14811))); let v79 = r14(x[9].wrapping_mul(14811).wrapping_add(x[23].wrapping_mul(7005))); let v80 = r14(x[25].wrapping_mul(15426).wrapping_add(x[7].wrapping_mul(-5520))); let v81 = r14(x[25].wrapping_mul(5520).wrapping_add(x[7].wrapping_mul(15426))); let v82 = r14(x[5].wrapping_mul(3981).wrapping_add(x[27].wrapping_mul(-15893))); let v83 = r14(x[5].wrapping_mul(15893).wrapping_add(x[27].wrapping_mul(3981))); let v84 = r14(x[21].wrapping_mul(14053).wrapping_add(x[11].wrapping_mul(-8423))); let v85 = r14(x[21].wrapping_mul(8423).wrapping_add(x[11].wrapping_mul(14053))); let v86 = r14(x[13].wrapping_mul(9760).wrapping_add(x[19].wrapping_mul(-13160))); let v87 = r14(x[13].wrapping_mul(13160).wrapping_add(x[19].wrapping_mul(9760))); let v88 = r14(x[29].wrapping_mul(16207).wrapping_add(x[3].wrapping_mul(-2404))); let v89 = r14(x[29].wrapping_mul(2404).wrapping_add(x[3].wrapping_mul(16207))); let v90 = v74.wrapping_add(v76); let v91 = v74.wrapping_sub(v76); let v92 = v80.wrapping_add(v78); let v93 = v80.wrapping_sub(v78); let v94 = v82.wrapping_add(v84); let v95 = v82.wrapping_sub(v84); let v96 = v88.wrapping_add(v86); let v97 = v88.wrapping_sub(v86); let v98 = v89.wrapping_add(v87); let v99 = v89.wrapping_sub(v87); let v100 = v83.wrapping_add(v85); let v101 = v83.wrapping_sub(v85); let v102 = v81.wrapping_add(v79); let v103 = v81.wrapping_sub(v79); let v104 = v75.wrapping_add(v77); let v105 = v75.wrapping_sub(v77); let v106 = r14(v105.wrapping_mul(3196).wrapping_add(v91.wrapping_mul(-16069))); let v107 = r14(v105.wrapping_mul(16069).wrapping_add(v91.wrapping_mul(3196))); let v108 = r14(v97.wrapping_mul(-9102).wrapping_add(v99.wrapping_mul(13623))); let v109 = r14(v97.wrapping_mul(-13623).wrapping_add(v99.wrapping_mul(-9102))); let v110 = r14(v101.wrapping_mul(13623).wrapping_add(v95.wrapping_mul(-9102))); let v111 = r14(v101.wrapping_mul(9102).wrapping_add(v95.wrapping_mul(13623))); let v112 = r14(v93.wrapping_mul(-16069).wrapping_add(v103.wrapping_mul(3196))); let v113 = r14(v93.wrapping_mul(-3196).wrapping_add(v103.wrapping_mul(-16069))); let v114 = v90.wrapping_add(v92); let v115 = v90.wrapping_sub(v92); let v116 = v96.wrapping_add(v94); let v117 = v96.wrapping_sub(v94); let v118 = v98.wrapping_add(v100); let v119 = v98.wrapping_sub(v100); let v120 = v104.wrapping_add(v102); let v121 = v104.wrapping_sub(v102); let v122 = v106.wrapping_add(v113); let v123 = v106.wrapping_sub(v113); let v124 = v109.wrapping_add(v110); let v125 = v109.wrapping_sub(v110); let v126 = v108.wrapping_add(v111); let v127 = v108.wrapping_sub(v111); let v128 = v107.wrapping_add(v112); let v129 = v107.wrapping_sub(v112); let v130 = r14(v129.wrapping_mul(6270).wrapping_add(v123.wrapping_mul(-15137))); let v131 = r14(v129.wrapping_mul(15137).wrapping_add(v123.wrapping_mul(6270))); let v132 = r14(v125.wrapping_mul(-15137).wrapping_add(v127.wrapping_mul(6270))); let v133 = r14(v125.wrapping_mul(-6270).wrapping_add(v127.wrapping_mul(-15137))); let v134 = r14(v121.wrapping_mul(6270).wrapping_add(v115.wrapping_mul(-15137))); let v135 = r14(v121.wrapping_mul(15137).wrapping_add(v115.wrapping_mul(6270))); let v136 = r14(v117.wrapping_mul(-15137).wrapping_add(v119.wrapping_mul(6270))); let v137 = r14(v117.wrapping_mul(-6270).wrapping_add(v119.wrapping_mul(-15137))); let v138 = v114.wrapping_add(v116); let v139 = v114.wrapping_sub(v116); let v140 = v120.wrapping_add(v118); let v141 = v120.wrapping_sub(v118); let v142 = v122.wrapping_add(v124); let v143 = v122.wrapping_sub(v124); let v144 = v128.wrapping_add(v126); let v145 = v128.wrapping_sub(v126); let v146 = v130.wrapping_add(v133); let v147 = v130.wrapping_sub(v133); let v148 = v131.wrapping_add(v132); let v149 = v131.wrapping_sub(v132); let v150 = v134.wrapping_add(v137); let v151 = v134.wrapping_sub(v137); let v152 = v135.wrapping_add(v136); let v153 = v135.wrapping_sub(v136); let v154 = r14(v153.wrapping_mul(11585).wrapping_add(v151.wrapping_mul(-11585))); let v155 = r14(v153.wrapping_mul(11585).wrapping_add(v151.wrapping_mul(11585))); let v156 = r14(v149.wrapping_mul(11585).wrapping_add(v147.wrapping_mul(-11585))); let v157 = r14(v149.wrapping_mul(11585).wrapping_add(v147.wrapping_mul(11585))); let v158 = r14(v145.wrapping_mul(11585).wrapping_add(v143.wrapping_mul(-11585))); let v159 = r14(v145.wrapping_mul(11585).wrapping_add(v143.wrapping_mul(11585))); let v160 = r14(v141.wrapping_mul(11585).wrapping_add(v139.wrapping_mul(-11585))); let v161 = r14(v141.wrapping_mul(11585).wrapping_add(v139.wrapping_mul(11585))); let v162 = v58.wrapping_add(v140); let v163 = v58.wrapping_sub(v140); let v164 = v60.wrapping_add(v144); let v165 = v60.wrapping_sub(v144); let v166 = v62.wrapping_add(v148); let v167 = v62.wrapping_sub(v148); let v168 = v64.wrapping_add(v152); let v169 = v64.wrapping_sub(v152); let v170 = v66.wrapping_add(v155); let v171 = v66.wrapping_sub(v155); let v172 = v68.wrapping_add(v157); let v173 = v68.wrapping_sub(v157); let v174 = v70.wrapping_add(v159); let v175 = v70.wrapping_sub(v159); let v176 = v72.wrapping_add(v161); let v177 = v72.wrapping_sub(v161); let v178 = v73.wrapping_add(v160); let v179 = v73.wrapping_sub(v160); let v180 = v71.wrapping_add(v158); let v181 = v71.wrapping_sub(v158); let v182 = v69.wrapping_add(v156); let v183 = v69.wrapping_sub(v156); let v184 = v67.wrapping_add(v154); let v185 = v67.wrapping_sub(v154); let v186 = v65.wrapping_add(v150); let v187 = v65.wrapping_sub(v150); let v188 = v63.wrapping_add(v146); let v189 = v63.wrapping_sub(v146); let v190 = v61.wrapping_add(v142); let v191 = v61.wrapping_sub(v142); let v192 = v59.wrapping_add(v138); let v193 = v59.wrapping_sub(v138); [v162, v164, v166, v168, v170, v172, v174, v176, v178, v180, v182, v184, v186, v188, v190, v192, v193, v191, v189, v187, v185, v183, v181, v179, v177, v175, v173, v171, v169, v167, v165, v163] } #[inline(always)] pub fn iadst8(x: [$t; 8]) -> [$t; 8] { let v0 = x[7].wrapping_mul(1606).wrapping_add(x[0].wrapping_mul(-16305)); let v1 = x[7].wrapping_mul(16305).wrapping_add(x[0].wrapping_mul(1606)); let v2 = x[5].wrapping_mul(7723).wrapping_add(x[2].wrapping_mul(-14449)); let v3 = x[5].wrapping_mul(14449).wrapping_add(x[2].wrapping_mul(7723)); let v4 = x[3].wrapping_mul(12665).wrapping_add(x[4].wrapping_mul(-10394)); let v5 = x[3].wrapping_mul(10394).wrapping_add(x[4].wrapping_mul(12665)); let v6 = x[1].wrapping_mul(15679).wrapping_add(x[6].wrapping_mul(-4756)); let v7 = x[1].wrapping_mul(4756).wrapping_add(x[6].wrapping_mul(15679)); let v8 = r14(v1.wrapping_add(v5)); let v9 = r14(v1.wrapping_sub(v5)); let v10 = r14(v0.wrapping_add(v4)); let v11 = r14(v0.wrapping_sub(v4)); let v12 = r14(v3.wrapping_add(v7)); let v13 = r14(v3.wrapping_sub(v7)); let v14 = r14(v2.wrapping_add(v6)); let v15 = r14(v2.wrapping_sub(v6)); let v16 = v9.wrapping_mul(6270).wrapping_add(v11.wrapping_mul(-15137)); let v17 = v9.wrapping_mul(15137).wrapping_add(v11.wrapping_mul(6270)); let v18 = v15.wrapping_mul(15137).wrapping_add(v13.wrapping_mul(-6270)); let v19 = v15.wrapping_mul(6270).wrapping_add(v13.wrapping_mul(15137)); let v20 = r14(v17.wrapping_add(v18)); let v21 = r14(v17.wrapping_sub(v18)); let v22 = r14(v16.wrapping_add(v19)); let v23 = r14(v16.wrapping_sub(v19)); let v24 = v8.wrapping_add(v12); let v25 = v8.wrapping_sub(v12); let v26 = v10.wrapping_add(v14); let v27 = v10.wrapping_sub(v14); let v28 = r14(v25.wrapping_mul(11585).wrapping_add(v27.wrapping_mul(-11585))); let v29 = r14(v25.wrapping_mul(11585).wrapping_add(v27.wrapping_mul(11585))); let v30 = r14(v21.wrapping_mul(11585).wrapping_add(v23.wrapping_mul(-11585))); let v31 = r14(v21.wrapping_mul(11585).wrapping_add(v23.wrapping_mul(11585))); let v32 = v20.wrapping_neg(); let v33 = v29.wrapping_neg(); let v34 = v30.wrapping_neg(); let v35 = v26.wrapping_neg(); [v24, v32, v31, v33, v28, v34, v22, v35] } #[inline(always)] pub fn iadst16(x: [$t; 16]) -> [$t; 16] { let v0 = x[15].wrapping_mul(804).wrapping_add(x[0].wrapping_mul(-16364)); let v1 = x[15].wrapping_mul(16364).wrapping_add(x[0].wrapping_mul(804)); let v2 = x[13].wrapping_mul(3981).wrapping_add(x[2].wrapping_mul(-15893)); let v3 = x[13].wrapping_mul(15893).wrapping_add(x[2].wrapping_mul(3981)); let v4 = x[11].wrapping_mul(7005).wrapping_add(x[4].wrapping_mul(-14811)); let v5 = x[11].wrapping_mul(14811).wrapping_add(x[4].wrapping_mul(7005)); let v6 = x[9].wrapping_mul(9760).wrapping_add(x[6].wrapping_mul(-13160)); let v7 = x[9].wrapping_mul(13160).wrapping_add(x[6].wrapping_mul(9760)); let v8 = x[7].wrapping_mul(12140).wrapping_add(x[8].wrapping_mul(-11003)); let v9 = x[7].wrapping_mul(11003).wrapping_add(x[8].wrapping_mul(12140)); let v10 = x[5].wrapping_mul(14053).wrapping_add(x[10].wrapping_mul(-8423)); let v11 = x[5].wrapping_mul(8423).wrapping_add(x[10].wrapping_mul(14053)); let v12 = x[3].wrapping_mul(15426).wrapping_add(x[12].wrapping_mul(-5520)); let v13 = x[3].wrapping_mul(5520).wrapping_add(x[12].wrapping_mul(15426)); let v14 = x[1].wrapping_mul(16207).wrapping_add(x[14].wrapping_mul(-2404)); let v15 = x[1].wrapping_mul(2404).wrapping_add(x[14].wrapping_mul(16207)); let v16 = r14(v1.wrapping_add(v9)); let v17 = r14(v1.wrapping_sub(v9)); let v18 = r14(v0.wrapping_add(v8)); let v19 = r14(v0.wrapping_sub(v8)); let v20 = r14(v3.wrapping_add(v11)); let v21 = r14(v3.wrapping_sub(v11)); let v22 = r14(v2.wrapping_add(v10)); let v23 = r14(v2.wrapping_sub(v10)); let v24 = r14(v5.wrapping_add(v13)); let v25 = r14(v5.wrapping_sub(v13)); let v26 = r14(v4.wrapping_add(v12)); let v27 = r14(v4.wrapping_sub(v12)); let v28 = r14(v7.wrapping_add(v15)); let v29 = r14(v7.wrapping_sub(v15)); let v30 = r14(v6.wrapping_add(v14)); let v31 = r14(v6.wrapping_sub(v14)); let v32 = v17.wrapping_mul(3196).wrapping_add(v19.wrapping_mul(-16069)); let v33 = v17.wrapping_mul(16069).wrapping_add(v19.wrapping_mul(3196)); let v34 = v21.wrapping_mul(13623).wrapping_add(v23.wrapping_mul(-9102)); let v35 = v21.wrapping_mul(9102).wrapping_add(v23.wrapping_mul(13623)); let v36 = v25.wrapping_mul(16069).wrapping_add(v27.wrapping_mul(3196)); let v37 = v25.wrapping_mul(-3196).wrapping_add(v27.wrapping_mul(16069)); let v38 = v29.wrapping_mul(9102).wrapping_add(v31.wrapping_mul(13623)); let v39 = v29.wrapping_mul(-13623).wrapping_add(v31.wrapping_mul(9102)); let v40 = r14(v33.wrapping_add(v37)); let v41 = r14(v33.wrapping_sub(v37)); let v42 = r14(v32.wrapping_add(v36)); let v43 = r14(v32.wrapping_sub(v36)); let v44 = r14(v35.wrapping_add(v39)); let v45 = r14(v35.wrapping_sub(v39)); let v46 = r14(v34.wrapping_add(v38)); let v47 = r14(v34.wrapping_sub(v38)); let v48 = v16.wrapping_add(v24); let v49 = v16.wrapping_sub(v24); let v50 = v18.wrapping_add(v26); let v51 = v18.wrapping_sub(v26); let v52 = v20.wrapping_add(v28); let v53 = v20.wrapping_sub(v28); let v54 = v22.wrapping_add(v30); let v55 = v22.wrapping_sub(v30); let v56 = v49.wrapping_mul(6270).wrapping_add(v51.wrapping_mul(-15137)); let v57 = v49.wrapping_mul(15137).wrapping_add(v51.wrapping_mul(6270)); let v58 = v55.wrapping_mul(15137).wrapping_add(v53.wrapping_mul(-6270)); let v59 = v55.wrapping_mul(6270).wrapping_add(v53.wrapping_mul(15137)); let v60 = v41.wrapping_mul(6270).wrapping_add(v43.wrapping_mul(-15137)); let v61 = v41.wrapping_mul(15137).wrapping_add(v43.wrapping_mul(6270)); let v62 = v47.wrapping_mul(15137).wrapping_add(v45.wrapping_mul(-6270)); let v63 = v47.wrapping_mul(6270).wrapping_add(v45.wrapping_mul(15137)); let v64 = r14(v57.wrapping_add(v58)); let v65 = r14(v57.wrapping_sub(v58)); let v66 = r14(v61.wrapping_add(v62)); let v67 = r14(v61.wrapping_sub(v62)); let v68 = r14(v56.wrapping_add(v59)); let v69 = r14(v56.wrapping_sub(v59)); let v70 = r14(v60.wrapping_add(v63)); let v71 = r14(v60.wrapping_sub(v63)); let v72 = v48.wrapping_add(v52); let v73 = v48.wrapping_sub(v52); let v74 = v40.wrapping_add(v44); let v75 = v40.wrapping_sub(v44); let v76 = v50.wrapping_add(v54); let v77 = v50.wrapping_sub(v54); let v78 = v42.wrapping_add(v46); let v79 = v42.wrapping_sub(v46); let v80 = r14(v73.wrapping_mul(-11585).wrapping_add(v77.wrapping_mul(-11585))); let v81 = r14(v73.wrapping_mul(11585).wrapping_add(v77.wrapping_mul(-11585))); let v82 = r14(v65.wrapping_mul(11585).wrapping_add(v69.wrapping_mul(11585))); let v83 = r14(v65.wrapping_mul(-11585).wrapping_add(v69.wrapping_mul(11585))); let v84 = r14(v75.wrapping_mul(11585).wrapping_add(v79.wrapping_mul(11585))); let v85 = r14(v75.wrapping_mul(-11585).wrapping_add(v79.wrapping_mul(11585))); let v86 = r14(v67.wrapping_mul(-11585).wrapping_add(v71.wrapping_mul(-11585))); let v87 = r14(v67.wrapping_mul(11585).wrapping_add(v71.wrapping_mul(-11585))); let v88 = v74.wrapping_neg(); let v89 = v70.wrapping_neg(); let v90 = v64.wrapping_neg(); let v91 = v76.wrapping_neg(); [v72, v88, v66, v90, v82, v86, v84, v80, v81, v85, v87, v83, v68, v89, v78, v91] } }; } pub(crate) mod narrow { transforms_1d!(i32); } pub(crate) mod wide { transforms_1d!(i64); } /// The same butterflies on 4 / 8 columns at once (column pass of the 2D transforms). pub(crate) mod cols4 { transforms_1d!(crate::transform::Cols<4>); } pub(crate) mod cols8 { transforms_1d!(crate::transform::Cols<8>); }