Graph::Maker::Hypercube - Create the N-dimensional hypercube graph


Graph-Maker documentation Contained in the Graph-Maker distribution.

Index


Code Index:

NAME

Top

Graph::Maker::Hypercube - Create the N-dimensional hypercube graph

VERSION

Top

Version 0.01

SYNOPSIS

Top

Creates the N-dimensional hypercube graph. If the graph is directed then edges are added in both directions to create an undirected graph.



	use strict;
	use warnings;
        use Graph;
	use Graph::Maker;
	use Graph::Maker::Hypercube;

	my $g = new Graph::Maker('hypercube', N => 2, undirected => 1);
	# work with the graph




FUNCTIONS

Top

new %params

Creates the N-dimensional hypercube graph. The recognized parameters are N, and graph_maker any others are passed onto Graph's constructor. If N is note given it defaults to 0. If graph_maker is specified and is it will be called to create the Graph class as desired (for example if you have a subclass of Graph).

AUTHOR

Top

Matt Spear, <batman900+cpan at gmail.com>

BUGS

Top

Please report any bugs or feature requests to bug-graph-maker-hypercube at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Graph-Maker. If graph_maker is specified it will be called to create the Graph class as desired (for example if you have a subclass of Graph), this defaults to create a Graph with the parameters specified.

ACKNOWLEDGEMENTS

Top

This package owes a lot to NetworkX|"http://networkx.lanl.gov/.

COPYRIGHT & LICENSE

Top


Graph-Maker documentation Contained in the Graph-Maker distribution.
package Graph::Maker::Hypercube;

use strict;
use warnings;
use Carp qw/croak/;
use base qw/Graph::Maker/;
use Graph;
use Graph::Maker;
use Graph::Maker::Grid;

our $VERSION = '0.01';

sub init
{
	my ($self, %params) = @_;

	my $n = delete($params{N}) || 0;

	my @dims;
	push(@dims, 2) for (1..$n);

	my $g = new Graph::Maker('grid', dims => \@dims, %params);

	return $g;
}

Graph::Maker->add_factory_type( 'hypercube' => __PACKAGE__ );

1;

__DATA__