lib/simd/src/root.zig

daab053ee43316e1809a84551d573ddd1e5bf3d2

  1 //! Portable SIMD vector types and hardware-accelerated numeric kernels. Target
  2 //! dispatch selects architecture-specific vector extensions at compile time or
  3 //! falls back to scalar loops.
  4 //!
  5 //! Operations declare distinct memory requirements: aligned load routines require
  6 //! natural lane alignment, while in-place kernels may permit or restrict buffer
  7 //! overlap. Callers must verify alignment and aliasing preconditions required by
  8 //! each specific kernel contract.
  9 
 10 pub const parity = @import("parity.zig");
 11 pub const upstream_revision = parity.upstream_revision;
 12 
 13 pub const tag = @import("tag.zig");
 14 pub const target = @import("target.zig");
 15 pub const topology = @import("topology/root.zig");
 16 pub const sort = @import("sort/root.zig");
 17 pub const thread = @import("thread/root.zig");
 18 pub const bfloat = @import("bfloat.zig");
 19 pub const construct = @import("construct.zig");
 20 pub const tuple = @import("tuple.zig");
 21 pub const memory = @import("memory.zig");
 22 pub const aligned = @import("aligned.zig");
 23 pub const print = @import("print.zig");
 24 pub const cache = @import("cache.zig");
 25 pub const indexed = @import("indexed.zig");
 26 pub const arithmetic = @import("arithmetic.zig");
 27 pub const multiply = @import("multiply.zig");
 28 pub const floating = @import("floating.zig");
 29 pub const precision = @import("precision.zig");
 30 pub const intdiv = @import("intdiv.zig");
 31 pub const math = @import("math.zig");
 32 pub const fastmath = @import("fastmath.zig");
 33 pub const algo = @import("algo.zig");
 34 pub const bitpack = @import("bitpack.zig");
 35 pub const dot = @import("dot.zig");
 36 pub const matmul = @import("matmul.zig");
 37 pub const matvec = @import("matvec.zig");
 38 pub const random = @import("random.zig");
 39 pub const image = @import("image/root.zig");
 40 pub const unroller = @import("unroller.zig");
 41 pub const bitset = @import("bitset.zig");
 42 pub const robust = @import("robust.zig");
 43 pub const stats = @import("stats.zig");
 44 pub const autotune = @import("autotune.zig");
 45 pub const hash = @import("hash.zig");
 46 pub const phast = @import("phast/root.zig");
 47 pub const cuckoo = @import("cuckoo/root.zig");
 48 pub const shardmul = @import("shardmul.zig");
 49 pub const cuckoo2x2 = @import("cuckoo2x2.zig");
 50 pub const complex = @import("complex.zig");
 51 pub const conditional = @import("conditional.zig");
 52 pub const crypto = @import("crypto.zig");
 53 pub const logical = @import("logical.zig");
 54 pub const compare = @import("compare.zig");
 55 pub const shift = @import("shift.zig");
 56 pub const rotate = @import("rotate.zig");
 57 pub const count = @import("count.zig");
 58 pub const sign = @import("sign.zig");
 59 pub const cast = @import("cast.zig");
 60 pub const lanes = @import("lanes.zig");
 61 pub const convert = @import("convert.zig");
 62 pub const swizzle = @import("swizzle.zig");
 63 pub const block = @import("block.zig");
 64 pub const table = @import("table.zig");
 65 pub const slide = @import("slide.zig");
 66 pub const compact = @import("compact.zig");
 67 pub const reduce = @import("reduce.zig");
 68 
 69 pub const maximum_vector_bytes = tag.maximum_vector_bytes;
 70 pub const FixedTag = tag.FixedTag;
 71 pub const Target = target.Target;
 72 pub const TargetMask = target.Mask;
 73 pub const TargetRuntime = target.Runtime;
 74 pub const TargetFunction = target.Function;
 75 pub const target_catalog = target.catalog;
 76 pub const static_target = target.static_target;
 77 pub const generated_targets = target.generated_targets;
 78 pub const targetName = target.targetName;
 79 pub const detectTargets = target.detectTargets;
 80 pub const supportedTargets = target.supportedTargets;
 81 pub const supportedAndGeneratedTargets = target.supportedAndGeneratedTargets;
 82 pub const disableTargets = target.disableTargets;
 83 pub const setSupportedTargetsForTest = target.setSupportedTargetsForTest;
 84 pub const dispatchedTarget = target.dispatchedTarget;
 85 pub const vectorBytes = target.vectorBytes;
 86 pub const haveInteger64 = target.haveInteger64;
 87 pub const haveFloat16 = target.haveFloat16;
 88 pub const haveFloat64 = target.haveFloat64;
 89 pub const selectTargetFunction = target.selectFunction;
 90 pub const max_logical_processors = topology.max_logical_processors;
 91 pub const LogicalProcessorSet = topology.LogicalProcessorSet;
 92 pub const ProcessorTopology = topology.Topology;
 93 pub const ProcessorCache = topology.Cache;
 94 pub const haveThreadingSupport = topology.haveThreadingSupport;
 95 pub const totalLogicalProcessors = topology.totalLogicalProcessors;
 96 pub const getThreadAffinity = topology.getThreadAffinity;
 97 pub const setThreadAffinity = topology.setThreadAffinity;
 98 pub const pinThreadToLogicalProcessor = topology.pinThreadToLogicalProcessor;
 99 pub const initProcessorTopology = topology.init;
