var searchIndex = {}; searchIndex["dsp"] = {"doc":"","items":[[6,"PetGraph","dsp::daggy","",null,null],[6,"RawNodes","","",null,null],[6,"RawEdges","","",null,null],[3,"Dag","","A Directed acyclic graph (DAG) data structure.",null,null],[6,"Children","","",null,null],[3,"WalkChildren","","A "walker" object that can be used to step through the children of some parent node.",null,null],[6,"Parents","","",null,null],[3,"WalkParents","","A "walker" object that can be used to step through the children of some parent node.",null,null],[3,"EdgeIndices","","An iterator yielding multiple `EdgeIndex`s, returned by the `Graph::add_edges` method.",null,null],[3,"WouldCycle","","An error returned by the `Dag::add_edge` method in the case that adding an edge would have\ncaused the graph to cycle.",null,null],[12,"0","","",0,null],[3,"EdgeWeightsMut","","Iterator yielding mutable access to all edge weights.",null,null],[3,"NodeWeightsMut","","Iterator yielding mutable access to all node weights.",null,null],[0,"algo","dsp::daggy::petgraph","Graph algorithms.",null,null],[5,"is_cyclic_undirected","dsp::daggy::petgraph::algo","Return `true` if the input graph contains a cycle.",null,{"inputs":[{"name":"graph"}],"output":{"name":"bool"}}],[5,"is_cyclic","","**Deprecated: Renamed to `is_cyclic_undirected`.**",null,{"inputs":[{"name":"graph"}],"output":{"name":"bool"}}],[5,"is_cyclic_directed","","Return `true` if the input directed graph contains a cycle.",null,{"inputs":[{"name":"graph"}],"output":{"name":"bool"}}],[5,"toposort","","Perform a topological sort of a directed graph.",null,{"inputs":[{"name":"graph"}],"output":{"name":"vec"}}],[5,"scc","","Compute the *strongly connected components* using Kosaraju's algorithm.",null,{"inputs":[{"name":"graph"}],"output":{"name":"vec"}}],[5,"connected_components","","Return the number of connected components of the graph.",null,{"inputs":[{"name":"graph"}],"output":{"name":"usize"}}],[5,"min_spanning_tree","","Compute a *minimum spanning tree* of a graph.",null,{"inputs":[{"name":"graph"}],"output":{"name":"graph"}}],[5,"dijkstra","","Dijkstra's shortest path algorithm.",null,null],[5,"is_isomorphic","","Return `true` if the graphs `g0` and `g1` are isomorphic.",null,{"inputs":[{"name":"graph"},{"name":"graph"}],"output":{"name":"bool"}}],[0,"graphmap","dsp::daggy::petgraph","`GraphMap<N, E>` is an undirected graph where node values are mapping keys.",null,null],[3,"GraphMap","dsp::daggy::petgraph::graphmap","`GraphMap<N, E>` is an undirected graph, with generic node values `N` and edge weights `E`.",null,null],[8,"NodeTrait","","A trait group for `GraphMap`'s node identifier.",null,null],[3,"Nodes","","",null,null],[3,"Neighbors","","",null,null],[3,"Edges","","",null,null],[12,"from","","**Deprecated: should be private**",1,null],[12,"edges","","**Deprecated: should be private**",1,null],[12,"iter","","**Deprecated: should be private**",1,null],[3,"AllEdges","","",null,null],[0,"graph","dsp::daggy::petgraph","`Graph<N, E, Ty, Ix>` is a graph datastructure using an adjacency list representation.",null,null],[6,"DefIndex","dsp::daggy::petgraph::graph","",null,null],[8,"IndexType","","Trait for the unsigned integer type used for node and edge indices.",null,null],[10,"new","","",2,{"inputs":[{"name":"usize"}],"output":{"name":"self"}}],[10,"index","","",2,null],[10,"max","","",2,{"inputs":[],"output":{"name":"self"}}],[11,"zero","","**Deprecated**",2,{"inputs":[],"output":{"name":"self"}}],[11,"one","","**Deprecated**",2,{"inputs":[],"output":{"name":"self"}}],[3,"NodeIndex","","Node identifier.",null,null],[5,"node_index","","Short version of `NodeIndex::new`",null,{"inputs":[{"name":"usize"}],"output":{"name":"nodeindex"}}],[5,"edge_index","","Short version of `EdgeIndex::new`",null,{"inputs":[{"name":"usize"}],"output":{"name":"edgeindex"}}],[3,"EdgeIndex","","Edge identifier.",null,null],[3,"Node","","The graph's node type.",null,null],[12,"weight","","Associated node data.",3,null],[3,"Edge","","The graph's edge type.",null,null],[12,"weight","","Associated edge data.",4,null],[3,"Graph","","`Graph<N, E, Ty, Ix>` is a graph datastructure using an adjacency list representation.",null,null],[3,"WithoutEdges","","An iterator over either the nodes without edges to them or from them.",null,null],[3,"Neighbors","","Iterator over the neighbors of a node.",null,null],[3,"Edges","","Iterator over the edges of a node.",null,null],[3,"NodeWeightsMut","","Iterator yielding mutable access to all node weights.",null,null],[3,"EdgeWeightsMut","","Iterator yielding mutable access to all edge weights.",null,null],[8,"GraphIndex","","A `GraphIndex` is a node or edge index.",null,null],[3,"WalkEdges","","A “walker” object that can be used to step through the edge list of a node.",null,null],[3,"NodeIndices","","Iterator over the node indices of a graph.",null,null],[3,"EdgeIndices","","Iterator over the edge indices of a graph.",null,null],[0,"dot","dsp::daggy::petgraph","Simple graphviz dot file format output.",null,null],[3,"Dot","dsp::daggy::petgraph::dot","`Dot` implements output to graphviz .dot format for a graph.",null,null],[4,"Config","","`Dot` configuration.",null,null],[13,"NodeIndexLabel","","Use indices for node labels.",5,null],[13,"EdgeIndexLabel","","Use indices for edge labels.",5,null],[13,"EdgeNoLabel","","Use no edge labels.",5,null],[0,"visit","dsp::daggy::petgraph","Graph visitor algorithms.",null,null],[8,"Graphlike","dsp::daggy::petgraph::visit","Base trait for graphs that defines the node identifier.",null,null],[16,"NodeId","","",6,null],[8,"NeighborIter","","A graph trait for accessing the neighbors iterator",null,null],[16,"Iter","","",7,null],[10,"neighbors","","Return an iterator that visits all neighbors of the node **n**.",7,null],[3,"AsUndirected","","Wrapper type for walking the graph as if it is undirected",null,null],[12,"0","","",8,null],[3,"Reversed","","Wrapper type for walking edges the other way",null,null],[12,"0","","",9,null],[8,"NeighborsDirected","","NeighborsDirected gives access to neighbors of both `Incoming` and `Outgoing`\nedges of a node.",null,null],[16,"NeighborsDirected","","",10,null],[10,"neighbors_directed","","Return an iterator that visits all neighbors of the node **n**.",10,null],[8,"Externals","","Externals returns an iterator of all nodes that either have either no\nincoming or no outgoing edges.",null,null],[16,"Externals","","",11,null],[10,"externals","","Return an iterator of all nodes with no edges in the given direction",11,null],[8,"VisitMap","","A mapping from node → is_visited.",null,null],[10,"visit","","Return **true** if the value is not already present.",12,null],[10,"is_visited","","",12,null],[8,"Visitable","","Trait for which datastructure to use for a graph’s visitor map",null,null],[16,"Map","","",13,null],[10,"visit_map","","",13,null],[8,"Revisitable","","Trait for graph that can reset & resize its visitor map",null,null],[10,"reset_map","","",14,null],[8,"GetAdjacencyMatrix","","Create or access the adjacency matrix of a graph",null,null],[16,"AdjMatrix","","",15,null],[10,"adjacency_matrix","","",15,null],[10,"is_adjacent","","",15,null],[3,"Dfs","","A depth first search (DFS) of a graph.",null,null],[12,"stack","","The stack of nodes to visit",16,null],[12,"discovered","","The map of discovered nodes",16,null],[3,"DfsIter","","An iterator for a depth first traversal of a graph.",null,null],[3,"Bfs","","A breadth first search (BFS) of a graph.",null,null],[12,"stack","","The queue of nodes to visit",17,null],[12,"discovered","","The map of discovered nodes",17,null],[3,"BfsIter","","An iterator for a breadth first traversal of a graph.",null,null],[3,"Topo","","A topological order traversal for a graph.",null,null],[0,"unionfind","dsp::daggy::petgraph","`UnionFind<K>` is a disjoint-set data structure.",null,null],[3,"UnionFind","dsp::daggy::petgraph::unionfind","`UnionFind<K>` is a disjoint-set data structure. It tracks set membership of *n* elements\nindexed from *0* to *n - 1*. The scalar type is `K` which must be an unsigned integer type.",null,null],[4,"EdgeDirection","dsp::daggy::petgraph","Edge direction",null,null],[13,"Outgoing","","An `Outgoing` edge is an outward edge *from* the current node.",18,null],[13,"Incoming","","An `Incoming` edge is an inbound edge *to* the current node.",18,null],[3,"Directed","","Marker type for a directed graph.",null,null],[3,"Undirected","","Marker type for an undirected graph.",null,null],[8,"EdgeType","","A graph's edge type determines whether is has directed edges or not.",null,null],[10,"is_directed","","",19,{"inputs":[],"output":{"name":"bool"}}],[3,"Ptr","","A reference that is hashed and compared by its pointer value.",null,null],[12,"0","","",20,null],[8,"IntoWeightedEdge","","Convert an element like `(i, j)` or `(i, j, w)` into\na triple of source, target, edge weight.",null,null],[10,"into_weighted_edge","","",21,null],[3,"Bfs","","A breadth first search (BFS) of a graph.",null,null],[12,"stack","","The queue of nodes to visit",17,null],[12,"discovered","","The map of discovered nodes",17,null],[3,"Dfs","","A depth first search (DFS) of a graph.",null,null],[12,"stack","","The stack of nodes to visit",16,null],[12,"discovered","","The map of discovered nodes",16,null],[3,"Graph","","`Graph<N, E, Ty, Ix>` is a graph datastructure using an adjacency list representation.",null,null],[3,"DfsIter","","An iterator for a depth first traversal of a graph.",null,null],[3,"GraphMap","","`GraphMap<N, E>` is an undirected graph, with generic node values `N` and edge weights `E`.",null,null],[3,"MinScored","","`MinScored<K, T>` holds a score `K` and a scored object `T` in\na pair for use with a `BinaryHeap`.",null,null],[12,"0","","",22,null],[12,"1","","",22,null],[3,"BfsIter","","An iterator for a breadth first traversal of a graph.",null,null],[3,"NodeIndex","dsp::daggy","Node identifier.",null,null],[3,"EdgeIndex","","Edge identifier.",null,null],[6,"Amplitude","dsp","",null,null],[8,"Sample","","A trait for working generically across different sample types.",null,null],[10,"from_wave","","Construct a sample from a wave sample between -1. and 1.",23,{"inputs":[{"name":"f32"}],"output":{"name":"self"}}],[10,"to_wave","","Convert to a wave sample between -1. and 1.",23,null],[10,"sample_format","","Return the sample format as a method.",23,null],[11,"format","","Return the format of the sample.",23,{"inputs":[],"output":{"name":"format"}}],[11,"mul_amp","","Multiply by a given amplitude.",23,null],[11,"from_sample","","Construct a sample from an arbitrary Sample type.",23,{"inputs":[{"name":"s"}],"output":{"name":"self"}}],[11,"to_sample","","Construct an arbitrary sample type from a sample of this Self type.",23,null],[11,"zero","","A silent sample.",23,{"inputs":[],"output":{"name":"self"}}],[11,"add_buffer","","Sum the `to_add` buffer onto the `target` buffer.",23,null],[11,"write_buffer","","Write the `to_write` buffer to the `target` buffer.",23,null],[11,"add_buffer_with_amp_per_channel","","Sum the working buffer onto the output buffer after multiplying it by amplitude per channel.",23,null],[11,"zero_buffer","","Zero a given buffer of samples.",23,null],[6,"Wave","","",null,null],[3,"Connection","","Describes a connection between two Nodes within the Graph: *input -> connection -> output*.",null,null],[12,"buffer","","The buffer used to pass audio between nodes.",24,null],[3,"Graph","","A directed, acyclic DSP graph.",null,null],[3,"VisitOrder","","An iterator yielding a **Graph**'s node indices in the order in which they will be visited when\naudio is requested from the **Graph**.",null,null],[3,"WalkInputs","","A walker object for walking over nodes that are inputs to some node.",null,null],[3,"WalkOutputs","","A walker object for walking over nodes that are outputs to some node.",null,null],[3,"WalkVisitOrder","","A walker type for walking over a **Graph**'s nodes in the order in which they will visited when\naudio is requested from the **Graph**.",null,null],[3,"WalkVisitOrderReverse","","A walker type for walking over a **Graph**'s nodes in the order in which they will visited when\naudio is requested from the **Graph**.",null,null],[3,"WouldCycle","","The error returned when adding an edge that would create a cycle.",null,null],[3,"Settings","","Settings required for SoundStream.",null,null],[12,"sample_hz","","The number of samples per second.",25,null],[12,"frames","","How many samples per channel requested at a time in the buffer.",25,null],[12,"channels","","Number of channels, for example 2 for stereo sound (left + right speaker).",25,null],[11,"fmt","","",26,null],[11,"clone","","",26,null],[11,"fmt","","",24,null],[11,"clone","","",24,null],[11,"fmt","","",27,null],[11,"clone","","",27,null],[11,"new","","Constructor for a new dsp Graph.",26,{"inputs":[],"output":{"name":"self"}}],[11,"with_capacity","","Constructor for a new dsp Graph with some minimum capacity.",26,{"inputs":[{"name":"usize"},{"name":"usize"},{"name":"usize"}],"output":{"name":"self"}}],[11,"dag","","A reference to the underlying **Dag**.",26,null],[11,"into_dag","","Takes ownership of the **Graph** and returns the underlying **Dag**.",26,null],[11,"pet_graph","","A reference to the internal **Dag**'s underlying **PetGraph**.",26,null],[11,"into_pet_graph","","Takes ownership of the **Graph** and returns the internal **Dag**'s underlying **PetGraph**.",26,null],[11,"node_count","","The total number of nodes in the **Graph**.",26,null],[11,"connection_count","","The total number of connections in the **Graph**.",26,null],[11,"master_index","","Return the **Graph**'s master index if there is one.",26,null],[11,"set_master","","Set the master node for the **Graph**.",26,null],[11,"add_node","","Add a node to the dsp graph.",26,null],[11,"node","","A reference to the node at the given index (or `None` if it doesn't exist).",26,null],[11,"node_mut","","A mutable reference to the node at the given index (or `None` if it doesn't exist).",26,null],[11,"raw_nodes","","Read only access to the internal node array.",26,null],[11,"nodes_mut","","An iterator yielding mutable access to all nodes.",26,null],[11,"connection","","A reference to the connection at the given index (or `None` if it doesn't exist).",26,null],[11,"raw_edges","","Read only access to the internal edge array.",26,null],[11,"index_twice_mut","","Index the **Graph** by two `NodeIndex`s at once.",26,null],[11,"remove_node","","Remove a node from the dsp graph.",26,null],[11,"add_connection","","Adds an edge from `src` to `dest`. That is, `src` is now an input to `dest`.",26,null],[11,"add_connections","","The same as [`add_connection`](./struct.Graph.html#method.add_connection) but adds\nmultiple connections to the **Graph**. Rather than checking for introduced cycles and\nre-preparing the visit order after adding each edge, we only do so after **all** edges are\nadded. Thus, this is a far more efficient alternative to repeatedly calling the\n`add_connection` method.",26,null],[11,"find_connection","","Find and return the index to the edge that describes the connection where `src` is an input\nto `dest`.",26,null],[11,"remove_edge","","Remove the connection described by the edge at the given index.",26,null],[11,"remove_connection","","Find and remove any connection between a and b if there is one, whether it is *a -> b* or\n*b -> a*. We know that their may only be one edge as our API does not allow for creating a\ncyclic graph.",26,null],[11,"add_input","","Add a new node weight to the graph as an input to the wait at the given `dest` node index.",26,null],[11,"add_output","","Add a new node weight to the graph as an output to the wait at the given `src` node index.",26,null],[11,"inputs","","An iterator yielding indices to the nodes that are inputs to the node at the given index.",26,null],[11,"walk_inputs","","A "walker" object that may be used to step through the inputs of the given node.",26,null],[11,"outputs","","An iterator yielding indices to the nodes that are outputs to the node at the given index.",26,null],[11,"walk_outputs","","A "walker" object that may be used to step through the outputs of the given node.",26,null],[11,"visit_order","","An iterator yielding node indices in the order in which they will be visited when audio is\nrequested from the **Graph**.",26,null],[11,"walk_visit_order","","A "walker" type that may be used to step through all node indices in the order in which\nthey will be visited when audio is requested from the **Graph**.",26,null],[11,"walk_visit_order_rev","","A "walker" type that may be used to step through all node indices in the order in which\nthey will be visited when audio is requested from the **Graph**.",26,null],[11,"remove_all_input_connections","","Remove all incoming connections to the node at the given index.",26,null],[11,"remove_all_output_connections","","Remove all outgoing connections from the node at the given index.",26,null],[11,"clear_disconnected","","Clear all dsp nodes that have no inputs or outputs.",26,null],[11,"clear","","Clear all dsp nodes.",26,null],[11,"prepare_buffers","","Prepare the buffers for all nodes within the Graph.",26,null],[11,"audio_requested_from","","Request audio from the node at the given index.",26,null],[11,"index","","",26,null],[11,"index_mut","","",26,null],[11,"index","","",26,null],[11,"audio_requested","","",26,null],[11,"next","","The next (connection, node) input pair to some node in our walk for the given **Graph**.",28,null],[11,"next_connection","","The next input connection to some node in our walk for the given **Graph**.",28,null],[11,"next_node","","The next input node to some node in our walk for the given **Graph**.",28,null],[11,"next","","The next (connection, node) output pair from some node in our walk for the given **Graph**.",29,null],[11,"next_connection","","The next output connection from some node in our walk for the given **Graph**.",29,null],[11,"next_node","","The next output node from some node in our walk for the given **Graph**.",29,null],[11,"next","","",30,null],[11,"next","","The index of the next node that would be visited during audio requested in our walk of the\ngiven **Graph**'s visit order.",31,null],[11,"next","","The index of the next node that would be visited during audio requested in our walk of the\ngiven **Graph**'s visit order.",32,null],[11,"fmt","","",27,null],[11,"description","","",27,null],[11,"eq","","",25,null],[11,"ne","","",25,null],[11,"fmt","","",25,null],[11,"clone","","",25,null],[11,"new","","Custom constructor for the Settings.",25,{"inputs":[{"name":"samplehz"},{"name":"frames"},{"name":"channels"}],"output":{"name":"settings"}}],[11,"cd_quality","","Default, standard constructor for Settings.",25,{"inputs":[],"output":{"name":"settings"}}],[11,"buffer_size","","Return the length of a SoundBuffer that would use Settings.",25,null],[11,"default","","",25,{"inputs":[],"output":{"name":"settings"}}],[6,"Dag","","An alias for the **Dag** used within our **Graph**.",null,null],[6,"EdgeIndex","","An alias for our Graph's Edge Index.",null,null],[6,"Inputs","","An iterator yielding indices to nodes that are inputs to some node.",null,null],[6,"NodeIndex","","An alias for our Graph's Node Index.",null,null],[6,"NodesMut","","An alias for the iterator yielding mutable access to all node weights.",null,null],[6,"Outputs","","An iterator yielding indices to nodes that are outputs to some node.",null,null],[6,"PetGraph","","An alias for the **PetGraph** used by our **Graph**'s internal **Dag**.",null,null],[6,"RawEdges","","Read only access to a **Graph**'s internal edge array.",null,null],[6,"RawNodes","","Read only access to a **Graph**'s internal node array.",null,null],[6,"Volume","","The amplitude multiplier.",null,null],[6,"Panning","","The spacial positioning of the node. Currently only supports Stereo or Mono.\n-1.0 = Left.\n 0.0 = Center.\n 1.0 = Right.",null,null],[8,"Node","","Types to be used as a **Node** within the DSP **Graph**.",null,null],[10,"audio_requested","","Request audio from the **Node** given some stream format **Settings**.\nIf the **Node** has no inputs, the `buffer` will be zeroed.\nIf the **Node** has some inputs, the `buffer` will consist of the inputs summed together.",33,null],[11,"dry","","Following the call to the `Node`'s `audio_requested` method, the `Graph` will sum together\nsome of the original (dry) signal with some of the processed (wet) signal.",33,null],[11,"wet","","Following the call to the `Node`'s `audio_requested` method, the `Graph` will sum together\nsome of the original (dry) signal with some of the processed (wet) signal.",33,null],[11,"fmt","dsp::daggy","",34,null],[11,"clone","","",34,null],[11,"fmt","","",0,null],[11,"clone","","",0,null],[11,"new","","Create a new, empty `Dag`.",34,{"inputs":[],"output":{"name":"dag"}}],[11,"with_capacity","","Create a new `Dag` with estimated capacity for its node and edge Vecs.",34,{"inputs":[{"name":"usize"},{"name":"usize"}],"output":{"name":"dag"}}],[11,"clear","","Removes all nodes and edges from the **Dag**.",34,null],[11,"node_count","","The total number of nodes in the **Dag**.",34,null],[11,"edge_count","","The total number of edgees in the **Dag**.",34,null],[11,"graph","","Borrow the `Dag`'s underlying `PetGraph<N, Ix>`.\nAll existing indices may be used to index into this `PetGraph` the same way they may be\nused to index into the `Dag`.",34,null],[11,"into_graph","","Take ownership of the `Dag` and return the internal `PetGraph`.\nAll existing indices may be used to index into this `PetGraph` the same way they may be\nused to index into the `Dag`.",34,null],[11,"add_node","","Add a new node to the `Dag` with the given weight.",34,null],[11,"add_edge","","Add a new directed edge to the `Dag` with the given weight.",34,null],[11,"add_edges","","Adds the given directed edges to the `Dag`, each with their own given weight.",34,null],[11,"update_edge","","Update the edge from nodes `a` -> `b` with the given weight.",34,null],[11,"find_edge","","Find and return the index to the edge that describes `a` -> `b` if there is one.",34,null],[11,"add_parent","","Add a new edge and parent node to the node at the given `NodeIndex`.\nReturns both the edge's `EdgeIndex` and the node's `NodeIndex`.",34,null],[11,"add_child","","Add a new edge and child node to the node at the given `NodeIndex`.\nReturns both the edge's `EdgeIndex` and the node's `NodeIndex`.",34,null],[11,"node_weight","","Borrow the weight from the node at the given index.",34,null],[11,"node_weight_mut","","Mutably borrow the weight from the node at the given index.",34,null],[11,"raw_nodes","","Read from the internal node array.",34,null],[11,"node_weights_mut","","An iterator yielding mutable access to all node weights.",34,null],[11,"edge_weight","","Borrow the weight from the edge at the given index.",34,null],[11,"edge_weight_mut","","Mutably borrow the weight from the edge at the given index.",34,null],[11,"raw_edges","","Read from the internal edge array.",34,null],[11,"edge_weights_mut","","An iterator yielding mutable access to all edge weights.",34,null],[11,"index_twice_mut","","Index the `Dag` by two indices.",34,null],[11,"remove_node","","Remove the node at the given index from the `Dag` and return it if it exists.",34,null],[11,"remove_edge","","Remove an edge and return its weight, or `None` if it didn't exist.",34,null],[11,"parents","","An iterator over all nodes that are parents to the node at the given index.",34,null],[11,"walk_parents","","A "walker" object that may be used to step through the parents of the given child node.",34,null],[11,"children","","An iterator over all nodes that are children to the node at the given index.",34,null],[11,"walk_children","","A "walker" object that may be used to step through the children of the given parent node.",34,null],[11,"index","","",34,null],[11,"index_mut","","",34,null],[11,"index","","",34,null],[11,"index_mut","","",34,null],[11,"next","","Fetch the next child edge index in the walk for the given `Dag`.",35,null],[11,"next_child","","Fetch the `EdgeIndex` and `NodeIndex` to the next child in the walk for the given `Dag`.",35,null],[11,"next","","Fetch the next parent edge index in the walk for the given `Dag`.",36,null],[11,"next_parent","","Fetch the `EdgeIndex` and `NodeIndex` to the next parent in the walk for the given `Dag`.",36,null],[11,"next","","",37,null],[11,"fmt","","",0,null],[11,"description","","",0,null],[11,"fmt","dsp::daggy::petgraph","",22,null],[11,"clone","","",22,null],[11,"eq","","",22,null],[11,"partial_cmp","","",22,null],[11,"cmp","","",22,null],[11,"clone","","",38,null],[11,"fmt","","",38,null],[11,"new","","Create a new `GraphMap`.",38,{"inputs":[],"output":{"name":"graphmap"}}],[11,"with_capacity","","Create a new `GraphMap` with estimated capacity.",38,{"inputs":[{"name":"usize"},{"name":"usize"}],"output":{"name":"graphmap"}}],[11,"capacity","","Return the current node and edge capacity of the graph.",38,null],[11,"from_edges","","Create a new `GraphMap` from an iterable of edges.",38,{"inputs":[{"name":"i"}],"output":{"name":"graphmap"}}],[11,"node_count","","Return the number of nodes in the graph.",38,null],[11,"edge_count","","Return the number of edges in the graph.",38,null],[11,"clear","","Remove all nodes and edges",38,null],[11,"add_node","","Add node `n` to the graph.",38,null],[11,"remove_node","","Return `true` if node `n` was removed.",38,null],[11,"contains_node","","Return `true` if the node is contained in the graph.",38,null],[11,"add_edge","","Add an edge connecting `a` and `b` to the graph.",38,null],[11,"remove_edge","","Remove edge from `a` to `b` from the graph and return the edge weight.",38,null],[11,"contains_edge","","Return `true` if the edge connecting `a` with `b` is contained in the graph.",38,null],[11,"nodes","","Return an iterator over the nodes of the graph.",38,null],[11,"neighbors","","Return an iterator over the nodes that are connected with `from` by edges.",38,null],[11,"edges","","Return an iterator over the nodes that are connected with `from` by edges,\npaired with the edge weight.",38,null],[11,"edge_weight","","Return a reference to the edge weight connecting `a` with `b`, or\n`None` if the edge does not exist in the graph.",38,null],[11,"edge_weight_mut","","Return a mutable reference to the edge weight connecting `a` with `b`, or\n`None` if the edge does not exist in the graph.",38,null],[11,"all_edges","","Return an iterator over all edges of the graph with their weight in arbitrary order.",38,null],[11,"from_iter","","",38,{"inputs":[{"name":"i"}],"output":{"name":"graphmap"}}],[11,"extend","","",38,null],[11,"next","dsp::daggy::petgraph::graphmap","",39,null],[11,"size_hint","","",39,null],[11,"next_back","","",39,null],[11,"next","","",40,null],[11,"size_hint","","",40,null],[11,"next_back","","",40,null],[11,"next","","",1,null],[11,"next","","",41,null],[11,"index","dsp::daggy::petgraph","",38,null],[11,"index_mut","","",38,null],[11,"hash","dsp::daggy","",42,null],[11,"cmp","","",42,null],[11,"partial_cmp","","",42,null],[11,"lt","","",42,null],[11,"le","","",42,null],[11,"gt","","",42,null],[11,"ge","","",42,null],[11,"eq","","",42,null],[11,"ne","","",42,null],[11,"fmt","","",42,null],[11,"clone","","",42,null],[11,"new","","",42,{"inputs":[{"name":"usize"}],"output":{"name":"nodeindex"}}],[11,"index","","",42,null],[11,"end","","",42,{"inputs":[],"output":{"name":"nodeindex"}}],[11,"from","","",42,{"inputs":[{"name":"ix"}],"output":{"name":"nodeindex"}}],[11,"hash","","",43,null],[11,"cmp","","",43,null],[11,"partial_cmp","","",43,null],[11,"lt","","",43,null],[11,"le","","",43,null],[11,"gt","","",43,null],[11,"ge","","",43,null],[11,"eq","","",43,null],[11,"ne","","",43,null],[11,"clone","","",43,null],[11,"new","","",43,{"inputs":[{"name":"usize"}],"output":{"name":"edgeindex"}}],[11,"index","","",43,null],[11,"end","","An invalid `EdgeIndex` used to denote absence of an edge, for example\nto end an adjacency list.",43,{"inputs":[],"output":{"name":"edgeindex"}}],[11,"fmt","","",43,null],[11,"clone","dsp::daggy::petgraph::graph","",3,null],[11,"fmt","","",3,null],[11,"next_edge","","Accessor for data structure internals: the first edge in the given direction.",3,null],[11,"clone","","",4,null],[11,"fmt","","",4,null],[11,"next_edge","","Accessor for data structure internals: the next edge for the given direction.",4,null],[11,"source","","Return the source node index.",4,null],[11,"target","","Return the target node index.",4,null],[11,"clone","dsp::daggy::petgraph","",44,null],[11,"fmt","","",44,null],[11,"new","","Create a new `Graph` with directed edges.",44,{"inputs":[],"output":{"name":"graph"}}],[11,"new_undirected","","Create a new `Graph` with undirected edges.",44,{"inputs":[],"output":{"name":"graph"}}],[11,"with_capacity","","Create a new `Graph` with estimated capacity.",44,{"inputs":[{"name":"usize"},{"name":"usize"}],"output":{"name":"graph"}}],[11,"capacity","","Return the current node and edge capacity of the graph.",44,null],[11,"node_count","","Return the number of nodes (vertices) in the graph.",44,null],[11,"edge_count","","Return the number of edges in the graph.",44,null],[11,"is_directed","","Whether the graph has directed edges or not.",44,null],[11,"add_node","","Add a node (also called vertex) with associated data `weight` to the graph.",44,null],[11,"node_weight","","Access node weight for node `a`.",44,null],[11,"node_weight_mut","","Access node weight for node `a`.",44,null],[11,"add_edge","","Add an edge from `a` to `b` to the graph, with its associated\ndata `weight`.",44,null],[11,"update_edge","","Add or update an edge from `a` to `b`.",44,null],[11,"edge_weight","","Access the edge weight for `e`.",44,null],[11,"edge_weight_mut","","Access the edge weight for `e` mutably.",44,null],[11,"edge_endpoints","","Access the source and target nodes for `e`.",44,null],[11,"remove_node","","Remove `a` from the graph if it exists, and return its weight.\nIf it doesn't exist in the graph, return `None`.",44,null],[11,"remove_edge","","Remove an edge and return its edge weight, or `None` if it didn't exist.",44,null],[11,"neighbors","","Return an iterator of all nodes with an edge starting from `a`.",44,null],[11,"neighbors_directed","","Return an iterator of all neighbors that have an edge between them and `a`,\nin the specified direction.\nIf the graph's edges are undirected, this is equivalent to *.neighbors(a)*.",44,null],[11,"neighbors_undirected","","Return an iterator of all neighbors that have an edge between them and `a`,\nin either direction.\nIf the graph's edges are undirected, this is equivalent to *.neighbors(a)*.",44,null],[11,"edges","","Return an iterator over the neighbors of node `a`, paired with their respective edge\nweights.",44,null],[11,"edges_directed","","Return an iterator of all neighbors that have an edge between them and `a`,\nin the specified direction, paired with the respective edge weights.",44,null],[11,"edges_both","","Return an iterator over the edgs from `a` to its neighbors, then *to* `a` from its\nneighbors.",44,null],[11,"find_edge","","Lookup an edge from `a` to `b`.",44,null],[11,"find_edge_undirected","","Lookup an edge between `a` and `b`, in either direction.",44,null],[11,"without_edges","","Return an iterator over either the nodes without edges to them or from them.",44,null],[11,"node_indices","","Return an iterator over the node indices of the graph",44,null],[11,"node_weights_mut","","Return an iterator yielding mutable access to all node weights.",44,null],[11,"edge_indices","","Return an iterator over the edge indices of the graph",44,null],[11,"edge_weights_mut","","Return an iterator yielding mutable access to all edge weights.",44,null],[11,"raw_nodes","","Access the internal node array.",44,null],[11,"raw_edges","","Access the internal edge array.",44,null],[11,"first_edge","","Accessor for data structure internals: the first edge in the given direction.",44,null],[11,"next_edge","","Accessor for data structure internals: the next edge for the given direction.",44,null],[11,"walk_edges_directed","","Return a “walker” object that can be used to step through the edges\nof the node `a` in direction `dir`.",44,null],[11,"index_twice_mut","","Index the `Graph` by two indices, any combination of\nnode or edge indices is fine.",44,null],[11,"reverse","","Reverse the direction of all edges",44,null],[11,"clear","","Remove all nodes and edges",44,null],[11,"clear_edges","","Remove all edges",44,null],[11,"retain_nodes","","Keep all nodes that return `true` from the `visit` closure,\nremove the others.",44,null],[11,"retain_edges","","Keep all edges that return `true` from the `visit` closure,\nremove the others.",44,null],[11,"from_edges","","Create a new `Graph` from an iterable of edges.",44,{"inputs":[{"name":"i"}],"output":{"name":"graph"}}],[11,"extend_with_edges","","Extend the graph from an iterable of edges.",44,null],[11,"map","","Create a new `Graph` by mapping node and edge weights.",44,null],[11,"filter_map","","Create a new `Graph` by mapping nodes and edges.\nA node or edge may be mapped to `None` to exclude it from\nthe resulting graph.",44,null],[11,"into_edge_type","","Convert the graph into either undirected or directed. No edge adjustments\nare done, so you may want to go over the result to remove or add edges.",44,null],[11,"next","dsp::daggy::petgraph::graph","",45,null],[11,"next","","",46,null],[11,"next","","",47,null],[11,"next","","",48,null],[11,"size_hint","","",48,null],[11,"next","","",49,null],[11,"size_hint","","",49,null],[11,"index","dsp::daggy::petgraph","",44,null],[11,"index_mut","","",44,null],[11,"index","","",44,null],[11,"index_mut","","",44,null],[11,"index","dsp::daggy","",42,null],[11,"is_node_index","","",42,{"inputs":[],"output":{"name":"bool"}}],[11,"index","","",43,null],[11,"is_node_index","","",43,{"inputs":[],"output":{"name":"bool"}}],[11,"fmt","dsp::daggy::petgraph::graph","",50,null],[11,"clone","","",50,null],[11,"next","","Fetch the next edge index in the walk for graph `g`.",50,null],[11,"next_neighbor","","Fetch the next edge index and the next node index in the walk for graph `g`.",50,null],[11,"next","","",51,null],[11,"size_hint","","",51,null],[11,"next_back","","",51,null],[11,"next","","",52,null],[11,"size_hint","","",52,null],[11,"next_back","","",52,null],[11,"new","dsp::daggy::petgraph::dot","Create a `Dot` formatting wrapper with default configuration.",53,{"inputs":[{"name":"g"}],"output":{"name":"dot"}}],[11,"with_config","","Create a `Dot` formatting wrapper with custom configuration.",53,null],[11,"eq","","",5,null],[11,"ne","","",5,null],[11,"fmt","","",5,null],[11,"fmt","","",53,null],[11,"fmt","","",53,null],[11,"fmt","","",53,null],[11,"fmt","","",53,null],[11,"neighbors","dsp::daggy::petgraph","",44,null],[11,"neighbors","","",38,null],[11,"neighbors","dsp::daggy::petgraph::visit","",8,null],[11,"neighbors","","",9,null],[11,"neighbors_directed","dsp::daggy::petgraph","",44,null],[11,"neighbors_directed","dsp::daggy::petgraph::visit","",9,null],[11,"externals","dsp::daggy::petgraph","",44,null],[11,"externals","dsp::daggy::petgraph::visit","",9,null],[11,"visit_map","dsp::daggy::petgraph","",44,null],[11,"reset_map","","",44,null],[11,"reset_map","dsp::daggy::petgraph::visit","",9,null],[11,"visit_map","dsp::daggy::petgraph","",38,null],[11,"reset_map","","",38,null],[11,"visit_map","dsp::daggy::petgraph::visit","",8,null],[11,"visit_map","","",9,null],[11,"adjacency_matrix","dsp::daggy::petgraph","",38,null],[11,"is_adjacent","","",38,null],[11,"fmt","","",16,null],[11,"clone","","",16,null],[11,"new","","Create a new **Dfs**, using the graph's visitor map, and put **start**\nin the stack of nodes to visit.",16,{"inputs":[{"name":"g"},{"name":"n"}],"output":{"name":"dfs"}}],[11,"empty","","Create a new **Dfs** using the graph's visitor map, and no stack.",16,{"inputs":[{"name":"g"}],"output":{"name":"dfs"}}],[11,"move_to","","Keep the discovered map, but clear the visit stack and restart\nthe dfs from a particular node.",16,null],[11,"next","","Return the next node in the dfs, or **None** if the traversal is done.",16,null],[11,"new","","",54,null],[11,"move_to","","Keep the discovered map, but clear the visit stack and restart\nthe DFS traversal from a particular node.",54,null],[11,"next","","",54,null],[11,"size_hint","","",54,null],[11,"clone","","",54,null],[11,"clone","","",17,null],[11,"new","","Create a new **Bfs**, using the graph's visitor map, and put **start**\nin the stack of nodes to visit.",17,{"inputs":[{"name":"g"},{"name":"n"}],"output":{"name":"bfs"}}],[11,"next","","Return the next node in the dfs, or **None** if the traversal is done.",17,null],[11,"new","","",55,null],[11,"next","","",55,null],[11,"size_hint","","",55,null],[11,"clone","","",55,null],[11,"clone","dsp::daggy::petgraph::visit","",56,null],[11,"new","","Create a new **Topo**, using the graph's visitor map, and put all\ninitial nodes in the to visit list.",56,{"inputs":[{"name":"g"}],"output":{"name":"topo"}}],[11,"reset","","Clear visited state, and put all initial nodes in the to visit list.",56,null],[11,"next","","Return the next node in the current topological order traversal, or\n`None` if the traversal is at end.",56,null],[11,"clone","dsp::daggy::petgraph::unionfind","",57,null],[11,"fmt","","",57,null],[11,"new","","Create a new `UnionFind` of `n` disjoint sets.",57,{"inputs":[{"name":"usize"}],"output":{"name":"unionfind"}}],[11,"find","","Return the representative for `x`.",57,null],[11,"find_mut","","Return the representative for `x`.",57,null],[11,"union","","Unify the two sets containing `x` and `y`.",57,null],[11,"into_labeling","","Return a vector mapping each element to its representative.",57,null],[11,"adjacency_matrix","dsp::daggy::petgraph","",44,null],[11,"is_adjacent","","",44,null],[11,"eq","","",18,null],[11,"fmt","","",18,null],[11,"clone","","",18,null],[11,"fmt","","",58,null],[11,"clone","","",58,null],[11,"fmt","","",59,null],[11,"clone","","",59,null],[11,"is_directed","","",58,{"inputs":[],"output":{"name":"bool"}}],[11,"is_directed","","",59,{"inputs":[],"output":{"name":"bool"}}],[11,"clone","","",20,null],[11,"eq","","Ptr compares by pointer equality, i.e if they point to the same value",20,null],[11,"partial_cmp","","",20,null],[11,"cmp","","Ptr is ordered by pointer value, i.e. an arbitrary but stable and total order.",20,null],[11,"deref","","",20,null],[11,"hash","","",20,null],[11,"fmt","","",20,null],[11,"dry","dsp","Following the call to the `Node`'s `audio_requested` method, the `Graph` will sum together\nsome of the original (dry) signal with some of the processed (wet) signal.",33,null],[11,"wet","","Following the call to the `Node`'s `audio_requested` method, the `Graph` will sum together\nsome of the original (dry) signal with some of the processed (wet) signal.",33,null]],"paths":[[3,"WouldCycle"],[3,"Edges"],[8,"IndexType"],[3,"Node"],[3,"Edge"],[4,"Config"],[8,"Graphlike"],[8,"NeighborIter"],[3,"AsUndirected"],[3,"Reversed"],[8,"NeighborsDirected"],[8,"Externals"],[8,"VisitMap"],[8,"Visitable"],[8,"Revisitable"],[8,"GetAdjacencyMatrix"],[3,"Dfs"],[3,"Bfs"],[4,"EdgeDirection"],[8,"EdgeType"],[3,"Ptr"],[8,"IntoWeightedEdge"],[3,"MinScored"],[8,"Sample"],[3,"Connection"],[3,"Settings"],[3,"Graph"],[3,"WouldCycle"],[3,"WalkInputs"],[3,"WalkOutputs"],[3,"VisitOrder"],[3,"WalkVisitOrder"],[3,"WalkVisitOrderReverse"],[8,"Node"],[3,"Dag"],[3,"WalkChildren"],[3,"WalkParents"],[3,"EdgeIndices"],[3,"GraphMap"],[3,"Nodes"],[3,"Neighbors"],[3,"AllEdges"],[3,"NodeIndex"],[3,"EdgeIndex"],[3,"Graph"],[3,"WithoutEdges"],[3,"Neighbors"],[3,"Edges"],[3,"NodeWeightsMut"],[3,"EdgeWeightsMut"],[3,"WalkEdges"],[3,"NodeIndices"],[3,"EdgeIndices"],[3,"Dot"],[3,"DfsIter"],[3,"BfsIter"],[3,"Topo"],[3,"UnionFind"],[3,"Directed"],[3,"Undirected"]]}; initSearch(searchIndex);