File ghc-hierarchical-clustering.spec of Package ghc-hierarchical-clustering
#
# spec file for package ghc-hierarchical-clustering
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%global pkg_name hierarchical-clustering
%bcond_with tests
Name: ghc-%{pkg_name}
Version: 0.4.6
Release: 0
Summary: Fast algorithms for single, average/UPGMA and complete linkage clustering
License: BSD-3-Clause
Group: System/Libraries
Url: https://hackage.haskell.org/package/%{pkg_name}
Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz
BuildRequires: ghc-Cabal-devel
# Begin cabal-rpm deps:
BuildRequires: ghc-array-devel
BuildRequires: ghc-containers-devel
BuildRequires: ghc-rpm-macros
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{with tests}
BuildRequires: ghc-HUnit-devel
BuildRequires: ghc-QuickCheck-devel
BuildRequires: ghc-hspec-devel
%endif
# End cabal-rpm deps
%description
This package provides a function to create a dendrogram from a list of items
and a distance function between them. Initially a singleton cluster is created
for each item, and then new, bigger clusters are created by merging the two
clusters with least distance between them. The distance between two clusters is
calculated according to the linkage type. The dendrogram represents not only
the clusters but also the order on which they were created.
This package has many implementations with different performance
characteristics. There are SLINK and CLINK algorithm implementations that are
optimal in both space and time. There are also naive implementations using a
distance matrix. Using the 'dendrogram' function from
'Data.Clustering.Hierarchical' automatically chooses the best implementation we
have.
Changes in version 0.4:
* Specialize the distance type to Double for efficiency reasons. It's uncommon
to use distances other than Double.
* Implement SLINK and CLINK. These are optimal algorithms in both space and
time for single and complete linkage, respectively, running in /O(n^2)/ time
and /O(n)/ space.
* Reorganized internal implementation.
* Some performance improvements for the naive implementation.
* Better test coverage. Also, performance improvements for the test suite, now
running in 3 seconds (instead of one minute).
Changes in version 0.3.1.2 (version 0.3.1.1 was skipped):
* Added tests for many things. Use 'cabal test' =).
Changes in version 0.3.1:
* Works with containers 0.4 (thanks, Doug Beardsley).
* Removed some internal unnecessary overheads and added some strictness.
Changes in version 0.3.0.1:
* Listed changes of unreleased version 0.2.
Changes in version 0.3:
* Added function 'cutAt'.
* Fixed complexity in Haddock comments.
Changes in version 0.2:
* Added function 'elements'.
* Added separate functions for each linkage type. This may be useful if you
want to create a dendrogram and your distance data type isn't an instance of
'Floating'.
%package devel
Summary: Haskell %{pkg_name} library development files
Group: Development/Libraries/Other
Requires: %{name} = %{version}-%{release}
Requires: ghc-compiler = %{ghc_version}
Requires(post): ghc-compiler = %{ghc_version}
Requires(postun): ghc-compiler = %{ghc_version}
%description devel
This package provides the Haskell %{pkg_name} library
development files.
%prep
%setup -q -n %{pkg_name}-%{version}
%build
%ghc_lib_build
%install
%ghc_lib_install
%check
%if %{with tests}
%{cabal} test
%endif
%post devel
%ghc_pkg_recache
%postun devel
%ghc_pkg_recache
%files -f %{name}.files
%defattr(-,root,root,-)
%doc LICENSE
%files devel -f %{name}-devel.files
%defattr(-,root,root,-)
%changelog