phobos/std
Andreas Zwinkau a9d5b8ca77 Improve speed of find for random access needles (strings)
For find a string within a string, std.algorithm.searching.find was
unnecessarily slow. The reason is it created intermediate slices. A
naively written nested-for-loop implementation was a few times
faster.

For random access ranges (which strings are) this uses an index based
algorithm, which does not need to create an intermediate slice. Speed
is now comparable to the nested-for-loop implementation even in rather
pathological cases.

This might help with issue 9646.
2016-06-02 21:44:50 +02:00
..
algorithm Improve speed of find for random access needles (strings) 2016-06-02 21:44:50 +02:00
c Standardize whitespace after imports 2016-05-29 22:09:56 +02:00
container Merge pull request #4331 from wilzbach/example_binaryheap 2016-06-02 00:11:54 +02:00
digest XREF_PACK -> REF (sed) 2016-05-27 21:32:46 +02:00
experimental apply all-man braces in Phobos 2016-05-31 13:07:53 +02:00
internal apply all-man braces in Phobos 2016-05-31 13:07:53 +02:00
net apply all-man braces in Phobos 2016-05-31 13:07:53 +02:00
range Merge pull request #4375 from wilzbach/remove_weird_authors 2016-06-01 12:55:32 +04:00
regex apply all-man braces in Phobos 2016-05-31 13:07:53 +02:00
windows remove the deprecated wiki macros 2016-05-27 05:52:23 +02:00
array.d apply all-man braces in Phobos 2016-05-31 13:07:53 +02:00
ascii.d remove invalid copyright notices 2016-05-31 15:26:10 +02:00
base64.d Fixed long lines in std/base64.d 2016-05-10 20:51:39 -04:00
bigint.d manual allman brace fixup 2016-05-31 13:07:53 +02:00
bitmanip.d manual allman brace fixup 2016-05-31 13:07:53 +02:00
compiler.d remove the deprecated wiki macros 2016-05-27 05:52:23 +02:00
complex.d apply all-man braces in Phobos 2016-05-31 13:07:53 +02:00
concurrency.d apply all-man braces in Phobos 2016-05-31 13:07:53 +02:00
concurrencybase.d add std.concurrencybase 2015-07-05 00:50:38 -07:00
conv.d Standardize whitespace after imports 2016-05-29 22:09:56 +02:00
cstream.d apply all-man braces in Phobos 2016-05-31 13:07:53 +02:00
csv.d manual allman brace fixup 2016-05-31 13:07:53 +02:00
datetime.d Merge pull request #4386 from wilzbach/copyright 2016-05-31 18:32:59 +04:00
demangle.d remove the deprecated wiki macros 2016-05-27 05:52:23 +02:00
encoding.d XREF -> REF (sed) 2016-05-27 21:32:46 +02:00
exception.d XREF_PACK -> REF (sed) 2016-05-27 21:32:46 +02:00
file.d Standardize whitespace after imports 2016-05-29 22:09:56 +02:00
format.d apply all-man braces in Phobos 2016-05-31 13:07:53 +02:00
functional.d apply all-man braces in Phobos 2016-05-31 13:07:53 +02:00
getopt.d Standardize whitespace after imports 2016-05-29 22:09:56 +02:00
json.d Fix issue 15885 - numeric values serialized to JSON lose precision. 2016-05-31 21:21:59 -07:00
math.d apply all-man braces in Phobos 2016-05-31 13:07:53 +02:00
mathspecial.d apply all-man braces in Phobos 2016-05-31 13:07:53 +02:00
meta.d Move allSatisfy, anySatisfy and staticIndexOf to searching in the quick index 2016-05-30 03:23:17 +03:00
mmfile.d apply all-man braces in Phobos 2016-05-31 13:07:53 +02:00
numeric.d Standardize whitespace after imports 2016-05-29 22:09:56 +02:00
outbuffer.d XREF -> REF (sed) 2016-05-27 21:32:46 +02:00
parallelism.d apply all-man braces in Phobos 2016-05-31 13:07:53 +02:00
path.d Standardize whitespace after imports 2016-05-29 22:09:56 +02:00
process.d Standardize whitespace after imports 2016-05-29 22:09:56 +02:00
random.d remove the deprecated wiki macros 2016-05-27 05:52:23 +02:00
signals.d apply all-man braces in Phobos 2016-05-31 13:07:53 +02:00
socket.d apply all-man braces in Phobos 2016-05-31 13:07:53 +02:00
socketstream.d remove the deprecated wiki macros 2016-05-27 05:52:23 +02:00
stdint.d remove the deprecated wiki macros 2016-05-27 05:52:23 +02:00
stdio.d manual allman brace fixup 2016-05-31 13:07:53 +02:00
stdiobase.d
stream.d apply all-man braces in Phobos 2016-05-31 13:07:53 +02:00
string.d Merge pull request #4322 from JackStouffer/isNumeric 2016-06-01 12:31:14 -07:00
system.d remove the deprecated wiki macros 2016-05-27 05:52:23 +02:00
traits.d Add ddoc example for isDynamicArray 2016-06-02 11:38:25 -04:00
typecons.d Standardize whitespace after imports 2016-05-29 22:09:56 +02:00
typetuple.d XREF -> REF (sed) 2016-05-27 21:32:46 +02:00
uni.d std.uni: roll back module-scope selective import that slipped through, revert this once allowed 2016-06-02 15:55:32 +05:30
uri.d apply all-man braces in Phobos 2016-05-31 13:07:53 +02:00
utf.d Standardize whitespace after imports 2016-05-29 22:09:56 +02:00
uuid.d Standardize whitespace after imports 2016-05-29 22:09:56 +02:00
variant.d remove the deprecated wiki macros 2016-05-27 05:52:23 +02:00
xml.d remove the deprecated wiki macros 2016-05-27 05:52:23 +02:00
zip.d Standardize whitespace after imports 2016-05-29 22:09:56 +02:00
zlib.d apply all-man braces in Phobos 2016-05-31 13:07:53 +02:00