var searchIndex = {}; searchIndex["rayon"] = {"doc":"","items":[[3,"Configuration","rayon","Contains the rayon thread pool configuration.",null,null],[3,"ThreadPool","","",null,null],[4,"InitError","","Custom error type for the rayon thread pool configuration.",null,null],[13,"NumberOfThreadsZero","","Error if number of threads is set to zero.",0,null],[13,"GlobalPoolAlreadyInitialized","","Error if the gloal thread pool is initialized multiple times\nand the configuration is not equal for all configurations.",0,null],[5,"dump_stats","","This is a debugging API not really intended for end users. It will\ndump some performance statistics out using `println`.",null,{"inputs":[],"output":null}],[5,"initialize","","Initializes the global thread pool. This initialization is\n**optional**. If you do not call this function, the thread pool\nwill be automatically initialized with the default\nconfiguration. In fact, calling `initialize` is not recommended,\nexcept for in two scenarios:",null,{"inputs":[{"name":"configuration"}],"output":{"name":"result"}}],[5,"join","","",null,null],[11,"eq","","",0,null],[11,"fmt","","",0,null],[11,"fmt","","",0,null],[11,"description","","",0,null],[11,"fmt","","",1,null],[11,"clone","","",1,null],[11,"new","","Creates and return a valid rayon thread pool configuration, but does not initialize it.",1,{"inputs":[],"output":{"name":"configuration"}}],[11,"num_threads","","Get the number of threads that will be used for the thread\npool. See `set_num_threads` for more information.",1,null],[11,"set_num_threads","","Set the number of threads to be used in the rayon threadpool.\nThe argument `num_threads` must not be zero. If you do not\ncall this function, rayon will select a suitable default\n(currently, the default is one thread per CPU core).",1,null],[11,"new","","Constructs a new thread pool with the given configuration. If\nthe configuration is not valid, returns a suitable `Err`\nresult. See `InitError` for more details.",2,{"inputs":[{"name":"configuration"}],"output":{"name":"result"}}],[11,"install","","Executes `op` within the threadpool. Any attempts to `join`\nwhich occur there will then operate within that threadpool.",2,null],[11,"drop","","",2,null],[0,"par_iter","","The `ParallelIterator` module makes it easy to write parallel\nprograms using an iterator-style interface. To get access to all\nthe methods you want, the easiest is to write `use\nrayon::prelude::*;` at the top of your module, which will import\nthe various traits and methods you need.",null,null],[0,"collect","rayon::par_iter","",null,null],[5,"collect_into","rayon::par_iter::collect","",null,{"inputs":[{"name":"par_iter"},{"name":"vec"}],"output":null}],[0,"enumerate","rayon::par_iter","",null,null],[3,"Enumerate","rayon::par_iter::enumerate","",null,null],[3,"EnumerateProducer","","",null,null],[11,"new","","",3,{"inputs":[{"name":"m"}],"output":{"name":"enumerate"}}],[11,"drive_unindexed","","",3,null],[11,"upper_bound","","",3,null],[11,"drive","","",3,null],[11,"len","","",3,null],[11,"with_producer","","",3,null],[11,"cost","","",4,null],[11,"split_at","","",4,null],[11,"into_iter","","",4,null],[0,"filter","rayon::par_iter","",null,null],[3,"Filter","rayon::par_iter::filter","",null,null],[11,"new","","",5,{"inputs":[{"name":"m"},{"name":"filter_op"}],"output":{"name":"filter"}}],[11,"drive_unindexed","","",5,null],[11,"upper_bound","","",5,null],[11,"drive","","",5,null],[0,"filter_map","rayon::par_iter","",null,null],[3,"FilterMap","rayon::par_iter::filter_map","",null,null],[11,"new","","",6,{"inputs":[{"name":"m"},{"name":"filter_op"}],"output":{"name":"filtermap"}}],[11,"drive_unindexed","","",6,null],[11,"upper_bound","","",6,null],[11,"drive","","",6,null],[0,"flat_map","rayon::par_iter","",null,null],[3,"FlatMap","rayon::par_iter::flat_map","",null,null],[11,"new","","",7,{"inputs":[{"name":"m"},{"name":"map_op"}],"output":{"name":"flatmap"}}],[11,"drive_unindexed","","",7,null],[0,"internal","rayon::par_iter","Internal traits and functions used to implement parallel\niteration. These should be considered highly unstable: users of\nparallel iterators should not need to interact with them directly.\nSee `README.md` for a high-level overview.",null,null],[3,"NoopReducer","rayon::par_iter::internal","Utility type for consumers that don't need a "reduce" step. Just\nreduces unit to unit.",null,null],[5,"bridge","","",null,{"inputs":[{"name":"par_iter"},{"name":"c"}],"output":{"name":"result"}}],[8,"ProducerCallback","","",null,null],[16,"Output","","",8,null],[10,"callback","","",8,null],[8,"Producer","","A producer which will produce a fixed number of items N. This is\nnot queryable through the API; the consumer is expected to track\nit.",null,null],[10,"cost","","Cost to produce `len` items, where `len` must be `N`.",9,null],[10,"split_at","","Split into two producers; one produces items `0..index`, the\nother `index..N`. Index must be less than `N`.",9,null],[8,"Consumer","","A consumer which consumes items that are fed to it.",null,null],[16,"Folder","","",10,null],[16,"Reducer","","",10,null],[16,"Result","","",10,null],[10,"cost","","If it costs `producer_cost` to produce the items we will\nconsume, returns cost adjusted to account for consuming them.",10,null],[10,"split_at","","Divide the consumer into two consumers, one processing items\n`0..index` and one processing items from `index..`. Also\nproduces a reducer that can be used to reduce the results at\nthe end.",10,null],[10,"into_folder","","Convert the consumer into a folder that can consume items\nsequentially, eventually producing a final result.",10,null],[8,"Folder","","",null,null],[16,"Result","","",11,null],[10,"consume","","Consume next item and return new sequential state.",11,null],[10,"complete","","Finish consuming items, produce final result.",11,null],[8,"Reducer","","",null,null],[10,"reduce","","Reduce two final results into one; this is executed after a\nsplit.",12,null],[8,"UnindexedConsumer","","A stateless consumer can be freely copied.",null,null],[10,"split_off","","",13,null],[10,"to_reducer","","",13,null],[11,"reduce","","",14,null],[0,"len","rayon::par_iter","",null,null],[3,"ParallelLen","rayon::par_iter::len","",null,null],[12,"maximal_len","","Maximal number of elements that we will write",15,null],[12,"cost","","An estimate of the "cost" of this operation. This is a kind of\nabstract concept you can use to influence how fine-grained the\nthreads are.",15,null],[12,"sparse","","If true, all elements will be written. If false, some may not.\nFor example, `sparse` will be false if there is a filter.\nWhen doing a collect, sparse iterators require a compression\nstep.",15,null],[17,"THRESHOLD","","",null,null],[17,"FUNC_ADJUSTMENT","","",null,null],[11,"clone","","",15,null],[11,"left_cost","","",15,null],[11,"right_cost","","",15,null],[0,"for_each","rayon::par_iter","",null,null],[5,"for_each","rayon::par_iter::for_each","",null,{"inputs":[{"name":"par_iter"},{"name":"op"}],"output":null}],[0,"reduce","rayon::par_iter","",null,null],[3,"ReduceFolder","rayon::par_iter::reduce","",null,null],[3,"SumOp","","",null,null],[3,"MulOp","","",null,null],[3,"MinOp","","",null,null],[3,"MaxOp","","",null,null],[3,"ReduceWithOp","","",null,null],[5,"reduce","","",null,{"inputs":[{"name":"par_iter"},{"name":"reduce_op"}],"output":{"name":"t"}}],[17,"SUM","","",null,null],[17,"MUL","","",null,null],[17,"MIN","","",null,null],[17,"MAX","","",null,null],[8,"ReduceOp","","Specifies a "reduce operator". This is the combination of a start\nvalue and a reduce function. The reduce function takes two items\nand computes a reduced version. The start value `S` is a kind of\n"zero" or "identity" value that may be intermingled as needed;\nidealy, `reduce(S, X)` for any item `X` yields `X`.",null,null],[10,"start_value","","",16,null],[10,"reduce","","",16,null],[11,"consume","","",17,null],[11,"complete","","",17,null],[11,"start_value","","",18,null],[11,"reduce","","",18,null],[11,"start_value","","",18,null],[11,"reduce","","",18,null],[11,"start_value","","",18,null],[11,"reduce","","",18,null],[11,"start_value","","",18,null],[11,"reduce","","",18,null],[11,"start_value","","",18,null],[11,"reduce","","",18,null],[11,"start_value","","",18,null],[11,"reduce","","",18,null],[11,"start_value","","",18,null],[11,"reduce","","",18,null],[11,"start_value","","",18,null],[11,"reduce","","",18,null],[11,"start_value","","",18,null],[11,"reduce","","",18,null],[11,"start_value","","",18,null],[11,"reduce","","",18,null],[11,"start_value","","",18,null],[11,"reduce","","",18,null],[11,"start_value","","",18,null],[11,"reduce","","",18,null],[11,"start_value","","",19,null],[11,"reduce","","",19,null],[11,"start_value","","",19,null],[11,"reduce","","",19,null],[11,"start_value","","",19,null],[11,"reduce","","",19,null],[11,"start_value","","",19,null],[11,"reduce","","",19,null],[11,"start_value","","",19,null],[11,"reduce","","",19,null],[11,"start_value","","",19,null],[11,"reduce","","",19,null],[11,"start_value","","",19,null],[11,"reduce","","",19,null],[11,"start_value","","",19,null],[11,"reduce","","",19,null],[11,"start_value","","",19,null],[11,"reduce","","",19,null],[11,"start_value","","",19,null],[11,"reduce","","",19,null],[11,"start_value","","",19,null],[11,"reduce","","",19,null],[11,"start_value","","",19,null],[11,"reduce","","",19,null],[11,"start_value","","",20,null],[11,"reduce","","",20,null],[11,"start_value","","",20,null],[11,"reduce","","",20,null],[11,"start_value","","",20,null],[11,"reduce","","",20,null],[11,"start_value","","",20,null],[11,"reduce","","",20,null],[11,"start_value","","",20,null],[11,"reduce","","",20,null],[11,"start_value","","",20,null],[11,"reduce","","",20,null],[11,"start_value","","",20,null],[11,"reduce","","",20,null],[11,"start_value","","",20,null],[11,"reduce","","",20,null],[11,"start_value","","",20,null],[11,"reduce","","",20,null],[11,"start_value","","",20,null],[11,"reduce","","",20,null],[11,"start_value","","",20,null],[11,"reduce","","",20,null],[11,"start_value","","",20,null],[11,"reduce","","",20,null],[11,"start_value","","",21,null],[11,"reduce","","",21,null],[11,"start_value","","",21,null],[11,"reduce","","",21,null],[11,"start_value","","",21,null],[11,"reduce","","",21,null],[11,"start_value","","",21,null],[11,"reduce","","",21,null],[11,"start_value","","",21,null],[11,"reduce","","",21,null],[11,"start_value","","",21,null],[11,"reduce","","",21,null],[11,"start_value","","",21,null],[11,"reduce","","",21,null],[11,"start_value","","",21,null],[11,"reduce","","",21,null],[11,"start_value","","",21,null],[11,"reduce","","",21,null],[11,"start_value","","",21,null],[11,"reduce","","",21,null],[11,"start_value","","",21,null],[11,"reduce","","",21,null],[11,"start_value","","",21,null],[11,"reduce","","",21,null],[11,"new","","",22,{"inputs":[{"name":"op"}],"output":{"name":"reducewithop"}}],[11,"start_value","","",22,null],[11,"reduce","","",22,null],[0,"slice","rayon::par_iter","",null,null],[3,"SliceIter","rayon::par_iter::slice","",null,null],[3,"SliceProducer","","",null,null],[11,"drive_unindexed","","",23,null],[11,"upper_bound","","",23,null],[11,"drive","","",23,null],[11,"len","","",23,null],[11,"with_producer","","",23,null],[11,"cost","","",24,null],[11,"split_at","","",24,null],[11,"into_iter","","",24,null],[0,"slice_mut","rayon::par_iter","",null,null],[3,"SliceIterMut","rayon::par_iter::slice_mut","",null,null],[3,"SliceMutProducer","","",null,null],[11,"drive_unindexed","","",25,null],[11,"upper_bound","","",25,null],[11,"drive","","",25,null],[11,"len","","",25,null],[11,"with_producer","","",25,null],[11,"cost","","",26,null],[11,"split_at","","",26,null],[11,"into_iter","","",26,null],[0,"map","rayon::par_iter","",null,null],[3,"Map","rayon::par_iter::map","",null,null],[3,"MapProducer","","",null,null],[11,"new","","",27,{"inputs":[{"name":"m"},{"name":"map_op"}],"output":{"name":"map"}}],[11,"drive_unindexed","","",27,null],[11,"upper_bound","","",27,null],[11,"drive","","",27,null],[11,"len","","",27,null],[11,"with_producer","","",27,null],[11,"cost","","",28,null],[11,"split_at","","",28,null],[11,"into_iter","","",28,null],[0,"weight","rayon::par_iter","",null,null],[3,"Weight","rayon::par_iter::weight","",null,null],[3,"WeightProducer","","",null,null],[11,"new","","",29,{"inputs":[{"name":"m"},{"name":"f64"}],"output":{"name":"weight"}}],[11,"drive_unindexed","","",29,null],[11,"upper_bound","","",29,null],[11,"drive","","",29,null],[11,"len","","",29,null],[11,"with_producer","","",29,null],[11,"cost","","",30,null],[11,"split_at","","",30,null],[11,"into_iter","","",30,null],[0,"zip","rayon::par_iter","",null,null],[3,"ZipIter","rayon::par_iter::zip","",null,null],[3,"ZipProducer","","",null,null],[11,"new","","",31,{"inputs":[{"name":"a"},{"name":"b"}],"output":{"name":"zipiter"}}],[11,"drive_unindexed","","",31,null],[11,"upper_bound","","",31,null],[11,"drive","","",31,null],[11,"len","","",31,null],[11,"with_producer","","",31,null],[11,"cost","","",32,null],[11,"split_at","","",32,null],[11,"into_iter","","",32,null],[0,"range","rayon::par_iter","",null,null],[3,"RangeIter","rayon::par_iter::range","",null,null],[11,"drive_unindexed","","",33,null],[11,"upper_bound","","",33,null],[11,"drive","","",33,null],[11,"len","","",33,null],[11,"with_producer","","",33,null],[11,"cost","","",33,null],[11,"split_at","","",33,null],[11,"into_iter","","",33,null],[11,"drive_unindexed","","",33,null],[11,"upper_bound","","",33,null],[11,"drive","","",33,null],[11,"len","","",33,null],[11,"with_producer","","",33,null],[11,"cost","","",33,null],[11,"split_at","","",33,null],[11,"into_iter","","",33,null],[11,"drive_unindexed","","",33,null],[11,"upper_bound","","",33,null],[11,"drive","","",33,null],[11,"len","","",33,null],[11,"with_producer","","",33,null],[11,"cost","","",33,null],[11,"split_at","","",33,null],[11,"into_iter","","",33,null],[11,"drive_unindexed","","",33,null],[11,"upper_bound","","",33,null],[11,"drive","","",33,null],[11,"len","","",33,null],[11,"with_producer","","",33,null],[11,"cost","","",33,null],[11,"split_at","","",33,null],[11,"into_iter","","",33,null],[11,"drive_unindexed","","",33,null],[11,"upper_bound","","",33,null],[11,"drive","","",33,null],[11,"len","","",33,null],[11,"with_producer","","",33,null],[11,"cost","","",33,null],[11,"split_at","","",33,null],[11,"into_iter","","",33,null],[11,"drive_unindexed","","",33,null],[11,"upper_bound","","",33,null],[11,"drive","","",33,null],[11,"len","","",33,null],[11,"with_producer","","",33,null],[11,"cost","","",33,null],[11,"split_at","","",33,null],[11,"into_iter","","",33,null],[11,"drive_unindexed","","",33,null],[11,"upper_bound","","",33,null],[11,"drive","","",33,null],[11,"len","","",33,null],[11,"with_producer","","",33,null],[11,"cost","","",33,null],[11,"split_at","","",33,null],[11,"into_iter","","",33,null],[11,"drive_unindexed","","",33,null],[11,"upper_bound","","",33,null],[11,"drive","","",33,null],[11,"len","","",33,null],[11,"with_producer","","",33,null],[11,"cost","","",33,null],[11,"split_at","","",33,null],[11,"into_iter","","",33,null],[0,"vec","rayon::par_iter","",null,null],[3,"VecIter","rayon::par_iter::vec","",null,null],[3,"VecProducer","","",null,null],[3,"SliceDrain","","",null,null],[11,"drive_unindexed","","",34,null],[11,"upper_bound","","",34,null],[11,"drive","","",34,null],[11,"len","","",34,null],[11,"with_producer","","",34,null],[11,"drop","","",34,null],[11,"cost","","",35,null],[11,"split_at","","",35,null],[11,"into_iter","","",35,null],[11,"drop","","",35,null],[11,"next","","",36,null],[11,"drop","","",36,null],[8,"IntoParallelIterator","rayon::par_iter","",null,null],[16,"Iter","","",37,null],[16,"Item","","",37,null],[10,"into_par_iter","","",37,null],[8,"IntoParallelRefIterator","","",null,null],[16,"Iter","","",38,null],[16,"Item","","",38,null],[10,"par_iter","","",38,null],[8,"IntoParallelRefMutIterator","","",null,null],[16,"Iter","","",39,null],[16,"Item","","",39,null],[10,"par_iter_mut","","",39,null],[8,"ParallelIterator","","The `ParallelIterator` interface.",null,null],[16,"Item","","",40,null],[11,"weight","","Indicates the relative "weight" of producing each item in this\nparallel iterator. A higher weight will cause finer-grained\nparallel subtasks. 1.0 indicates something very cheap and\nuniform, like copying a value out of an array, or computing `x\n+ 1`. If your tasks are either very expensive, or very\nunpredictable, you are better off with higher values. See also\n`weight_max`, which is a convenient shorthand to force the\nfinest grained parallel execution posible. Tuning this value\nshould not affect correctness but can improve (or hurt)\nperformance.",40,null],[11,"weight_max","","Shorthand for `self.weight(f64::INFINITY)`. This forces the\nsmallest granularity of parallel execution, which makes sense\nwhen your parallel tasks are (potentially) very expensive to\nexecute.",40,null],[11,"for_each","","Executes `OP` on each item produced by the iterator, in parallel.",40,null],[11,"map","","Applies `map_op` to each item of his iterator, producing a new\niterator with the results.",40,null],[11,"filter","","Applies `map_op` to each item of his iterator, producing a new\niterator with the results.",40,null],[11,"filter_map","","Applies `map_op` to each item of his iterator, producing a new\niterator with the results.",40,null],[11,"flat_map","","Applies `map_op` to each item of his iterator, producing a new\niterator with the results.",40,null],[11,"reduce_with","","Reduces the items in the iterator into one item using `op`.\nSee also `sum`, `mul`, `min`, etc, which are slightly more\nefficient. Returns `None` if the iterator is empty.",40,null],[11,"sum","","Sums up the items in the iterator.",40,null],[11,"mul","","Multiplies all the items in the iterator.",40,null],[11,"min","","Computes the minimum of all the items in the iterator.",40,null],[11,"max","","Computes the maximum of all the items in the iterator.",40,null],[11,"reduce","","Reduces the items using the given "reduce operator". You may\nprefer `reduce_with` for a simpler interface.",40,null],[8,"BoundedParallelIterator","","A trait for parallel iterators items where the precise number of\nitems is not known, but we can at least give an upper-bound. These\nsorts of iterators result from filtering.",null,null],[10,"upper_bound","","",41,null],[8,"ExactParallelIterator","","A trait for parallel iterators items where the precise number of\nitems is known. This occurs when e.g. iterating over a\nvector. Knowing precisely how many items will be produced is very\nuseful.",null,null],[10,"len","","Produces an exact count of how many items this iterator will\nproduce, presuming no panic occurs.",42,null],[11,"collect_into","","Collects the results of the iterator into the specified\nvector. The vector is always truncated before execution\nbegins. If possible, reusing the vector across calls can lead\nto better performance since it reuses the same backing buffer.",42,null],[8,"IndexedParallelIterator","","An iterator that supports "random access" to its data, meaning\nthat you can split it at arbitrary indices and draw data from\nthose points.",null,null],[11,"zip","","Iterate over tuples `(A, B)`, where the items `A` are from\nthis iterator and `B` are from the iterator given as argument.\nLike the `zip` method on ordinary iterators, if the two\niterators are of unequal length, you only get the items they\nhave in common.",43,null],[11,"enumerate","","Yields an index along with each item.",43,null],[0,"prelude","rayon","The rayon prelude imports the various `ParallelIterator` traits.\nThe intention is that one can include `use rayon::prelude::*` and\nhave easy access to the various traits and methods you will need.",null,null]],"paths":[[4,"InitError"],[3,"Configuration"],[3,"ThreadPool"],[3,"Enumerate"],[3,"EnumerateProducer"],[3,"Filter"],[3,"FilterMap"],[3,"FlatMap"],[8,"ProducerCallback"],[8,"Producer"],[8,"Consumer"],[8,"Folder"],[8,"Reducer"],[8,"UnindexedConsumer"],[3,"NoopReducer"],[3,"ParallelLen"],[8,"ReduceOp"],[3,"ReduceFolder"],[3,"SumOp"],[3,"MulOp"],[3,"MinOp"],[3,"MaxOp"],[3,"ReduceWithOp"],[3,"SliceIter"],[3,"SliceProducer"],[3,"SliceIterMut"],[3,"SliceMutProducer"],[3,"Map"],[3,"MapProducer"],[3,"Weight"],[3,"WeightProducer"],[3,"ZipIter"],[3,"ZipProducer"],[3,"RangeIter"],[3,"VecIter"],[3,"VecProducer"],[3,"SliceDrain"],[8,"IntoParallelIterator"],[8,"IntoParallelRefIterator"],[8,"IntoParallelRefMutIterator"],[8,"ParallelIterator"],[8,"BoundedParallelIterator"],[8,"ExactParallelIterator"],[8,"IndexedParallelIterator"]]}; initSearch(searchIndex);