100 pub const dataCaches = topology.dataCaches;
101 pub const SortDirection = sort.Direction;
102 pub const SortAscending = sort.SortAscending;
103 pub const SortDescending = sort.SortDescending;
104 pub const K32V32 = sort.K32V32;
105 pub const K64V64 = sort.K64V64;
106 pub const VQSortError = sort.Error;
107 pub const vqSort = sort.sort;
108 pub const vqPartialSort = sort.partialSort;
109 pub const vqSelect = sort.select;
110 pub const vqSortHaveFloat16 = sort.haveFloat16;
111 pub const vqSortHaveFloat64 = sort.haveFloat64;
112 pub const IndexRange = thread.IndexRange;
113 pub const IndexRangePartition = thread.IndexRangePartition;
114 pub const makeIndexRange = thread.makeIndexRange;
115 pub const WaitWord = thread.WaitWord;
116 pub const nanoSleep = thread.nanoSleep;
117 pub const blockUntilDifferent = thread.blockUntilDifferent;
118 pub const wakeAll = thread.wakeAll;
119 pub const SpinType = thread.SpinType;
120 pub const SpinResult = thread.SpinResult;
121 pub const SpinPause = thread.SpinPause;
122 pub const SpinMonitorX = thread.SpinMonitorX;
123 pub const SpinUMonitor = thread.SpinUMonitor;
124 pub const spinName = thread.spinName;
125 pub const detectSpin = thread.detectSpin;
126 pub const callWithSpin = thread.callWithSpin;
127 pub const PoolWaitMode = thread.PoolWaitMode;
128 pub const PoolWaitType = thread.PoolWaitType;
129 pub const poolWaitName = thread.poolWaitName;
130 pub const PoolConfig = thread.PoolConfig;
131 pub const PoolWorkerMapping = thread.PoolWorkerMapping;
132 pub const ShuffledIota = thread.ShuffledIota;
133 pub const PoolCaller = thread.PoolCaller;
134 pub const PoolCallerStats = thread.PoolCallerStats;
135 pub const PoolStats = thread.PoolStats;
136 pub const ThreadPool = thread.ThreadPool;
137 pub const addPoolCaller = thread.addCaller;
138 pub const poolCallerName = thread.callerName;
139 pub const max_pool_threads = thread.max_pool_threads;
140 pub const max_pool_workers = thread.max_pool_workers;
141 pub const max_pool_clusters = thread.max_pool_clusters;
142 pub const all_pool_clusters = thread.all_pool_clusters;
143 pub const BFloat16 = bfloat.BFloat16;
144 pub const BFloat16Tag = bfloat.Tag;
145 pub const bf16FromF32 = BFloat16.fromF32;
146 pub const bf16FromF64 = BFloat16.fromF64;
147 pub const f32FromBF16 = BFloat16.toF32;
148 pub const ScalableTag = tag.ScalableTag;
149 pub const ScalableTagPow2 = tag.ScalableTagPow2;
150 pub const CappedTag = tag.CappedTag;
151 pub const CappedTagPow2 = tag.CappedTagPow2;
152 pub const CappedTagIfFixed = tag.CappedTagIfFixed;
153 pub const CappedTagIfFixedPow2 = tag.CappedTagIfFixedPow2;
154 pub const Full16 = tag.Full16;
155 pub const Full32 = tag.Full32;
156 pub const Full64 = tag.Full64;
157 pub const Full128 = tag.Full128;
158 pub const TFromD = tag.TFromD;
159 pub const DFromV = tag.DFromV;
160 pub const TFromV = tag.TFromV;
161 pub const VFromD = tag.VFromD;
162 pub const MFromD = tag.MFromD;
163 pub const Vec = tag.Vec;
164 pub const Mask = tag.Mask;
165 pub const maxLanes = tag.maxLanes;
166 pub const laneCount = tag.laneCount;
167 pub const maxBytes = tag.maxBytes;
168 pub const maxBlocks = tag.maxBlocks;
169 pub const pow2 = tag.pow2;
170 pub const Rebind = tag.Rebind;
171 pub const RebindToSigned = tag.RebindToSigned;
172 pub const RebindToUnsigned = tag.RebindToUnsigned;
173 pub const RebindToFloat = tag.RebindToFloat;
174 pub const Repartition = tag.Repartition;
175 pub const RepartitionToWide = tag.RepartitionToWide;
176 pub const RepartitionToNarrow = tag.RepartitionToNarrow;
177 pub const RepartitionToWideX2 = tag.RepartitionToWideX2;
178 pub const RepartitionToWideX3 = tag.RepartitionToWideX3;
179 pub const Half = tag.Half;
180 pub const Twice = tag.Twice;
181 pub const BlockDFromD = tag.BlockDFromD;
182 pub const MakeUnsigned = tag.MakeUnsigned;
183 pub const MakeSigned = tag.MakeSigned;
184 pub const MakeFloat = tag.MakeFloat;
185 pub const MakeWide = tag.MakeWide;
186 pub const MakeNarrow = tag.MakeNarrow;
187 pub const UnsignedFromSize = tag.UnsignedFromSize;
188 pub const SignedFromSize = tag.SignedFromSize;
189 pub const FloatFromSize = tag.FloatFromSize;
190 pub const isLane = tag.isLane;
191 pub const isIntegerLane = tag.isIntegerLane;
192 pub const isSpecialFloat = tag.isSpecialFloat;
193 pub const isFloat3264 = tag.isFloat3264;
194 pub const isFloat = tag.isFloat;
195 pub const isSigned = tag.isSigned;
196 pub const isUnsigned = tag.isUnsigned;
197 
198 pub const zero = construct.zero;
199 pub const set = construct.set;
200 pub const @"undefined" = construct.undefined;
201 pub const undefinedVector = construct.undefined;
202 pub const dup128VecFromValues = construct.dup128VecFromValues;
203 pub const maskedSetOr = construct.maskedSetOr;
204 pub const maskedSet = construct.maskedSet;
205 pub const inf = construct.inf;
206 pub const nan = construct.nan;
207 pub const iota = construct.iota;
208 pub const firstN = construct.firstN;
209 pub const lane = construct.lane;
210 pub const getLane = construct.lane;
211 pub const insertLane = construct.insertLane;
212 
213 pub const create2 = tuple.create2;
214 pub const create3 = tuple.create3;
215 pub const create4 = tuple.create4;
216 pub const get2 = tuple.get2;
217 pub const get3 = tuple.get3;
218 pub const get4 = tuple.get4;
219 pub const set2 = tuple.set2;
220 pub const set3 = tuple.set3;
221 pub const set4 = tuple.set4;
222 
223 pub const load = memory.load;
224 pub const loadU = memory.load;
225 pub const store = memory.store;
226 pub const storeU = memory.store;
227 pub const loadN = memory.loadN;
228 pub const loadNOr = memory.loadNOr;
229 pub const storeN = memory.storeN;
230 pub const loadDup128 = memory.loadDup128;
231 pub const maskedLoadOr = memory.maskedLoadOr;
232 pub const maskedLoad = memory.maskedLoad;
233 pub const insertIntoUpper = memory.insertIntoUpper;
234 pub const safeFillN = memory.safeFillN;
235 pub const safeCopyN = memory.safeCopyN;
236 pub const truncateStore = memory.truncateStore;
237 pub const blendedStore = memory.blendedStore;
238 pub const loadInterleaved2 = memory.loadInterleaved2;
239 pub const loadInterleaved3 = memory.loadInterleaved3;
240 pub const loadInterleaved4 = memory.loadInterleaved4;
241 pub const storeInterleaved2 = memory.storeInterleaved2;
242 pub const storeInterleaved3 = memory.storeInterleaved3;
243 pub const storeInterleaved4 = memory.storeInterleaved4;
244 pub const stream = memory.stream;
245 pub const alignment = aligned.alignment;
246 pub const isAligned = aligned.isAligned;
247 pub const isAlignedTo = aligned.isAlignedTo;
248 pub const isDescriptorAligned = aligned.isDescriptorAligned;
249 pub const AlignedAllocation = aligned.Allocation;
250 pub const AlignedVector = aligned.Vector;
251 pub const AlignedLayout = aligned.Layout;
252 pub const AlignedView = aligned.View;
253 pub const AlignedArray = aligned.Array;
254 pub const DiagnosticWindow = print.Window;
255 pub const writeTypeName = print.writeTypeName;
256 pub const writeLaneValue = print.writeValue;
257 pub const writeLaneArray = print.writeArray;
258 pub const writeVector = print.writeVector;
259 pub const stream_multiple = cache.stream_multiple;
260 pub const loadFence = cache.loadFence;
261 pub const streamCacheLine = cache.streamCacheLine;
262 pub const flushStream = cache.flushStream;
263 pub const flushCacheline = cache.flushCacheline;
264 pub const prefetch = cache.prefetch;
265 pub const pause = cache.pause;
266 
267 pub const scatterOffset = indexed.scatterOffset;
268 pub const scatterIndex = indexed.scatterIndex;
269 pub const scatterIndexN = indexed.scatterIndexN;
270 pub const maskedScatterIndex = indexed.maskedScatterIndex;
271 pub const gatherOffset = indexed.gatherOffset;
272 pub const gatherIndex = indexed.gatherIndex;
273 pub const gatherIndexN = indexed.gatherIndexN;
274 pub const gatherIndexNOr = indexed.gatherIndexNOr;
275 pub const maskedGatherIndexOr = indexed.maskedGatherIndexOr;
276 pub const maskedGatherIndex = indexed.maskedGatherIndex;
277 
278 pub const add = arithmetic.add;
279 pub const sub = arithmetic.sub;
280 pub const mul = arithmetic.mul;
281 pub const addSub = arithmetic.addSub;
282 pub const neg = arithmetic.neg;
283 pub const saturatedNeg = arithmetic.saturatedNeg;
284 pub const abs = arithmetic.abs;
285 pub const saturatedAbs = arithmetic.saturatedAbs;
286 pub const absDiff = arithmetic.absDiff;
287 pub const saturatedAdd = arithmetic.saturatedAdd;
288 pub const saturatedSub = arithmetic.saturatedSub;
289 pub const div = arithmetic.div;
290 pub const mod = arithmetic.mod;
291 pub const min = arithmetic.min;
292 pub const max = arithmetic.max;
293 pub const minNumber = arithmetic.minNumber;
294 pub const maxNumber = arithmetic.maxNumber;
295 pub const minMagnitude = arithmetic.minMagnitude;
296 pub const maxMagnitude = arithmetic.maxMagnitude;
297 pub const min128 = arithmetic.min128;
298 pub const max128 = arithmetic.max128;
299 pub const min128Upper = arithmetic.min128Upper;
300 pub const max128Upper = arithmetic.max128Upper;
301 pub const clamp = arithmetic.clamp;
302 pub const mulAdd = arithmetic.mulAdd;
303 pub const negMulAdd = arithmetic.negMulAdd;
304 pub const mulSub = arithmetic.mulSub;
305 pub const negMulSub = arithmetic.negMulSub;
306 pub const mulAddSub = arithmetic.mulAddSub;
307 pub const mulSubAdd = arithmetic.mulSubAdd;
308 pub const maskedMinOr = arithmetic.maskedMinOr;
309 pub const maskedMaxOr = arithmetic.maskedMaxOr;
310 pub const maskedAddOr = arithmetic.maskedAddOr;
311 pub const maskedSubOr = arithmetic.maskedSubOr;
312 pub const maskedMulOr = arithmetic.maskedMulOr;
313 pub const maskedDivOr = arithmetic.maskedDivOr;
314 pub const maskedModOr = arithmetic.maskedModOr;
315 pub const maskedSatAddOr = arithmetic.maskedSatAddOr;
316 pub const maskedSatSubOr = arithmetic.maskedSatSubOr;
317 pub const maskedAbsOr = arithmetic.maskedAbsOr;
318 pub const maskedMulAddOr = arithmetic.maskedMulAddOr;
319 pub const maskedMulSubOr = arithmetic.maskedMulSubOr;
320 pub const maskedNegMulAddOr = arithmetic.maskedNegMulAddOr;
321 pub const maskedNegMulSubOr = arithmetic.maskedNegMulSubOr;
322 pub const maskedAbs = arithmetic.maskedAbs;
323 pub const maskedMax = arithmetic.maskedMax;
324 pub const maskedAdd = arithmetic.maskedAdd;
325 pub const maskedSub = arithmetic.maskedSub;
326 pub const maskedMul = arithmetic.maskedMul;
327 pub const maskedDiv = arithmetic.maskedDiv;
328 pub const maskedSaturatedAdd = arithmetic.maskedSaturatedAdd;
329 pub const maskedSaturatedSub = arithmetic.maskedSaturatedSub;
330 pub const maskedMulAdd = arithmetic.maskedMulAdd;
331 pub const maskedMulSub = arithmetic.maskedMulSub;
332 pub const maskedNegMulAdd = arithmetic.maskedNegMulAdd;
333 pub const maskedNegMulSub = arithmetic.maskedNegMulSub;
334 pub const pairwiseAdd = arithmetic.pairwiseAdd;
335 pub const pairwiseSub = arithmetic.pairwiseSub;
336 pub const pairwiseAdd128 = arithmetic.pairwiseAdd128;
337 pub const pairwiseSub128 = arithmetic.pairwiseSub128;
338 
339 pub const mulRound = multiply.mulRound;
340 pub const mulByPow2 = multiply.mulByPow2;
341 pub const mulByFloorPow2 = multiply.mulByFloorPow2;
342 pub const mulHigh = multiply.mulHigh;
343 pub const mulFixedPoint15 = multiply.mulFixedPoint15;
344 pub const mulEven = multiply.mulEven;
345 pub const mulOdd = multiply.mulOdd;
346 pub const widenMulPairwiseAdd = multiply.widenMulPairwiseAdd;
347 pub const maskedWidenMulPairwiseAdd = multiply.maskedWidenMulPairwiseAdd;
348 pub const satWidenMulPairwiseAdd = multiply.satWidenMulPairwiseAdd;
349 pub const satWidenMulPairwiseAccumulate = multiply.satWidenMulPairwiseAccumulate;
350 pub const satWidenMulAccumFixedPoint = multiply.satWidenMulAccumFixedPoint;
351 pub const reorderWidenMulAccumulate = multiply.reorderWidenMulAccumulate;
352 pub const rearrangeToOddPlusEven = multiply.rearrangeToOddPlusEven;
353 pub const sumOfMulQuadAccumulate = multiply.sumOfMulQuadAccumulate;
354 pub const widenMulAccumulate = multiply.widenMulAccumulate;
355 pub const maskedMulFixedPoint15 = multiply.maskedMulFixedPoint15;
356 pub const mulEvenAdd = bfloat.mulEvenAdd;
357 pub const mulOddAdd = bfloat.mulOddAdd;
358 pub const bfloatWidenMulPairwiseAdd = bfloat.widenMulPairwiseAdd;
359 pub const maskedBFloatWidenMulPairwiseAdd = bfloat.maskedWidenMulPairwiseAdd;
360 pub const reorderBFloatWidenMulAccumulate = bfloat.reorderWidenMulAccumulate;
361 pub const rearrangeBFloatToOddPlusEven = bfloat.rearrangeToOddPlusEven;
362 
363 pub const sqrt = floating.sqrt;
364 pub const approximateReciprocalSqrt = floating.approximateReciprocalSqrt;
365 pub const approximateReciprocal = floating.approximateReciprocal;
366 pub const getExponent = floating.getExponent;
367 pub const getBiasedExponent = floating.getBiasedExponent;
368 pub const round = floating.round;
369 pub const trunc = floating.trunc;
370 pub const ceil = floating.ceil;
371 pub const floor = floating.floor;
372 pub const maskedSqrtOr = floating.maskedSqrtOr;
373 pub const maskedSqrt = floating.maskedSqrt;
374 pub const maskedApproximateReciprocalSqrt = floating.maskedApproximateReciprocalSqrt;
375 pub const maskedApproximateReciprocal = floating.maskedApproximateReciprocal;
376 
377 pub const twoSumScalar = precision.twoSumScalar;
378 pub const twoProducts = precision.twoProducts;
379 pub const twoSums = precision.twoSums;
380 pub const fastTwoSums = precision.fastTwoSums;
381 pub const updateCascadedSums = precision.updateCascadedSums;
382 pub const assimilateCascadedSums = precision.assimilateCascadedSums;
383 pub const reduceCascadedSums = precision.reduceCascadedSums;
384 pub const ddAdd = precision.ddAdd;
385 pub const ddMul1 = precision.ddMul1;
386 pub const ddMul2 = precision.ddMul2;
387 pub const ddDiv = precision.ddDiv;
388 
389 pub const DivisorParamsU = intdiv.DivisorParamsU;
390 pub const DivisorParamsS = intdiv.DivisorParamsS;
391 pub const DivisorParams = intdiv.DivisorParams;
392 pub const ScalarDivisor = intdiv.ScalarDivisor;
393 pub const Divisor = intdiv.Divisor;
394 pub const Divisor64 = intdiv.Divisor64;
395 pub const computeDivisorParams = intdiv.computeDivisorParams;
396 pub const intDiv = intdiv.intDiv;
397 pub const intDivFloor = intdiv.intDivFloor;
398 pub const divideByScalar = intdiv.divideByScalar;
399 pub const floorDivideByScalar = intdiv.floorDivideByScalar;
400 pub const divideArrayByScalar = intdiv.divideArrayByScalar;
401 pub const floorDivideArrayByScalar = intdiv.floorDivideArrayByScalar;
402 pub const div128HighBy = intdiv.div128HighBy;
403 
404 pub const acos = math.acos;
405 pub const acosh = math.acosh;
406 pub const asin = math.asin;
407 pub const asinh = math.asinh;
408 pub const atan = math.atan;
409 pub const atanh = math.atanh;
410 pub const atan2 = math.atan2;
411 pub const cbrt = math.cbrt;
412 pub const cbrtNormal = math.cbrtNormal;
413 pub const cos = math.cos;
414 pub const tan = math.tan;
415 pub const erf = math.erf;
416 pub const exp = math.exp;
417 pub const exp2 = math.exp2;
418 pub const expm1 = math.expm1;
419 pub const log = math.log;
420 pub const log10 = math.log10;
421 pub const log1p = math.log1p;
422 pub const log2 = math.log2;
423 pub const sin = math.sin;
424 pub const sinh = math.sinh;
425 pub const cosh = math.cosh;
426 pub const tanh = math.tanh;
427 pub const tgamma = math.tgamma;
428 pub const logGamma = math.logGamma;
429 pub const sinCos = math.sinCos;
430 pub const hypot = math.hypot;
431 pub const pow = math.pow;
432 
433 pub const fastTan = fastmath.fastTan;
434 pub const fastAtan = fastmath.fastAtan;
435 pub const fastAtanPositive = fastmath.fastAtanPositive;
436 pub const fastAtan2 = fastmath.fastAtan2;
437 pub const fastTanh = fastmath.fastTanh;
438 pub const fastLog = fastmath.fastLog;
439 pub const fastExp = fastmath.fastExp;
440 pub const fastExp2 = fastmath.fastExp2;
441 pub const fastExpMinusOrZero = fastmath.fastExpMinusOrZero;
442 pub const fastLog2 = fastmath.fastLog2;
443 pub const fastLog10 = fastmath.fastLog10;
444 pub const fastLog1p = fastmath.fastLog1p;
445 pub const fastPow = fastmath.fastPow;
446 pub const fastExpNormal = fastmath.fastExpNormal;
447 pub const fastExp2Normal = fastmath.fastExp2Normal;
448 pub const fastLogPositiveNormal = fastmath.fastLogPositiveNormal;
449 pub const fastLog2PositiveNormal = fastmath.fastLog2PositiveNormal;
450 pub const fastLog10PositiveNormal = fastmath.fastLog10PositiveNormal;
451 pub const fastLog1pPositiveNormal = fastmath.fastLog1pPositiveNormal;
452 pub const fastPowNormal = fastmath.fastPowNormal;
453 
454 pub const fill = algo.fill;
455 pub const copy = algo.copy;
456 pub const copyIf = algo.copyIf;
457 pub const countValue = algo.count;
458 pub const countIf = algo.countIf;
459 pub const find = algo.find;
460 pub const findIf = algo.findIf;
461 pub const equal = algo.equal;
462 pub const allEqual = algo.allEqual;
463 pub const mismatch = algo.mismatch;
464 pub const order = algo.order;
465 pub const unique = algo.unique;
466 pub const allUnique = algo.allUnique;
467 pub const minValue = algo.minValue;
468 pub const maxValue = algo.maxValue;
469 pub const isSorted = algo.isSorted;
470 pub const isSortedBy = algo.isSortedBy;
471 pub const generate = algo.generate;
472 pub const foreach = algo.foreach;
473 pub const transform = algo.transform;
474 pub const transform1 = algo.transform1;
475 pub const transform2 = algo.transform2;
476 pub const replace = algo.replace;
477 pub const replaceIf = algo.replaceIf;
478 
479 pub const BlockPackingType = bitpack.BlockPackingType;
480 pub const Pack8 = bitpack.Pack8;
481 pub const Pack16 = bitpack.Pack16;
482 pub const Pack32 = bitpack.Pack32;
483 pub const Pack64 = bitpack.Pack64;
484 pub const packBits = bitpack.pack;
485 pub const unpackBits = bitpack.unpack;
486 pub const packBitsFrame = bitpack.packFrame;
487 pub const unpackBitsFrame = bitpack.unpackFrame;
488 
489 pub const DotAssumptions = dot.Assumptions;
490 pub const dotProduct = dot.compute;
491 pub const dotProductAssume = dot.computeAssume;
492 pub const dotBFloat16 = dot.computeBFloat;
493 pub const dotBFloat16Assume = dot.computeBFloatAssume;
494 pub const dotF32BFloat16 = dot.computeF32BFloat;
495 pub const dotF32BFloat16Assume = dot.computeF32BFloatAssume;
496 
497 pub const perBlock2x2MatMul = matmul.perBlock2x2MatMul;
498 
499 pub const matVec = matvec.compute;
500 pub const matVecAdd = matvec.computeAdd;
501 pub const matVecBFloatF32 = matvec.computeBFloatF32;
502 pub const matVecBFloatF32Add = matvec.computeBFloatF32Add;
503 pub const matVecBFloat16 = matvec.computeBFloat;
504 pub const matVecBFloat16Add = matvec.computeBFloatAdd;
505 
506 pub const SplitMix64 = random.SplitMix64;
507 pub const Xoshiro = random.Xoshiro;
508 pub const VectorXoshiro = random.VectorXoshiro;
509 pub const CachedXoshiro = random.CachedXoshiro;
510 pub const DefaultCachedXoshiro = random.DefaultCachedXoshiro;
511 pub const AesCtrEngine = random.AesCtrEngine;
512 pub const RngStream = random.RngStream;
513 pub const randomNormalizedFloat = random.randomNormalizedFloat;
514 pub const fillRandom = random.fillRandom;
515 
516 pub const imageVectorSize = image.vectorSize;
517 pub const imageBytesPerRow = image.bytesPerRow;
518 pub const imageBytesPerRowFor = image.bytesPerRowFor;
519 pub const ImageGeometryError = image.GeometryError;
520 pub const ImageError = image.Error;
521 pub const Image = image.Image;
522 pub const ImageF = image.ImageF;
523 pub const Image3 = image.Image3;
524 pub const Image3F = image.Image3F;
525 pub const Rect = image.Rect;
526 pub const sameSize = image.sameSize;
527 pub const mirror = image.mirror;
528 pub const WrapMirror = image.WrapMirror;
529 pub const WrapUnchanged = image.WrapUnchanged;
530 pub const WrapRowMirror = image.WrapRowMirror;
531 pub const WrapRowUnchanged = image.WrapRowUnchanged;
532 
533 pub const UnrollerUnit = unroller.UnrollerUnit;
534 pub const UnrollerUnit2D = unroller.UnrollerUnit2D;
535 pub const unroll = unroller.unroll;
536 pub const unroll2 = unroller.unroll2;
537 
538 pub const BitSet64 = bitset.BitSet64;
539 pub const BitSet = bitset.BitSet;
540 pub const AtomicBitSet = bitset.AtomicBitSet;
541 pub const BitSet4096 = bitset.BitSet4096;
542 pub const DefaultBitSet4096 = bitset.DefaultBitSet4096;
543 
544 pub const RobustError = robust.Error;
545 pub const max_robust_array_scratch_bytes = robust.max_array_scratch_bytes;
546 pub const CountingSortEntry = robust.CountingSortEntry;
547 pub const countingSort = robust.countingSort;
548 pub const countingSortArray = robust.countingSortArray;
549 pub const minRange = robust.minRange;
550 pub const modeOfSorted = robust.modeOfSorted;
551 pub const mode = robust.mode;
552 pub const modeArray = robust.modeArray;
553 pub const median = robust.median;
554 pub const medianArray = robust.medianArray;
555 pub const medianAbsoluteDeviation = robust.medianAbsoluteDeviation;
556 pub const medianAbsoluteDeviationArray = robust.medianAbsoluteDeviationArray;
557 
558 pub const Bins = stats.Bins;
559 pub const TypedBins = stats.TypedBins;
560 pub const Stats = stats.Stats;
561 pub const CostDistribution = autotune.CostDistribution;
562 pub const NextWithSkip = autotune.NextWithSkip;
563 pub const AutoTune = autotune.AutoTune;
564 
565 pub const MaskedWeakTwoMul = hash.MaskedWeakTwoMul;
566 pub const WeakTwoMul = hash.WeakTwoMul;
567 pub const lemireMod = hash.lemireMod;
568 pub const MaskedTriple32 = hash.MaskedTriple32;
569 pub const Triple32 = hash.Triple32;
570 pub const MaskedMoremur = hash.MaskedMoremur;
571 pub const Moremur = hash.Moremur;
572 pub const hashArrayInPlace = hash.hashArrayInPlace;
573 pub const hashArray = hash.hashArray;
574 pub const fillRandomDistinct = hash.fillRandomDistinct;
575 
576 pub const PhastError = phast.PhastError;
577 pub const PhastPlacement = phast.PhastPlacement;
578 pub const PhastConfig = phast.PhastConfig;
579 pub const PhastSeeds = phast.PhastSeeds;
580 pub const PhastData = phast.PhastData;
581 pub const Phast = phast.Phast;
582 pub const PhastVectorPair = phast.PhastVectorPair;
583 pub const phastPositionFromHashAndSeed = phast.phastPositionFromHashAndSeed;
584 pub const phastPositionPairFromHashesAndSeeds = phast.phastPositionPairFromHashesAndSeeds;
585 pub const PhastBuildPlan = phast.PhastBuildPlan;
586 pub const phastScratchLen = phast.phastScratchLen;
587 pub const phastSeedsLen = phast.phastSeedsLen;
588 pub const buildPhast = phast.buildPhast;
589 
590 pub const CuckooFamily = cuckoo.CuckooFamily;
591 pub const DefaultCuckoo = cuckoo.DefaultCuckoo;
592 pub const CuckooConfig = cuckoo.CuckooConfig;
593 pub const CuckooTable = cuckoo.CuckooTable;
594 pub const CuckooConfigError = cuckoo.CuckooConfigError;
595 pub const CuckooTableError = cuckoo.CuckooTableError;
596 pub const CuckooBuildError = cuckoo.CuckooBuildError;
597 pub const CuckooBuildStats = cuckoo.CuckooBuildStats;
598 pub const CuckooBuildAlgo = cuckoo.CuckooBuildAlgo;
599 pub const CuckooBuildPlan = cuckoo.CuckooBuildPlan;
600 pub const CuckooBuilder = cuckoo.CuckooBuilder;
601 pub const CuckooOptimizedBuildPlan = cuckoo.CuckooOptimizedBuildPlan;
602 pub const CuckooOptimizer = cuckoo.CuckooOptimizer;
603 pub const CuckooLocalBuildPlan = cuckoo.CuckooLocalBuildPlan;
604 pub const CuckooLocalSearch = cuckoo.CuckooLocalSearch;
605 pub const cuckooScratchLen = cuckoo.cuckooScratchLen;
606 pub const cuckooOptimizedScratchLen = cuckoo.cuckooOptimizedScratchLen;
607 pub const cuckooLocalScratchLen = cuckoo.cuckooLocalScratchLen;
608 pub const cuckooSlotsLen = cuckoo.cuckooSlotsLen;
609 pub const buildCuckoo = cuckoo.buildCuckoo;
610 
611 pub const Cuckoo2x2Config = cuckoo2x2.Cuckoo2x2Config;
612 pub const Cuckoo2x2Data = cuckoo2x2.Cuckoo2x2Data;
613 pub const Cuckoo2x2 = cuckoo2x2.Cuckoo2x2;
614 pub const Cuckoo2x2BuildError = cuckoo2x2.Cuckoo2x2BuildError;
615 pub const Cuckoo2x2Plan = cuckoo2x2.Cuckoo2x2Plan;
616 pub const cuckoo2x2ScratchLen = cuckoo2x2.cuckoo2x2ScratchLen;
617 pub const cuckoo2x2EntriesLen = cuckoo2x2.cuckoo2x2EntriesLen;
618 pub const buildCuckoo2x2 = cuckoo2x2.buildCuckoo2x2;
619 pub const makeCuckoo2x2 = cuckoo2x2.makeCuckoo2x2;
620 
621 pub const ShardMulData = shardmul.ShardMulData;
622 pub const ShardMul = shardmul.ShardMul;
623 pub const ShardMulBuildError = shardmul.ShardMulBuildError;
624 pub const ShardMulPlan = shardmul.ShardMulPlan;
625 pub const shardMulScratchLen = shardmul.shardMulScratchLen;
626 pub const buildShardMul = shardmul.buildShardMul;
627 pub const makeShardMul = shardmul.makeShardMul;
628 
629 pub const complexConj = complex.complexConj;
630 pub const mulComplex = complex.mulComplex;
631 pub const mulComplexConj = complex.mulComplexConj;
632 pub const mulComplexAdd = complex.mulComplexAdd;
633 pub const mulComplexConjAdd = complex.mulComplexConjAdd;
634 pub const maskedMulComplexConjAdd = complex.maskedMulComplexConjAdd;
635 pub const maskedMulComplexConj = complex.maskedMulComplexConj;
636 pub const maskedMulComplexOr = complex.maskedMulComplexOr;
637 
638 pub const ifThenElse = conditional.ifThenElse;
639 pub const ifThenElseZero = conditional.ifThenElseZero;
640 pub const ifThenZeroElse = conditional.ifThenZeroElse;
641 pub const ifVecThenElse = conditional.ifVecThenElse;
642 pub const bitwiseIfThenElse = conditional.bitwiseIfThenElse;
643 pub const zeroIfNegative = conditional.zeroIfNegative;
644 pub const ifNegativeThenElse = conditional.ifNegativeThenElse;
645 pub const ifNegativeThenElseZero = conditional.ifNegativeThenElseZero;
646 pub const ifNegativeThenZeroElse = conditional.ifNegativeThenZeroElse;
647 pub const ifNegativeThenNegOrUndefIfZero = conditional.ifNegativeThenNegOrUndefIfZero;
648 
649 pub const aesRound = crypto.aesRound;
650 pub const aesLastRound = crypto.aesLastRound;
651 pub const aesRoundInv = crypto.aesRoundInv;
652 pub const aesLastRoundInv = crypto.aesLastRoundInv;
653 pub const aesInvMixColumns = crypto.aesInvMixColumns;
654 pub const aesKeyGenAssist = crypto.aesKeyGenAssist;
655 pub const clMulLower = crypto.clMulLower;
656 pub const clMulUpper = crypto.clMulUpper;
657 
658 pub const bitNot = logical.bitNot;
659 pub const not = logical.bitNot;
660 pub const bitAnd = logical.bitAnd;
661 pub const @"and" = logical.bitAnd;
662 pub const andNot = logical.andNot;
663 pub const bitOr = logical.bitOr;
664 pub const @"or" = logical.bitOr;
665 pub const bitXor = logical.bitXor;
666 pub const xor = logical.bitXor;
667 pub const or3 = logical.or3;
668 pub const xor3 = logical.xor3;
669 pub const orAnd = logical.orAnd;
670 pub const xorAndNot = logical.xorAndNot;
671 pub const andXor = logical.andXor;
672 pub const maskedOrOr = logical.maskedOrOr;
673 pub const maskedOr = logical.maskedOr;
674 pub const maskedXorOr = logical.maskedXorOr;
675 pub const maskedXor = logical.maskedXor;
676 pub const testBit = logical.testBit;
677 pub const allBitsZero = logical.allBitsZero;
678 pub const allBitsOne = logical.allBitsOne;
679 pub const allBits0 = logical.allBitsZero;
680 pub const allBits1 = logical.allBitsOne;
681 
682 pub const eq = compare.eq;
683 pub const ne = compare.ne;
684 pub const lt = compare.lt;
685 pub const le = compare.le;
686 pub const gt = compare.gt;
687 pub const ge = compare.ge;
688 pub const lt128 = compare.lt128;
689 pub const lt128Upper = compare.lt128Upper;
690 pub const eq128 = compare.eq128;
691 pub const ne128 = compare.ne128;
692 pub const eq128Upper = compare.eq128Upper;
693 pub const ne128Upper = compare.ne128Upper;
694 pub const isNegative = compare.isNegative;
695 pub const isNaN = compare.isNaN;
696 pub const isEitherNaN = compare.isEitherNaN;
697 pub const isInf = compare.isInf;
698 pub const isFinite = compare.isFinite;
699 pub const maskedEq = compare.maskedEq;
700 pub const maskedNe = compare.maskedNe;
701 pub const maskedLt = compare.maskedLt;
702 pub const maskedLe = compare.maskedLe;
703 pub const maskedGt = compare.maskedGt;
704 pub const maskedGe = compare.maskedGe;
705 pub const maskedIsNaN = compare.maskedIsNaN;
706 pub const select = compare.select;
707 pub const maskNot = compare.maskNot;
708 pub const maskAnd = compare.maskAnd;
709 pub const maskAndNot = compare.maskAndNot;
710 pub const maskOr = compare.maskOr;
711 pub const maskXor = compare.maskXor;
712 pub const exclusiveNeither = compare.exclusiveNeither;
713 pub const allTrue = compare.allTrue;
714 pub const anyTrue = compare.anyTrue;
715 pub const allFalse = compare.allFalse;
716 pub const countTrue = compare.countTrue;
717 pub const findFirstTrue = compare.findFirstTrue;
718 pub const findKnownFirstTrue = compare.findKnownFirstTrue;
719 pub const findLastTrue = compare.findLastTrue;
720 pub const findKnownLastTrue = compare.findKnownLastTrue;
721 pub const setOnlyFirst = compare.setOnlyFirst;
722 pub const setBeforeFirst = compare.setBeforeFirst;
723 pub const setAtOrBeforeFirst = compare.setAtOrBeforeFirst;
724 pub const setAtOrAfterFirst = compare.setAtOrAfterFirst;
725 pub const bitsFromMask = compare.bitsFromMask;
726 pub const maskFromBits = compare.maskFromBits;
727 pub const rebindMask = compare.rebindMask;
728 pub const vecFromMask = compare.vecFromMask;
729 pub const maskFromVec = compare.maskFromVec;
730 pub const loadMaskBits = compare.loadMaskBits;
731 pub const storeMaskBits = compare.storeMaskBits;
732 pub const dup128MaskFromMaskBits = compare.dup128MaskFromMaskBits;
733 pub const maskFalse = compare.maskFalse;
734 pub const setMask = compare.setMask;
735 
736 pub const shiftLeft = shift.shiftLeft;
737 pub const shiftRight = shift.shiftRight;
738 pub const shiftLeftSame = shift.shiftLeftSame;
739 pub const shiftRightSame = shift.shiftRightSame;
740 pub const shl = shift.shl;
741 pub const shr = shift.shr;
742 pub const averageRound = shift.averageRound;
743 pub const roundingShiftRight = shift.roundingShiftRight;
744 pub const roundingShiftRightSame = shift.roundingShiftRightSame;
745 pub const roundingShr = shift.roundingShr;
746 pub const maskedShiftLeftOr = shift.maskedShiftLeftOr;
747 pub const maskedShiftLeft = shift.maskedShiftLeft;
748 pub const maskedShiftRightOr = shift.maskedShiftRightOr;
749 pub const maskedShiftRight = shift.maskedShiftRight;
750 pub const maskedShlOr = shift.maskedShlOr;
751 pub const maskedShl = shift.maskedShl;
752 pub const maskedShrOr = shift.maskedShrOr;
753 pub const maskedShr = shift.maskedShr;
754 
755 pub const rotateLeft = rotate.rotateLeft;
756 pub const rotateRight = rotate.rotateRight;
757 pub const rotateLeftSame = rotate.rotateLeftSame;
758 pub const rotateRightSame = rotate.rotateRightSame;
759 pub const rol = rotate.rol;
760 pub const ror = rotate.ror;
761 pub const multiRotateRight = rotate.multiRotateRight;
762 
763 pub const populationCount = count.populationCount;
764 pub const leadingZeroCount = count.leadingZeroCount;
765 pub const maskedLeadingZeroCount = count.maskedLeadingZeroCount;
766 pub const trailingZeroCount = count.trailingZeroCount;
767 pub const highestSetBitIndex = count.highestSetBitIndex;
768 
769 pub const signBit = sign.signBit;
770 pub const copySign = sign.copySign;
771 pub const copySignToAbs = sign.copySignToAbs;
772 pub const broadcastSignBit = sign.broadcastSignBit;
773 
774 pub const bitCast = cast.bitCast;
775 pub const resizeBitCast = cast.resizeBitCast;
776 pub const zeroExtendResizeBitCast = cast.zeroExtendResizeBitCast;
777 
778 pub const lowerHalf = lanes.lowerHalf;
779 pub const upperHalf = lanes.upperHalf;
780 pub const zeroExtendVector = lanes.zeroExtendVector;
781 pub const combine = lanes.combine;
782 pub const concatLowerLower = lanes.concatLowerLower;
783 pub const concatUpperUpper = lanes.concatUpperUpper;
784 pub const concatLowerUpper = lanes.concatLowerUpper;
785 pub const concatUpperLower = lanes.concatUpperLower;
786 pub const concatOdd = lanes.concatOdd;
787 pub const concatEven = lanes.concatEven;
788 pub const interleaveWholeLower = lanes.interleaveWholeLower;
789 pub const interleaveWholeUpper = lanes.interleaveWholeUpper;
790 pub const lowerHalfOfMask = lanes.lowerHalfOfMask;
791 pub const upperHalfOfMask = lanes.upperHalfOfMask;
792 pub const combineMasks = lanes.combineMasks;
793 
794 pub const convertTo = convert.convertTo;
795 pub const convertInRangeTo = convert.convertInRangeTo;
796 pub const maskedConvertTo = convert.maskedConvertTo;
797 pub const nearestInt = convert.nearestInt;
798 pub const ceilInt = convert.ceilInt;
799 pub const floorInt = convert.floorInt;
800 pub const demoteToNearestInt = convert.demoteToNearestInt;
801 pub const promoteTo = convert.promoteTo;
802 pub const promoteInRangeTo = convert.promoteInRangeTo;
803 pub const promoteLowerTo = convert.promoteLowerTo;
804 pub const promoteUpperTo = convert.promoteUpperTo;
805 pub const promoteEvenTo = convert.promoteEvenTo;
806 pub const promoteOddTo = convert.promoteOddTo;
807 pub const promoteInRangeLowerTo = convert.promoteInRangeLowerTo;
808 pub const promoteInRangeUpperTo = convert.promoteInRangeUpperTo;
809 pub const promoteInRangeEvenTo = convert.promoteInRangeEvenTo;
810 pub const promoteInRangeOddTo = convert.promoteInRangeOddTo;
811 pub const demoteTo = convert.demoteTo;
812 pub const demoteInRangeTo = convert.demoteInRangeTo;
813 pub const truncateTo = convert.truncateTo;
814 pub const u8FromU32 = convert.u8FromU32;
815 pub const orderedDemote2To = convert.orderedDemote2To;
816 pub const reorderDemote2To = convert.reorderDemote2To;
817 pub const orderedTruncate2To = convert.orderedTruncate2To;
818 pub const shiftRightAndDemoteTo = convert.shiftRightAndDemoteTo;
819 pub const roundingShiftRightAndDemoteTo = convert.roundingShiftRightAndDemoteTo;
820 pub const reorderShiftRightAndDemote2To = convert.reorderShiftRightAndDemote2To;
821 pub const reorderRoundingShiftRightAndDemote2To = convert.reorderRoundingShiftRightAndDemote2To;
822 pub const orderedShiftRightAndDemote2To = convert.orderedShiftRightAndDemote2To;
823 pub const orderedRoundingShiftRightAndDemote2To = convert.orderedRoundingShiftRightAndDemote2To;
824 pub const promoteMaskTo = convert.promoteMaskTo;
825 pub const demoteMaskTo = convert.demoteMaskTo;
826 pub const orderedDemote2MasksTo = convert.orderedDemote2MasksTo;
827 
828 pub const extractLane = swizzle.extractLane;
829 pub const broadcastLane = swizzle.broadcastLane;
830 pub const dupEven = swizzle.dupEven;
831 pub const dupOdd = swizzle.dupOdd;
832 pub const oddEven = swizzle.oddEven;
833 pub const reverse = swizzle.reverse;
834 pub const reverse2 = swizzle.reverse2;
835 pub const reverse4 = swizzle.reverse4;
836 pub const reverse8 = swizzle.reverse8;
837 pub const reverseLaneBytes = swizzle.reverseLaneBytes;
838 pub const reverseBits = swizzle.reverseBits;
839 pub const reverseBlocks = swizzle.reverseBlocks;
840 
841 pub const broadcast = block.broadcast;
842 pub const interleaveLower = block.interleaveLower;
843 pub const interleaveUpper = block.interleaveUpper;
844 pub const interleaveEven = block.interleaveEven;
845 pub const interleaveOdd = block.interleaveOdd;
846 pub const zipLower = block.zipLower;
847 pub const zipUpper = block.zipUpper;
848 pub const shiftLeftBytes = block.shiftLeftBytes;
849 pub const shiftRightBytes = block.shiftRightBytes;
850 pub const shiftLeftLanes = block.shiftLeftLanes;
851 pub const shiftRightLanes = block.shiftRightLanes;
852 pub const combineShiftRightBytes = block.combineShiftRightBytes;
853 pub const combineShiftRightLanes = block.combineShiftRightLanes;
854 pub const per4LaneBlockShuffle = block.per4LaneBlockShuffle;
855 pub const shuffle1032 = block.shuffle1032;
856 pub const shuffle0321 = block.shuffle0321;
857 pub const shuffle2103 = block.shuffle2103;
858 pub const shuffle2301 = block.shuffle2301;
859 pub const shuffle01 = block.shuffle01;
860 pub const shuffle0123 = block.shuffle0123;
861 pub const blocks = block.blocks;
862 pub const extractBlock = block.extractBlock;
863 pub const insertBlock = block.insertBlock;
864 pub const broadcastBlock = block.broadcastBlock;
865 pub const oddEvenBlocks = block.oddEvenBlocks;
866 pub const swapAdjacentBlocks = block.swapAdjacentBlocks;
867 pub const interleaveEvenBlocks = block.interleaveEvenBlocks;
868 pub const interleaveOddBlocks = block.interleaveOddBlocks;
869 pub const interleaveLowerBlocks = block.interleaveLowerBlocks;
870 pub const interleaveUpperBlocks = block.interleaveUpperBlocks;
871 
872 pub const tableLookupBytes = table.tableLookupBytes;
873 pub const tableLookupBytesOr0 = table.tableLookupBytesOr0;
874 pub const bitShuffle = table.bitShuffle;
875 pub const indicesFromVec = table.indicesFromVec;
876 pub const setTableIndices = table.setTableIndices;
877 pub const tableLookupLanes = table.tableLookupLanes;
878 pub const twoTablesLookupLanes = table.twoTablesLookupLanes;
879 pub const lookup8 = table.lookup8;
880 pub const lookup16 = table.lookup16;
881 pub const lookup32 = table.lookup32;
882 pub const canLookup8 = table.canLookup8;
883 pub const canLookup16 = table.canLookup16;
884 pub const canLookup32 = table.canLookup32;
885 
886 pub const slideUpLanes = slide.slideUpLanes;
887 pub const slideDownLanes = slide.slideDownLanes;
888 pub const slideUpLanesOr = slide.slideUpLanesOr;
889 pub const slideDownLanesOr = slide.slideDownLanesOr;
890 pub const slide1Up = slide.slide1Up;
891 pub const slide1Down = slide.slide1Down;
892 pub const slide1UpOr = slide.slide1UpOr;
893 pub const slide1DownOr = slide.slide1DownOr;
894 pub const slideUpBlocks = slide.slideUpBlocks;
895 pub const slideDownBlocks = slide.slideDownBlocks;
896 pub const slideMaskUpLanes = slide.slideMaskUpLanes;
897 pub const slideMaskDownLanes = slide.slideMaskDownLanes;
898 pub const slideMask1Up = slide.slideMask1Up;
899 pub const slideMask1Down = slide.slideMask1Down;
900 
901 pub const compress = compact.compress;
902 pub const compressIsPartition = compact.compressIsPartition;
903 pub const compressNot = compact.compressNot;
904 pub const compressBlocksNot = compact.compressBlocksNot;
905 pub const compressStore = compact.compressStore;
906 pub const compressBlendedStore = compact.compressBlendedStore;
907 pub const compressBits = compact.compressBits;
908 pub const compressBitsStore = compact.compressBitsStore;
909 pub const expand = compact.expand;
910 pub const loadExpand = compact.loadExpand;
911 
912 pub const reduceSum = reduce.sum;
913 pub const reduceMin = reduce.min;
914 pub const reduceMax = reduce.max;
915 pub const sumOfLanes = reduce.sumOfLanes;
916 pub const minOfLanes = reduce.minOfLanes;
917 pub const maxOfLanes = reduce.maxOfLanes;
918 pub const maskedReduceSum = reduce.maskedSum;
919 pub const maskedReduceMin = reduce.maskedMin;
920 pub const maskedReduceMax = reduce.maskedMax;
921 pub const sumsOf2 = reduce.sumsOf2;
922 pub const sumsOf4 = reduce.sumsOf4;
923 pub const sumsOf8 = reduce.sumsOf8;
924 pub const sumsOf8AbsDiff = reduce.sumsOf8AbsDiff;
925 pub const sumsOfAdjQuadAbsDiff = reduce.sumsOfAdjQuadAbsDiff;
926 pub const sumsOfShuffledQuadAbsDiff = reduce.sumsOfShuffledQuadAbsDiff;