Hello. I am glad to announce a SIMD libraries Fasta. As you can see from name the main purpose of this libraries is to make basic functions to run faster and this is achieved by using hard assembler and SIMD optimizations. The main optimizations are SSE2 based (that’s mean most processors will work with this library). I decided to sell each unit independently (so you don’t have to pay for functionality if you don’t need it).
Acceleration realized for such architectures:
- Windows x86
- Windows x64
- Linux x86
- Linux x64
- AArch64 (partly).
In places where acceleration is not realized regular (loop unrolled) code used, so it is possible to use this library on various architectures without changing anything.
The first unit is uFastaStrAnsi.pas. This unit is designed to process ANSI strings. In this unit present such functions:
1.AnyOf (Return amount of sequential chars in a row that belong to aSet);
2.DecLength (How many characters decimal representation will take);
3.DecLengthInt64 (See DecLength);
4.IndexOf (Return index (zero based) of C in set, -1 if not found);
5.IntToStr (Convert integer to string);
6.Lower (Make Count chars of given string lowercase);
7.MaskRange16 (Return mask of characters that are in given range, proceed 16 characters of given string);
8.MaskRange16F (Return mask of characters that are >Low value and <=High value of given range, proceed 16 characters of given string);
9.MaskSet (Return bitmask of chars that are belong to a given set. Count must be in range 1..32);
10.Pos (Various overloads of this function search for one (C), two (CC) or four (CCCC) chars in string);
11.PosAny2 (Search for any character from pair CC in string);
12.PosAny3 (Search for any character from set CCC in string);
13.PosAny4 (Search for any character from set CCCC in string);
14.PosU (Unlimited versions of Pos function. Check no zero chars, no range);
15.PrepareRange (Fill range accordingly to given aLo and aHi);
16.PrepareSet (Take Count chars from string (or a whole string) and fill given set with it);
17.Quantity (Count the number of entries of C in zero terminated string);
18.Size (Return an actual size of given set. Or return an amount of same chars when input parameter is a string);
19.StrToInt (Convert string to integer);
20.StrToInt64 (Convert string to Int64);
21.StrToQWord (Convert string to QWord);
22.Upper (Make Count chars of given string uppercase).
Buy uFastaStrAnsi.pas
https://sellcodes.com/KeCSkA6m
The second unit is uFastaStrUnicode.pas. This unit is designed to process UTF-16 strings. In this unit present such functions:
1. AnyOf (Return amount of sequential chars in a row that belong to aSet);
2. DecLength (Return number of decimal characters given integer will take, include sign);
3. DecLengthInt64 (See DecLength);
4. IndexOf (Return index (zero based) of C in set, -1 if not found);
5. IntToStr (Convert integer to string);
6. Lower (Make Count chars of given string lowercase);
7. MaskRange8 (Return mask of characters that are in given range, 2 bits for each character, proceed 8 characters of given string);
8. MaskRange8F (Return mask of characters that are >Low value and <=High value of given range, 2 bits for each character. Proceed 8 characters of given string);
9. MaskSet (Return bitmask of chars that are belong to a given set. Count must be in range 1..32);
10. Pos (Various overloads of this function search for one (C), two (CC) or four (CCCC) chars in string);
11. PosAny2 (Search for any character from pair CC in string);
12. PosAny3 (Search for any character from set CCC in string);
13. PosU (Unlimited versions of Pos function. Check no zero chars, no range);
14. PrepareRange (Fill range accordingly to given aLo and aHi);
15. PrepareSet (Take Count chars from string (or a whole string) and fill given set with it);
16. Size (Return an actual size of given set. Or return an amount of same chars when input parameter is a string);
17. StrToInt (Convert string to LongInt);
18. StrToInt64 (Convert string to Int64);
19. StrToQWord (Convert string to QWord);
20. Upper (Make Count chars of given string uppercase).
Buy uFastaStrUnicode.pas.
https://sellcodes.com/JGAJTTiSThere are more units in this package, they will be released later.