packages feed

HROOT-hist (empty) → 0.8

raw patch · 234 files changed

+31307/−0 lines, 234 filesdep +HROOT-coredep +basedep +fficxx-runtimebuild-type:Customsetup-changed

Dependencies added: HROOT-core, base, fficxx-runtime

Files

+ CHANGES view
@@ -0,0 +1,39 @@+0.5.0: 31 Jul 2011+   * initial preview release++0.5.1: 3 Aug 2011+   * support for delete ++0.6: 16 Aug 2011+   * implement Deletable. delete method for every object+   * refactor HROOT generated file names (Interface.hs, Implementation.hs, FFI.hs) ++0.6.3: 22 Sep 2011 +   * Implement Existential Types ++0.6.4: 28 Sep 2011 +   * add many TH2 class methods++0.6.6: 7 Oct 2011 +   * do not need OverlappingInstances, IncoherentInstances, UndecidableInstances +++0.6.7: 18 Oct 2011+   * implement almost all TH1 class methods++0.6.8: 20 Oct 2011+   * implement almost all class methods of TH2, TH3, TFormula, TF1 and TGraph++0.6.9: 20 Oct 2011 +   * implement almost all class methods of TLine, TAttLine, TAttMarker, TAttText and TAttPad++0.7 : 8 Nov 2011+   * separate all class interfaces and implementation in different modules+   * overhaul Existential ++0.7.1 : 12 Nov 2011 +   * support for static methods+   * add TROOT++0.8 : 17 Jun 2014+   * separate packages into HROOT-core, HROOT-hist, HROOT-io, HROOT-math, HROOT-graf and HROOT is now an umbrella package
+ Config.hs view
@@ -0,0 +1,85 @@+{-# LANGUAGE ScopedTypeVariables #-}++module Config where+ +import Distribution.Simple+import Distribution.Simple.Setup+import Distribution.PackageDescription+import Distribution.Simple.LocalBuildInfo++import System.Exit+import System.Process++config :: LocalBuildInfo -> IO (Maybe HookedBuildInfo)+config bInfo = do +  (excode, out, err) <- readProcessWithExitCode "root-config" ["--glibs"] ""+  liboptset' <- case excode of +                  ExitSuccess -> do  +                    return . Just .  mkLibraryOptionSet . words $ out+                  _ -> do +                    putStrLn $ "root-config failure but I am installing HROOT without ROOT. It will not work. This is only for documentation." +                    return Nothing              +  (excode2,out2,err2) <- readProcessWithExitCode "root-config" ["--incdir"] ""+  incdir' <- case excode2 of +               ExitSuccess -> do  +                 return . Just . head . words $ out2+               _ -> do +                 putStrLn $ "root-config failure but I am installing HROOT without ROOT. It will not work. This is only for documentation." +                 return Nothing+  let Just lib = library . localPkgDescr $ bInfo+      buildinfo = libBuildInfo lib+  let (r :: Maybe HookedBuildInfo) = case liboptset' of +            Nothing -> Nothing+            Just liboptset -> +              case incdir' of +                Nothing -> Nothing +                Just incdir -> +                  let hbi = emptyBuildInfo { extraLibs = extraLibs buildinfo +                                                         ++ libs liboptset+                                           , extraLibDirs = libdirs liboptset +                                           , includeDirs = incdir : includeDirs buildinfo+                                           }+                  in Just (Just hbi, []) +  return r +++data LibraryOptionSet = LibraryOptionSet { +  libs :: [String], +  libdirs :: [String], +  libopts :: [String]+} deriving Show++data LibraryOption = Lib String +                   | Dir String+                   | Opt String +                   deriving Show++mkLibraryOptionSet :: [String] -> LibraryOptionSet+mkLibraryOptionSet strs = let opts = libraryOptions strs+                          in  foldr f (LibraryOptionSet [] [] []) opts +  where f x (LibraryOptionSet l d o) = case x of+                                         Lib st -> LibraryOptionSet (st:l) d o +                                         Dir st -> LibraryOptionSet l (st:d) o +                                         Opt st -> LibraryOptionSet l d (st:o) ++libraryOptions :: [String] -> [LibraryOption] -- LibraryOptionSet +libraryOptions = map f +  where f x = let r = parseLibraryOptionClassifier x+              in  case r of +                    Left msg -> error (show msg)+                    Right result -> result+++parseLibraryOptionClassifier :: String -> Either String LibraryOption +parseLibraryOptionClassifier [] = Left "empty option"+parseLibraryOptionClassifier str@(x:xs) = +  case x of+    '-' -> if null xs +             then Left "parse error"+             else let (y:ys) = xs+                  in  case y of+                        'L' -> Right (Dir ys)+                        'l' -> Right (Lib ys)+                        _ -> Right (Opt str)+    _ -> Right (Opt str) +
+ HROOT-hist.cabal view
@@ -0,0 +1,323 @@+Name:		HROOT-hist+Version:	0.8+Synopsis:	Haskell binding to ROOT Hist modules+Description: 	HROOT is a haskell Foreign Function Interface (FFI) binding to ROOT. ROOT(http://root.cern.ch) is an object-oriented program and library developed by CERN for physics data analysis.+Homepage:       http://ianwookim.org/HROOT+License:        LGPL-2.1+License-file:   LICENSE+Author:		Ian-Woo Kim+Maintainer: 	Ian-Woo Kim <ianwookim@gmail.com>+Category:       Graphics, Statistics, Math, Numerical+Tested-with:    GHC >= 7.6+Build-Type: 	Custom+cabal-version:  >=1.10+Extra-source-files: +                       CHANGES+                       Config.hs+                       csrc/HROOTHistTAxis.h+                       csrc/HROOTHistTF1.h+                       csrc/HROOTHistTFormula.h+                       csrc/HROOTHistTGraph.h+                       csrc/HROOTHistTGraphAsymmErrors.h+                       csrc/HROOTHistTGraphBentErrors.h+                       csrc/HROOTHistTGraphErrors.h+                       csrc/HROOTHistTH1.h+                       csrc/HROOTHistTH1C.h+                       csrc/HROOTHistTH1D.h+                       csrc/HROOTHistTH1F.h+                       csrc/HROOTHistTH1I.h+                       csrc/HROOTHistTH1K.h+                       csrc/HROOTHistTH1S.h+                       csrc/HROOTHistTH2.h+                       csrc/HROOTHistTH2C.h+                       csrc/HROOTHistTH2D.h+                       csrc/HROOTHistTH2F.h+                       csrc/HROOTHistTH2I.h+                       csrc/HROOTHistTH2Poly.h+                       csrc/HROOTHistTH2S.h+                       csrc/HROOTHistTH3.h+                       csrc/HROOTHistTH3C.h+                       csrc/HROOTHistTH3D.h+                       csrc/HROOTHistTH3F.h+                       csrc/HROOTHistTH3I.h+                       csrc/HROOTHistTH3S.h+                       csrc/HROOTHistTHStack.h+                       csrc/HROOTHistTAxis.cpp+                       csrc/HROOTHistTF1.cpp+                       csrc/HROOTHistTFormula.cpp+                       csrc/HROOTHistTGraph.cpp+                       csrc/HROOTHistTGraphAsymmErrors.cpp+                       csrc/HROOTHistTGraphBentErrors.cpp+                       csrc/HROOTHistTGraphErrors.cpp+                       csrc/HROOTHistTH1.cpp+                       csrc/HROOTHistTH1C.cpp+                       csrc/HROOTHistTH1D.cpp+                       csrc/HROOTHistTH1F.cpp+                       csrc/HROOTHistTH1I.cpp+                       csrc/HROOTHistTH1K.cpp+                       csrc/HROOTHistTH1S.cpp+                       csrc/HROOTHistTH2.cpp+                       csrc/HROOTHistTH2C.cpp+                       csrc/HROOTHistTH2D.cpp+                       csrc/HROOTHistTH2F.cpp+                       csrc/HROOTHistTH2I.cpp+                       csrc/HROOTHistTH2Poly.cpp+                       csrc/HROOTHistTH2S.cpp+                       csrc/HROOTHistTH3.cpp+                       csrc/HROOTHistTH3C.cpp+                       csrc/HROOTHistTH3D.cpp+                       csrc/HROOTHistTH3F.cpp+                       csrc/HROOTHistTH3I.cpp+                       csrc/HROOTHistTH3S.cpp+                       csrc/HROOTHistTHStack.cpp+++++Library+  default-language: Haskell2010+  hs-source-dirs: src+  ghc-options:  -Wall -funbox-strict-fields -fno-warn-unused-do-bind -fno-warn-orphans -fno-warn-unused-imports+  ghc-prof-options: -caf-all -auto-all+  Build-Depends:      base>4 && < 5, fficxx-runtime >= 0.0.999 ,HROOT-core+  Exposed-Modules:+                       HROOT.Hist+                       HROOT.Hist.TAxis+                       HROOT.Hist.TF1+                       HROOT.Hist.TFormula+                       HROOT.Hist.TGraph+                       HROOT.Hist.TGraphAsymmErrors+                       HROOT.Hist.TGraphBentErrors+                       HROOT.Hist.TGraphErrors+                       HROOT.Hist.TH1+                       HROOT.Hist.TH1C+                       HROOT.Hist.TH1D+                       HROOT.Hist.TH1F+                       HROOT.Hist.TH1I+                       HROOT.Hist.TH1K+                       HROOT.Hist.TH1S+                       HROOT.Hist.TH2+                       HROOT.Hist.TH2C+                       HROOT.Hist.TH2D+                       HROOT.Hist.TH2F+                       HROOT.Hist.TH2I+                       HROOT.Hist.TH2Poly+                       HROOT.Hist.TH2S+                       HROOT.Hist.TH3+                       HROOT.Hist.TH3C+                       HROOT.Hist.TH3D+                       HROOT.Hist.TH3F+                       HROOT.Hist.TH3I+                       HROOT.Hist.TH3S+                       HROOT.Hist.THStack+                       HROOT.Hist.TAxis.RawType+                       HROOT.Hist.TF1.RawType+                       HROOT.Hist.TFormula.RawType+                       HROOT.Hist.TGraph.RawType+                       HROOT.Hist.TGraphAsymmErrors.RawType+                       HROOT.Hist.TGraphBentErrors.RawType+                       HROOT.Hist.TGraphErrors.RawType+                       HROOT.Hist.TH1.RawType+                       HROOT.Hist.TH1C.RawType+                       HROOT.Hist.TH1D.RawType+                       HROOT.Hist.TH1F.RawType+                       HROOT.Hist.TH1I.RawType+                       HROOT.Hist.TH1K.RawType+                       HROOT.Hist.TH1S.RawType+                       HROOT.Hist.TH2.RawType+                       HROOT.Hist.TH2C.RawType+                       HROOT.Hist.TH2D.RawType+                       HROOT.Hist.TH2F.RawType+                       HROOT.Hist.TH2I.RawType+                       HROOT.Hist.TH2Poly.RawType+                       HROOT.Hist.TH2S.RawType+                       HROOT.Hist.TH3.RawType+                       HROOT.Hist.TH3C.RawType+                       HROOT.Hist.TH3D.RawType+                       HROOT.Hist.TH3F.RawType+                       HROOT.Hist.TH3I.RawType+                       HROOT.Hist.TH3S.RawType+                       HROOT.Hist.THStack.RawType+                       HROOT.Hist.TAxis.FFI+                       HROOT.Hist.TF1.FFI+                       HROOT.Hist.TFormula.FFI+                       HROOT.Hist.TGraph.FFI+                       HROOT.Hist.TGraphAsymmErrors.FFI+                       HROOT.Hist.TGraphBentErrors.FFI+                       HROOT.Hist.TGraphErrors.FFI+                       HROOT.Hist.TH1.FFI+                       HROOT.Hist.TH1C.FFI+                       HROOT.Hist.TH1D.FFI+                       HROOT.Hist.TH1F.FFI+                       HROOT.Hist.TH1I.FFI+                       HROOT.Hist.TH1K.FFI+                       HROOT.Hist.TH1S.FFI+                       HROOT.Hist.TH2.FFI+                       HROOT.Hist.TH2C.FFI+                       HROOT.Hist.TH2D.FFI+                       HROOT.Hist.TH2F.FFI+                       HROOT.Hist.TH2I.FFI+                       HROOT.Hist.TH2Poly.FFI+                       HROOT.Hist.TH2S.FFI+                       HROOT.Hist.TH3.FFI+                       HROOT.Hist.TH3C.FFI+                       HROOT.Hist.TH3D.FFI+                       HROOT.Hist.TH3F.FFI+                       HROOT.Hist.TH3I.FFI+                       HROOT.Hist.TH3S.FFI+                       HROOT.Hist.THStack.FFI+                       HROOT.Hist.TAxis.Interface+                       HROOT.Hist.TF1.Interface+                       HROOT.Hist.TFormula.Interface+                       HROOT.Hist.TGraph.Interface+                       HROOT.Hist.TGraphAsymmErrors.Interface+                       HROOT.Hist.TGraphBentErrors.Interface+                       HROOT.Hist.TGraphErrors.Interface+                       HROOT.Hist.TH1.Interface+                       HROOT.Hist.TH1C.Interface+                       HROOT.Hist.TH1D.Interface+                       HROOT.Hist.TH1F.Interface+                       HROOT.Hist.TH1I.Interface+                       HROOT.Hist.TH1K.Interface+                       HROOT.Hist.TH1S.Interface+                       HROOT.Hist.TH2.Interface+                       HROOT.Hist.TH2C.Interface+                       HROOT.Hist.TH2D.Interface+                       HROOT.Hist.TH2F.Interface+                       HROOT.Hist.TH2I.Interface+                       HROOT.Hist.TH2Poly.Interface+                       HROOT.Hist.TH2S.Interface+                       HROOT.Hist.TH3.Interface+                       HROOT.Hist.TH3C.Interface+                       HROOT.Hist.TH3D.Interface+                       HROOT.Hist.TH3F.Interface+                       HROOT.Hist.TH3I.Interface+                       HROOT.Hist.TH3S.Interface+                       HROOT.Hist.THStack.Interface+                       HROOT.Hist.TAxis.Cast+                       HROOT.Hist.TF1.Cast+                       HROOT.Hist.TFormula.Cast+                       HROOT.Hist.TGraph.Cast+                       HROOT.Hist.TGraphAsymmErrors.Cast+                       HROOT.Hist.TGraphBentErrors.Cast+                       HROOT.Hist.TGraphErrors.Cast+                       HROOT.Hist.TH1.Cast+                       HROOT.Hist.TH1C.Cast+                       HROOT.Hist.TH1D.Cast+                       HROOT.Hist.TH1F.Cast+                       HROOT.Hist.TH1I.Cast+                       HROOT.Hist.TH1K.Cast+                       HROOT.Hist.TH1S.Cast+                       HROOT.Hist.TH2.Cast+                       HROOT.Hist.TH2C.Cast+                       HROOT.Hist.TH2D.Cast+                       HROOT.Hist.TH2F.Cast+                       HROOT.Hist.TH2I.Cast+                       HROOT.Hist.TH2Poly.Cast+                       HROOT.Hist.TH2S.Cast+                       HROOT.Hist.TH3.Cast+                       HROOT.Hist.TH3C.Cast+                       HROOT.Hist.TH3D.Cast+                       HROOT.Hist.TH3F.Cast+                       HROOT.Hist.TH3I.Cast+                       HROOT.Hist.TH3S.Cast+                       HROOT.Hist.THStack.Cast+                       HROOT.Hist.TAxis.Implementation+                       HROOT.Hist.TF1.Implementation+                       HROOT.Hist.TFormula.Implementation+                       HROOT.Hist.TGraph.Implementation+                       HROOT.Hist.TGraphAsymmErrors.Implementation+                       HROOT.Hist.TGraphBentErrors.Implementation+                       HROOT.Hist.TGraphErrors.Implementation+                       HROOT.Hist.TH1.Implementation+                       HROOT.Hist.TH1C.Implementation+                       HROOT.Hist.TH1D.Implementation+                       HROOT.Hist.TH1F.Implementation+                       HROOT.Hist.TH1I.Implementation+                       HROOT.Hist.TH1K.Implementation+                       HROOT.Hist.TH1S.Implementation+                       HROOT.Hist.TH2.Implementation+                       HROOT.Hist.TH2C.Implementation+                       HROOT.Hist.TH2D.Implementation+                       HROOT.Hist.TH2F.Implementation+                       HROOT.Hist.TH2I.Implementation+                       HROOT.Hist.TH2Poly.Implementation+                       HROOT.Hist.TH2S.Implementation+                       HROOT.Hist.TH3.Implementation+                       HROOT.Hist.TH3C.Implementation+                       HROOT.Hist.TH3D.Implementation+                       HROOT.Hist.TH3F.Implementation+                       HROOT.Hist.TH3I.Implementation+                       HROOT.Hist.TH3S.Implementation+                       HROOT.Hist.THStack.Implementation+  +  Other-Modules:++  extra-lib-dirs: +  extra-libraries:    stdc++ +  Include-dirs:       csrc  +  Install-includes:   +                       HROOT-histType.h+                       HROOTHistTAxis.h+                       HROOTHistTF1.h+                       HROOTHistTFormula.h+                       HROOTHistTGraph.h+                       HROOTHistTGraphAsymmErrors.h+                       HROOTHistTGraphBentErrors.h+                       HROOTHistTGraphErrors.h+                       HROOTHistTH1.h+                       HROOTHistTH1C.h+                       HROOTHistTH1D.h+                       HROOTHistTH1F.h+                       HROOTHistTH1I.h+                       HROOTHistTH1K.h+                       HROOTHistTH1S.h+                       HROOTHistTH2.h+                       HROOTHistTH2C.h+                       HROOTHistTH2D.h+                       HROOTHistTH2F.h+                       HROOTHistTH2I.h+                       HROOTHistTH2Poly.h+                       HROOTHistTH2S.h+                       HROOTHistTH3.h+                       HROOTHistTH3C.h+                       HROOTHistTH3D.h+                       HROOTHistTH3F.h+                       HROOTHistTH3I.h+                       HROOTHistTH3S.h+                       HROOTHistTHStack.h++  C-sources:          +                       csrc/HROOTHistTAxis.cpp+                       csrc/HROOTHistTF1.cpp+                       csrc/HROOTHistTFormula.cpp+                       csrc/HROOTHistTGraph.cpp+                       csrc/HROOTHistTGraphAsymmErrors.cpp+                       csrc/HROOTHistTGraphBentErrors.cpp+                       csrc/HROOTHistTGraphErrors.cpp+                       csrc/HROOTHistTH1.cpp+                       csrc/HROOTHistTH1C.cpp+                       csrc/HROOTHistTH1D.cpp+                       csrc/HROOTHistTH1F.cpp+                       csrc/HROOTHistTH1I.cpp+                       csrc/HROOTHistTH1K.cpp+                       csrc/HROOTHistTH1S.cpp+                       csrc/HROOTHistTH2.cpp+                       csrc/HROOTHistTH2C.cpp+                       csrc/HROOTHistTH2D.cpp+                       csrc/HROOTHistTH2F.cpp+                       csrc/HROOTHistTH2I.cpp+                       csrc/HROOTHistTH2Poly.cpp+                       csrc/HROOTHistTH2S.cpp+                       csrc/HROOTHistTH3.cpp+                       csrc/HROOTHistTH3C.cpp+                       csrc/HROOTHistTH3D.cpp+                       csrc/HROOTHistTH3F.cpp+                       csrc/HROOTHistTH3I.cpp+                       csrc/HROOTHistTH3S.cpp+                       csrc/HROOTHistTHStack.cpp+++   ++
+ LICENSE view
@@ -0,0 +1,502 @@+                  GNU LESSER GENERAL PUBLIC LICENSE+                       Version 2.1, February 1999++ Copyright (C) 1991, 1999 Free Software Foundation, Inc.+ 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA+ Everyone is permitted to copy and distribute verbatim copies+ of this license document, but changing it is not allowed.++[This is the first released version of the Lesser GPL.  It also counts+ as the successor of the GNU Library Public License, version 2, hence+ the version number 2.1.]++                            Preamble++  The licenses for most software are designed to take away your+freedom to share and change it.  By contrast, the GNU General Public+Licenses are intended to guarantee your freedom to share and change+free software--to make sure the software is free for all its users.++  This license, the Lesser General Public License, applies to some+specially designated software packages--typically libraries--of the+Free Software Foundation and other authors who decide to use it.  You+can use it too, but we suggest you first think carefully about whether+this license or the ordinary General Public License is the better+strategy to use in any particular case, based on the explanations below.++  When we speak of free software, we are referring to freedom of use,+not price.  Our General Public Licenses are designed to make sure that+you have the freedom to distribute copies of free software (and charge+for this service if you wish); that you receive source code or can get+it if you want it; that you can change the software and use pieces of+it in new free programs; and that you are informed that you can do+these things.++  To protect your rights, we need to make restrictions that forbid+distributors to deny you these rights or to ask you to surrender these+rights.  These restrictions translate to certain responsibilities for+you if you distribute copies of the library or if you modify it.++  For example, if you distribute copies of the library, whether gratis+or for a fee, you must give the recipients all the rights that we gave+you.  You must make sure that they, too, receive or can get the source+code.  If you link other code with the library, you must provide+complete object files to the recipients, so that they can relink them+with the library after making changes to the library and recompiling+it.  And you must show them these terms so they know their rights.++  We protect your rights with a two-step method: (1) we copyright the+library, and (2) we offer you this license, which gives you legal+permission to copy, distribute and/or modify the library.++  To protect each distributor, we want to make it very clear that+there is no warranty for the free library.  Also, if the library is+modified by someone else and passed on, the recipients should know+that what they have is not the original version, so that the original+author's reputation will not be affected by problems that might be+introduced by others.++  Finally, software patents pose a constant threat to the existence of+any free program.  We wish to make sure that a company cannot+effectively restrict the users of a free program by obtaining a+restrictive license from a patent holder.  Therefore, we insist that+any patent license obtained for a version of the library must be+consistent with the full freedom of use specified in this license.++  Most GNU software, including some libraries, is covered by the+ordinary GNU General Public License.  This license, the GNU Lesser+General Public License, applies to certain designated libraries, and+is quite different from the ordinary General Public License.  We use+this license for certain libraries in order to permit linking those+libraries into non-free programs.++  When a program is linked with a library, whether statically or using+a shared library, the combination of the two is legally speaking a+combined work, a derivative of the original library.  The ordinary+General Public License therefore permits such linking only if the+entire combination fits its criteria of freedom.  The Lesser General+Public License permits more lax criteria for linking other code with+the library.++  We call this license the "Lesser" General Public License because it+does Less to protect the user's freedom than the ordinary General+Public License.  It also provides other free software developers Less+of an advantage over competing non-free programs.  These disadvantages+are the reason we use the ordinary General Public License for many+libraries.  However, the Lesser license provides advantages in certain+special circumstances.++  For example, on rare occasions, there may be a special need to+encourage the widest possible use of a certain library, so that it becomes+a de-facto standard.  To achieve this, non-free programs must be+allowed to use the library.  A more frequent case is that a free+library does the same job as widely used non-free libraries.  In this+case, there is little to gain by limiting the free library to free+software only, so we use the Lesser General Public License.++  In other cases, permission to use a particular library in non-free+programs enables a greater number of people to use a large body of+free software.  For example, permission to use the GNU C Library in+non-free programs enables many more people to use the whole GNU+operating system, as well as its variant, the GNU/Linux operating+system.++  Although the Lesser General Public License is Less protective of the+users' freedom, it does ensure that the user of a program that is+linked with the Library has the freedom and the wherewithal to run+that program using a modified version of the Library.++  The precise terms and conditions for copying, distribution and+modification follow.  Pay close attention to the difference between a+"work based on the library" and a "work that uses the library".  The+former contains code derived from the library, whereas the latter must+be combined with the library in order to run.++                  GNU LESSER GENERAL PUBLIC LICENSE+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION++  0. This License Agreement applies to any software library or other+program which contains a notice placed by the copyright holder or+other authorized party saying it may be distributed under the terms of+this Lesser General Public License (also called "this License").+Each licensee is addressed as "you".++  A "library" means a collection of software functions and/or data+prepared so as to be conveniently linked with application programs+(which use some of those functions and data) to form executables.++  The "Library", below, refers to any such software library or work+which has been distributed under these terms.  A "work based on the+Library" means either the Library or any derivative work under+copyright law: that is to say, a work containing the Library or a+portion of it, either verbatim or with modifications and/or translated+straightforwardly into another language.  (Hereinafter, translation is+included without limitation in the term "modification".)++  "Source code" for a work means the preferred form of the work for+making modifications to it.  For a library, complete source code means+all the source code for all modules it contains, plus any associated+interface definition files, plus the scripts used to control compilation+and installation of the library.++  Activities other than copying, distribution and modification are not+covered by this License; they are outside its scope.  The act of+running a program using the Library is not restricted, and output from+such a program is covered only if its contents constitute a work based+on the Library (independent of the use of the Library in a tool for+writing it).  Whether that is true depends on what the Library does+and what the program that uses the Library does.++  1. You may copy and distribute verbatim copies of the Library's+complete source code as you receive it, in any medium, provided that+you conspicuously and appropriately publish on each copy an+appropriate copyright notice and disclaimer of warranty; keep intact+all the notices that refer to this License and to the absence of any+warranty; and distribute a copy of this License along with the+Library.++  You may charge a fee for the physical act of transferring a copy,+and you may at your option offer warranty protection in exchange for a+fee.++  2. You may modify your copy or copies of the Library or any portion+of it, thus forming a work based on the Library, and copy and+distribute such modifications or work under the terms of Section 1+above, provided that you also meet all of these conditions:++    a) The modified work must itself be a software library.++    b) You must cause the files modified to carry prominent notices+    stating that you changed the files and the date of any change.++    c) You must cause the whole of the work to be licensed at no+    charge to all third parties under the terms of this License.++    d) If a facility in the modified Library refers to a function or a+    table of data to be supplied by an application program that uses+    the facility, other than as an argument passed when the facility+    is invoked, then you must make a good faith effort to ensure that,+    in the event an application does not supply such function or+    table, the facility still operates, and performs whatever part of+    its purpose remains meaningful.++    (For example, a function in a library to compute square roots has+    a purpose that is entirely well-defined independent of the+    application.  Therefore, Subsection 2d requires that any+    application-supplied function or table used by this function must+    be optional: if the application does not supply it, the square+    root function must still compute square roots.)++These requirements apply to the modified work as a whole.  If+identifiable sections of that work are not derived from the Library,+and can be reasonably considered independent and separate works in+themselves, then this License, and its terms, do not apply to those+sections when you distribute them as separate works.  But when you+distribute the same sections as part of a whole which is a work based+on the Library, the distribution of the whole must be on the terms of+this License, whose permissions for other licensees extend to the+entire whole, and thus to each and every part regardless of who wrote+it.++Thus, it is not the intent of this section to claim rights or contest+your rights to work written entirely by you; rather, the intent is to+exercise the right to control the distribution of derivative or+collective works based on the Library.++In addition, mere aggregation of another work not based on the Library+with the Library (or with a work based on the Library) on a volume of+a storage or distribution medium does not bring the other work under+the scope of this License.++  3. You may opt to apply the terms of the ordinary GNU General Public+License instead of this License to a given copy of the Library.  To do+this, you must alter all the notices that refer to this License, so+that they refer to the ordinary GNU General Public License, version 2,+instead of to this License.  (If a newer version than version 2 of the+ordinary GNU General Public License has appeared, then you can specify+that version instead if you wish.)  Do not make any other change in+these notices.++  Once this change is made in a given copy, it is irreversible for+that copy, so the ordinary GNU General Public License applies to all+subsequent copies and derivative works made from that copy.++  This option is useful when you wish to copy part of the code of+the Library into a program that is not a library.++  4. You may copy and distribute the Library (or a portion or+derivative of it, under Section 2) in object code or executable form+under the terms of Sections 1 and 2 above provided that you accompany+it with the complete corresponding machine-readable source code, which+must be distributed under the terms of Sections 1 and 2 above on a+medium customarily used for software interchange.++  If distribution of object code is made by offering access to copy+from a designated place, then offering equivalent access to copy the+source code from the same place satisfies the requirement to+distribute the source code, even though third parties are not+compelled to copy the source along with the object code.++  5. A program that contains no derivative of any portion of the+Library, but is designed to work with the Library by being compiled or+linked with it, is called a "work that uses the Library".  Such a+work, in isolation, is not a derivative work of the Library, and+therefore falls outside the scope of this License.++  However, linking a "work that uses the Library" with the Library+creates an executable that is a derivative of the Library (because it+contains portions of the Library), rather than a "work that uses the+library".  The executable is therefore covered by this License.+Section 6 states terms for distribution of such executables.++  When a "work that uses the Library" uses material from a header file+that is part of the Library, the object code for the work may be a+derivative work of the Library even though the source code is not.+Whether this is true is especially significant if the work can be+linked without the Library, or if the work is itself a library.  The+threshold for this to be true is not precisely defined by law.++  If such an object file uses only numerical parameters, data+structure layouts and accessors, and small macros and small inline+functions (ten lines or less in length), then the use of the object+file is unrestricted, regardless of whether it is legally a derivative+work.  (Executables containing this object code plus portions of the+Library will still fall under Section 6.)++  Otherwise, if the work is a derivative of the Library, you may+distribute the object code for the work under the terms of Section 6.+Any executables containing that work also fall under Section 6,+whether or not they are linked directly with the Library itself.++  6. As an exception to the Sections above, you may also combine or+link a "work that uses the Library" with the Library to produce a+work containing portions of the Library, and distribute that work+under terms of your choice, provided that the terms permit+modification of the work for the customer's own use and reverse+engineering for debugging such modifications.++  You must give prominent notice with each copy of the work that the+Library is used in it and that the Library and its use are covered by+this License.  You must supply a copy of this License.  If the work+during execution displays copyright notices, you must include the+copyright notice for the Library among them, as well as a reference+directing the user to the copy of this License.  Also, you must do one+of these things:++    a) Accompany the work with the complete corresponding+    machine-readable source code for the Library including whatever+    changes were used in the work (which must be distributed under+    Sections 1 and 2 above); and, if the work is an executable linked+    with the Library, with the complete machine-readable "work that+    uses the Library", as object code and/or source code, so that the+    user can modify the Library and then relink to produce a modified+    executable containing the modified Library.  (It is understood+    that the user who changes the contents of definitions files in the+    Library will not necessarily be able to recompile the application+    to use the modified definitions.)++    b) Use a suitable shared library mechanism for linking with the+    Library.  A suitable mechanism is one that (1) uses at run time a+    copy of the library already present on the user's computer system,+    rather than copying library functions into the executable, and (2)+    will operate properly with a modified version of the library, if+    the user installs one, as long as the modified version is+    interface-compatible with the version that the work was made with.++    c) Accompany the work with a written offer, valid for at+    least three years, to give the same user the materials+    specified in Subsection 6a, above, for a charge no more+    than the cost of performing this distribution.++    d) If distribution of the work is made by offering access to copy+    from a designated place, offer equivalent access to copy the above+    specified materials from the same place.++    e) Verify that the user has already received a copy of these+    materials or that you have already sent this user a copy.++  For an executable, the required form of the "work that uses the+Library" must include any data and utility programs needed for+reproducing the executable from it.  However, as a special exception,+the materials to be distributed need not include anything that is+normally distributed (in either source or binary form) with the major+components (compiler, kernel, and so on) of the operating system on+which the executable runs, unless that component itself accompanies+the executable.++  It may happen that this requirement contradicts the license+restrictions of other proprietary libraries that do not normally+accompany the operating system.  Such a contradiction means you cannot+use both them and the Library together in an executable that you+distribute.++  7. You may place library facilities that are a work based on the+Library side-by-side in a single library together with other library+facilities not covered by this License, and distribute such a combined+library, provided that the separate distribution of the work based on+the Library and of the other library facilities is otherwise+permitted, and provided that you do these two things:++    a) Accompany the combined library with a copy of the same work+    based on the Library, uncombined with any other library+    facilities.  This must be distributed under the terms of the+    Sections above.++    b) Give prominent notice with the combined library of the fact+    that part of it is a work based on the Library, and explaining+    where to find the accompanying uncombined form of the same work.++  8. You may not copy, modify, sublicense, link with, or distribute+the Library except as expressly provided under this License.  Any+attempt otherwise to copy, modify, sublicense, link with, or+distribute the Library is void, and will automatically terminate your+rights under this License.  However, parties who have received copies,+or rights, from you under this License will not have their licenses+terminated so long as such parties remain in full compliance.++  9. You are not required to accept this License, since you have not+signed it.  However, nothing else grants you permission to modify or+distribute the Library or its derivative works.  These actions are+prohibited by law if you do not accept this License.  Therefore, by+modifying or distributing the Library (or any work based on the+Library), you indicate your acceptance of this License to do so, and+all its terms and conditions for copying, distributing or modifying+the Library or works based on it.++  10. Each time you redistribute the Library (or any work based on the+Library), the recipient automatically receives a license from the+original licensor to copy, distribute, link with or modify the Library+subject to these terms and conditions.  You may not impose any further+restrictions on the recipients' exercise of the rights granted herein.+You are not responsible for enforcing compliance by third parties with+this License.++  11. If, as a consequence of a court judgment or allegation of patent+infringement or for any other reason (not limited to patent issues),+conditions are imposed on you (whether by court order, agreement or+otherwise) that contradict the conditions of this License, they do not+excuse you from the conditions of this License.  If you cannot+distribute so as to satisfy simultaneously your obligations under this+License and any other pertinent obligations, then as a consequence you+may not distribute the Library at all.  For example, if a patent+license would not permit royalty-free redistribution of the Library by+all those who receive copies directly or indirectly through you, then+the only way you could satisfy both it and this License would be to+refrain entirely from distribution of the Library.++If any portion of this section is held invalid or unenforceable under any+particular circumstance, the balance of the section is intended to apply,+and the section as a whole is intended to apply in other circumstances.++It is not the purpose of this section to induce you to infringe any+patents or other property right claims or to contest validity of any+such claims; this section has the sole purpose of protecting the+integrity of the free software distribution system which is+implemented by public license practices.  Many people have made+generous contributions to the wide range of software distributed+through that system in reliance on consistent application of that+system; it is up to the author/donor to decide if he or she is willing+to distribute software through any other system and a licensee cannot+impose that choice.++This section is intended to make thoroughly clear what is believed to+be a consequence of the rest of this License.++  12. If the distribution and/or use of the Library is restricted in+certain countries either by patents or by copyrighted interfaces, the+original copyright holder who places the Library under this License may add+an explicit geographical distribution limitation excluding those countries,+so that distribution is permitted only in or among countries not thus+excluded.  In such case, this License incorporates the limitation as if+written in the body of this License.++  13. The Free Software Foundation may publish revised and/or new+versions of the Lesser General Public License from time to time.+Such new versions will be similar in spirit to the present version,+but may differ in detail to address new problems or concerns.++Each version is given a distinguishing version number.  If the Library+specifies a version number of this License which applies to it and+"any later version", you have the option of following the terms and+conditions either of that version or of any later version published by+the Free Software Foundation.  If the Library does not specify a+license version number, you may choose any version ever published by+the Free Software Foundation.++  14. If you wish to incorporate parts of the Library into other free+programs whose distribution conditions are incompatible with these,+write to the author to ask for permission.  For software which is+copyrighted by the Free Software Foundation, write to the Free+Software Foundation; we sometimes make exceptions for this.  Our+decision will be guided by the two goals of preserving the free status+of all derivatives of our free software and of promoting the sharing+and reuse of software generally.++                            NO WARRANTY++  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.++  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH+DAMAGES.++                     END OF TERMS AND CONDITIONS++           How to Apply These Terms to Your New Libraries++  If you develop a new library, and you want it to be of the greatest+possible use to the public, we recommend making it free software that+everyone can redistribute and change.  You can do so by permitting+redistribution under these terms (or, alternatively, under the terms of the+ordinary General Public License).++  To apply these terms, attach the following notices to the library.  It is+safest to attach them to the start of each source file to most effectively+convey the exclusion of warranty; and each file should have at least the+"copyright" line and a pointer to where the full notice is found.++    <one line to give the library's name and a brief idea of what it does.>+    Copyright (C) <year>  <name of author>++    This library is free software; you can redistribute it and/or+    modify it under the terms of the GNU Lesser General Public+    License as published by the Free Software Foundation; either+    version 2.1 of the License, or (at your option) any later version.++    This library is distributed in the hope that it will be useful,+    but WITHOUT ANY WARRANTY; without even the implied warranty of+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+    Lesser General Public License for more details.++    You should have received a copy of the GNU Lesser General Public+    License along with this library; if not, write to the Free Software+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA++Also add information on how to contact you by electronic and paper mail.++You should also get your employer (if you work as a programmer) or your+school, if any, to sign a "copyright disclaimer" for the library, if+necessary.  Here is a sample; alter the names:++  Yoyodyne, Inc., hereby disclaims all copyright interest in the+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.++  <signature of Ty Coon>, 1 April 1990+  Ty Coon, President of Vice++That's all there is to it!
+ Setup.lhs view
@@ -0,0 +1,33 @@+#! /usr/bin/env runhaskell+  +> import Distribution.Simple+> import Distribution.Simple.Setup+> import Distribution.PackageDescription+> import Distribution.Simple.LocalBuildInfo+>+> import Config+>+> myconfigHook = simpleUserHooks { confHook = hookfunction } +>+> hookfunction x y = do +>   binfo <- confHook simpleUserHooks x y +>   r_pbi <- config binfo+>   let pkg_descr = localPkgDescr binfo+>   +>   let newbinfo = case r_pbi of +>                    Just pbi ->  binfo { localPkgDescr = updatePackageDescription pbi pkg_descr }+>                    Nothing -> do +>                      let r_lib = library pkg_descr +>                      case r_lib of+>                        Just lib ->  +>                          let binfo2 = libBuildInfo lib+>                              newlib = lib { libBuildInfo = binfo2 { cSources = [] }}  +>                          in  binfo { localPkgDescr = pkg_descr { library = Just newlib }}  +>                        Nothing -> error "some library setting is wrong." +> --   putStrLn (show (localPkgDescr newbinfo))+>   return newbinfo+>  +>+> main = defaultMainWithHooks myconfigHook+>+
+ csrc/HROOT-histType.h view
@@ -0,0 +1,152 @@+#ifdef __cplusplus+extern "C" { +#endif++#ifndef __HROOT_HIST__+#define __HROOT_HIST__++// Opaque type definition for TAxis +typedef struct TAxis_tag TAxis_t; +typedef TAxis_t * TAxis_p; +typedef TAxis_t const* const_TAxis_p; ++// Opaque type definition for TF1 +typedef struct TF1_tag TF1_t; +typedef TF1_t * TF1_p; +typedef TF1_t const* const_TF1_p; ++// Opaque type definition for TFormula +typedef struct TFormula_tag TFormula_t; +typedef TFormula_t * TFormula_p; +typedef TFormula_t const* const_TFormula_p; ++// Opaque type definition for TGraph +typedef struct TGraph_tag TGraph_t; +typedef TGraph_t * TGraph_p; +typedef TGraph_t const* const_TGraph_p; ++// Opaque type definition for TGraphAsymmErrors +typedef struct TGraphAsymmErrors_tag TGraphAsymmErrors_t; +typedef TGraphAsymmErrors_t * TGraphAsymmErrors_p; +typedef TGraphAsymmErrors_t const* const_TGraphAsymmErrors_p; ++// Opaque type definition for TGraphBentErrors +typedef struct TGraphBentErrors_tag TGraphBentErrors_t; +typedef TGraphBentErrors_t * TGraphBentErrors_p; +typedef TGraphBentErrors_t const* const_TGraphBentErrors_p; ++// Opaque type definition for TGraphErrors +typedef struct TGraphErrors_tag TGraphErrors_t; +typedef TGraphErrors_t * TGraphErrors_p; +typedef TGraphErrors_t const* const_TGraphErrors_p; ++// Opaque type definition for TH1 +typedef struct TH1_tag TH1_t; +typedef TH1_t * TH1_p; +typedef TH1_t const* const_TH1_p; ++// Opaque type definition for TH1C +typedef struct TH1C_tag TH1C_t; +typedef TH1C_t * TH1C_p; +typedef TH1C_t const* const_TH1C_p; ++// Opaque type definition for TH1D +typedef struct TH1D_tag TH1D_t; +typedef TH1D_t * TH1D_p; +typedef TH1D_t const* const_TH1D_p; ++// Opaque type definition for TH1F +typedef struct TH1F_tag TH1F_t; +typedef TH1F_t * TH1F_p; +typedef TH1F_t const* const_TH1F_p; ++// Opaque type definition for TH1I +typedef struct TH1I_tag TH1I_t; +typedef TH1I_t * TH1I_p; +typedef TH1I_t const* const_TH1I_p; ++// Opaque type definition for TH1K +typedef struct TH1K_tag TH1K_t; +typedef TH1K_t * TH1K_p; +typedef TH1K_t const* const_TH1K_p; ++// Opaque type definition for TH1S +typedef struct TH1S_tag TH1S_t; +typedef TH1S_t * TH1S_p; +typedef TH1S_t const* const_TH1S_p; ++// Opaque type definition for TH2 +typedef struct TH2_tag TH2_t; +typedef TH2_t * TH2_p; +typedef TH2_t const* const_TH2_p; ++// Opaque type definition for TH2C +typedef struct TH2C_tag TH2C_t; +typedef TH2C_t * TH2C_p; +typedef TH2C_t const* const_TH2C_p; ++// Opaque type definition for TH2D +typedef struct TH2D_tag TH2D_t; +typedef TH2D_t * TH2D_p; +typedef TH2D_t const* const_TH2D_p; ++// Opaque type definition for TH2F +typedef struct TH2F_tag TH2F_t; +typedef TH2F_t * TH2F_p; +typedef TH2F_t const* const_TH2F_p; ++// Opaque type definition for TH2I +typedef struct TH2I_tag TH2I_t; +typedef TH2I_t * TH2I_p; +typedef TH2I_t const* const_TH2I_p; ++// Opaque type definition for TH2Poly +typedef struct TH2Poly_tag TH2Poly_t; +typedef TH2Poly_t * TH2Poly_p; +typedef TH2Poly_t const* const_TH2Poly_p; ++// Opaque type definition for TH2S +typedef struct TH2S_tag TH2S_t; +typedef TH2S_t * TH2S_p; +typedef TH2S_t const* const_TH2S_p; ++// Opaque type definition for TH3 +typedef struct TH3_tag TH3_t; +typedef TH3_t * TH3_p; +typedef TH3_t const* const_TH3_p; ++// Opaque type definition for TH3C +typedef struct TH3C_tag TH3C_t; +typedef TH3C_t * TH3C_p; +typedef TH3C_t const* const_TH3C_p; ++// Opaque type definition for TH3D +typedef struct TH3D_tag TH3D_t; +typedef TH3D_t * TH3D_p; +typedef TH3D_t const* const_TH3D_p; ++// Opaque type definition for TH3F +typedef struct TH3F_tag TH3F_t; +typedef TH3F_t * TH3F_p; +typedef TH3F_t const* const_TH3F_p; ++// Opaque type definition for TH3I +typedef struct TH3I_tag TH3I_t; +typedef TH3I_t * TH3I_p; +typedef TH3I_t const* const_TH3I_p; ++// Opaque type definition for TH3S +typedef struct TH3S_tag TH3S_t; +typedef TH3S_t * TH3S_p; +typedef TH3S_t const* const_TH3S_p; ++// Opaque type definition for THStack +typedef struct THStack_tag THStack_t; +typedef THStack_t * THStack_p; +typedef THStack_t const* const_THStack_p; ++#endif // __HROOT_HIST__++#ifdef __cplusplus+}+#endif
+ csrc/HROOTHistTAxis.cpp view
@@ -0,0 +1,49 @@+#include <MacroPatternMatch.h>++#include "HROOTCoreTNamed.h"+#include "HROOTCoreTAttAxis.h"+#include "TAxis.h"+#include "HROOTHistTAxis.h"++using namespace std;+++template<class ToType, class FromType>+const ToType* to_const(const FromType* x) {+  return reinterpret_cast<const ToType*>(x);+}++template<class ToType, class FromType>+ToType* to_nonconst(FromType* x) {+  return reinterpret_cast<ToType*>(x);+}++template<class ToType, class FromType>+const ToType& to_constref(const FromType& x) {+  return reinterpret_cast<const ToType&>(x);+}++template<class ToType, class FromType>+ToType& to_nonconstref(FromType& x) {+  return reinterpret_cast<ToType&>(x);+}+++#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)++#define TYPECASTMETHOD(cname,mname,oname) \+  IIF( CHECKPROTECT(cname,mname) ) ( \+  (to_nonconst<oname,cname ## _t>), \+  (to_nonconst<cname,cname ## _t>) )+++TNAMED_DEF_VIRT(TAxis)+TATTAXIS_DEF_VIRT(TAxis)+TOBJECT_DEF_VIRT(TAxis)+DELETABLE_DEF_VIRT(TAxis)++TAXIS_DEF_VIRT(TAxis)++TAXIS_DEF_NONVIRT(TAxis)++
+ csrc/HROOTHistTAxis.h view
@@ -0,0 +1,100 @@+#ifdef __cplusplus+extern "C" { +#endif ++#ifndef __HROOT_HIST__TAxis__+#define __HROOT_HIST__TAxis__++#include "HROOT-histType.h"++#include "HROOTCoreTNamed.h"+#include "HROOTCoreTAttAxis.h"+#include "HROOTCoreTObject.h"+#include "HROOTCoreDeletable.h"+#include "HROOT-coreType.h"++#undef TAXIS_DECL_VIRT+#define TAXIS_DECL_VIRT(Type) \+int Type ## _findBinTAxis ( Type ## _p p, double x ); \+int Type ## _findFixBinTAxis ( Type ## _p p, double x ); \+double Type ## _getBinCenterTAxis ( Type ## _p p, int bin ); \+double Type ## _GetBinCenterLog ( Type ## _p p, int bin ); \+double Type ## _GetBinUpEdge ( Type ## _p p, int bin ); \+void Type ## _SetTimeDisplay ( Type ## _p p, int value ); \+void Type ## _SetTimeFormat ( Type ## _p p, const char* format ); \+void Type ## _SetTimeOffset ( Type ## _p p, double toffset, const char* option )++#undef TAXIS_DECL_NONVIRT+#define TAXIS_DECL_NONVIRT(Type) \+Type ## _p Type ## _newTAxis ( int nbins, double xmin, double xmax ); \+int Type ## _tAxisGetCenterLabels ( Type ## _p p ); \+int Type ## _tAxisGetCenterTitle ( Type ## _p p )++#undef TAXIS_DEF_VIRT+#define TAXIS_DEF_VIRT(Type)\+int Type ## _findBinTAxis ( Type ## _p p, double x )\+{\+return TYPECASTMETHOD(Type,findBinTAxis,TAxis)(p)->FindBin(x);\+}\+int Type ## _findFixBinTAxis ( Type ## _p p, double x )\+{\+return TYPECASTMETHOD(Type,findFixBinTAxis,TAxis)(p)->FindFixBin(x);\+}\+double Type ## _getBinCenterTAxis ( Type ## _p p, int bin )\+{\+return TYPECASTMETHOD(Type,getBinCenterTAxis,TAxis)(p)->GetBinCenter(bin);\+}\+double Type ## _GetBinCenterLog ( Type ## _p p, int bin )\+{\+return TYPECASTMETHOD(Type,GetBinCenterLog,TAxis)(p)->GetBinCenterLog(bin);\+}\+double Type ## _GetBinUpEdge ( Type ## _p p, int bin )\+{\+return TYPECASTMETHOD(Type,GetBinUpEdge,TAxis)(p)->GetBinUpEdge(bin);\+}\+void Type ## _SetTimeDisplay ( Type ## _p p, int value )\+{\+TYPECASTMETHOD(Type,SetTimeDisplay,TAxis)(p)->SetTimeDisplay(value);\+}\+void Type ## _SetTimeFormat ( Type ## _p p, const char* format )\+{\+TYPECASTMETHOD(Type,SetTimeFormat,TAxis)(p)->SetTimeFormat(format);\+}\+void Type ## _SetTimeOffset ( Type ## _p p, double toffset, const char* option )\+{\+TYPECASTMETHOD(Type,SetTimeOffset,TAxis)(p)->SetTimeOffset(toffset, option);\+}++#undef TAXIS_DEF_NONVIRT+#define TAXIS_DEF_NONVIRT(Type)\+Type ## _p Type ## _newTAxis ( int nbins, double xmin, double xmax )\+{\+Type * newp = new Type (nbins, xmin, xmax); \+return to_nonconst<Type ## _t, Type >(newp);\+}\+int Type ## _tAxisGetCenterLabels ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,tAxisGetCenterLabels,TAxis)(p)->GetCenterLabels();\+}\+int Type ## _tAxisGetCenterTitle ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,tAxisGetCenterTitle,TAxis)(p)->GetCenterTitle();\+}++TNAMED_DECL_VIRT(TAxis);+TATTAXIS_DECL_VIRT(TAxis);+TOBJECT_DECL_VIRT(TAxis);+DELETABLE_DECL_VIRT(TAxis);+++TAXIS_DECL_VIRT(TAxis);+++TAXIS_DECL_NONVIRT(TAxis);+++#endif // __HROOT_HIST__TAxis__++#ifdef __cplusplus+}+#endif
+ csrc/HROOTHistTF1.cpp view
@@ -0,0 +1,57 @@+#include <MacroPatternMatch.h>++#include "HROOTCoreTObject.h"+#include "HROOTHistTH1.h"+#include "HROOTHistTAxis.h"+#include "HROOTHistTFormula.h"+#include "HROOTCoreTAttLine.h"+#include "HROOTCoreTAttFill.h"+#include "HROOTCoreTAttMarker.h"+#include "TF1.h"+#include "HROOTHistTF1.h"++using namespace std;+++template<class ToType, class FromType>+const ToType* to_const(const FromType* x) {+  return reinterpret_cast<const ToType*>(x);+}++template<class ToType, class FromType>+ToType* to_nonconst(FromType* x) {+  return reinterpret_cast<ToType*>(x);+}++template<class ToType, class FromType>+const ToType& to_constref(const FromType& x) {+  return reinterpret_cast<const ToType&>(x);+}++template<class ToType, class FromType>+ToType& to_nonconstref(FromType& x) {+  return reinterpret_cast<ToType&>(x);+}+++#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)++#define TYPECASTMETHOD(cname,mname,oname) \+  IIF( CHECKPROTECT(cname,mname) ) ( \+  (to_nonconst<oname,cname ## _t>), \+  (to_nonconst<cname,cname ## _t>) )+++TFORMULA_DEF_VIRT(TF1)+TATTLINE_DEF_VIRT(TF1)+TATTFILL_DEF_VIRT(TF1)+TATTMARKER_DEF_VIRT(TF1)+TNAMED_DEF_VIRT(TF1)+TOBJECT_DEF_VIRT(TF1)+DELETABLE_DEF_VIRT(TF1)++TF1_DEF_VIRT(TF1)++TF1_DEF_NONVIRT(TF1)++
+ csrc/HROOTHistTF1.h view
@@ -0,0 +1,371 @@+#ifdef __cplusplus+extern "C" { +#endif ++#ifndef __HROOT_HIST__TF1__+#define __HROOT_HIST__TF1__++#include "HROOT-histType.h"++#include "HROOTHistTFormula.h"+#include "HROOTCoreTAttLine.h"+#include "HROOTCoreTAttFill.h"+#include "HROOTCoreTAttMarker.h"+#include "HROOTCoreTNamed.h"+#include "HROOTCoreTObject.h"+#include "HROOTCoreDeletable.h"+#include "HROOT-coreType.h"++#undef TF1_DECL_VIRT+#define TF1_DECL_VIRT(Type) \+double Type ## _Derivative ( Type ## _p p, double x, double * params, double epsilon ); \+double Type ## _Derivative2 ( Type ## _p p, double x, double * params, double epsilon ); \+double Type ## _Derivative3 ( Type ## _p p, double x, double * params, double epsilon ); \+Type ## _p Type ## _drawCopyTF1 ( Type ## _p p, const char* option ); \+TObject_p Type ## _DrawDerivative ( Type ## _p p, const char* option ); \+TObject_p Type ## _DrawIntegral ( Type ## _p p, const char* option ); \+void Type ## _DrawF1 ( Type ## _p p, const char* formula, double xmin, double xmax, const char* option ); \+void Type ## _FixParameter ( Type ## _p p, int ipar, double value ); \+double Type ## _getMaximumTF1 ( Type ## _p p, double xmin, double xmax, double epsilon, double maxiter, int logx ); \+double Type ## _getMinimumTF1 ( Type ## _p p, double xmin, double xmax, double epsilon, double maxiter, int logx ); \+double Type ## _GetMaximumX ( Type ## _p p, double xmin, double xmax, double epsilon, double maxiter, int logx ); \+double Type ## _GetMinimumX ( Type ## _p p, double xmin, double xmax, double epsilon, double maxiter, int logx ); \+int Type ## _GetNDF ( Type ## _p p ); \+int Type ## _GetNpx ( Type ## _p p ); \+int Type ## _GetNumberFreeParameters ( Type ## _p p ); \+int Type ## _GetNumberFitPoints ( Type ## _p p ); \+double Type ## _GetParError ( Type ## _p p, int ipar ); \+double Type ## _GetProb ( Type ## _p p ); \+int Type ## _getQuantilesTF1 ( Type ## _p p, int nprobSum, double * q, double * probSum ); \+double Type ## _getRandomTF1 ( Type ## _p p, double xmin, double xmax ); \+double Type ## _GetSave ( Type ## _p p, double * x ); \+double Type ## _GetX ( Type ## _p p, double y, double xmin, double xmax, double epsilon, int maxiter ); \+double Type ## _GetXmin ( Type ## _p p ); \+double Type ## _GetXmax ( Type ## _p p ); \+double Type ## _GradientPar ( Type ## _p p, int ipar, double * x, double eps ); \+void Type ## _InitArgs ( Type ## _p p, double * x, double * params ); \+double Type ## _IntegralTF1 ( Type ## _p p, double a, double b, double * params, double epsilon ); \+double Type ## _IntegralError ( Type ## _p p, double a, double b, double * params, double * covmat, double epsilon ); \+double Type ## _IntegralFast ( Type ## _p p, int num, double * x, double * w, double a, double b, double * params, double epsilon ); \+int Type ## _IsInside ( Type ## _p p, double * x ); \+void Type ## _ReleaseParameter ( Type ## _p p, int ipar ); \+void Type ## _SetChisquare ( Type ## _p p, double chi2 ); \+void Type ## _setMaximumTF1 ( Type ## _p p, double maximum ); \+void Type ## _setMinimumTF1 ( Type ## _p p, double minimum ); \+void Type ## _SetNDF ( Type ## _p p, int ndf ); \+void Type ## _SetNumberFitPoints ( Type ## _p p, int npfits ); \+void Type ## _SetNpx ( Type ## _p p, int npx ); \+void Type ## _SetParError ( Type ## _p p, int ipar, double error ); \+void Type ## _SetParErrors ( Type ## _p p, double * errors ); \+void Type ## _SetParLimits ( Type ## _p p, int ipar, double parmin, double parmax ); \+void Type ## _SetParent ( Type ## _p p, TObject_p parent ); \+void Type ## _setRange1 ( Type ## _p p, double xmin, double xmax ); \+void Type ## _setRange2 ( Type ## _p p, double xmin, double xmax, double ymin, double ymax ); \+void Type ## _setRange3 ( Type ## _p p, double xmin, double xmax, double ymin, double ymax, double zmin, double zmax ); \+void Type ## _SetSavedPoint ( Type ## _p p, int point, double value ); \+double Type ## _Moment ( Type ## _p p, double n, double a, double b, double * params, double epsilon ); \+double Type ## _CentralMoment ( Type ## _p p, double n, double a, double b, double * params, double epsilon ); \+double Type ## _Mean ( Type ## _p p, double a, double b, double * params, double epsilon ); \+double Type ## _Variance ( Type ## _p p, double a, double b, double * params, double epsilon )++#undef TF1_DECL_NONVIRT+#define TF1_DECL_NONVIRT(Type) \+Type ## _p Type ## _newTF1 ( const char* name, const char* formula, double xmin, double xmax ); \+double Type ## _tF1DerivativeError (  ); \+double Type ## _tF1GetChisquare ( Type ## _p p ); \+TH1_p Type ## _tF1GetHistogram ( Type ## _p p ); \+TObject_p Type ## _tF1GetParent ( Type ## _p p ); \+TAxis_p Type ## _tF1GetXaxis ( Type ## _p p ); \+TAxis_p Type ## _tF1GetYaxis ( Type ## _p p ); \+TAxis_p Type ## _tF1GetZaxis ( Type ## _p p ); \+void Type ## _tF1InitStandardFunctions (  ); \+TF1_p Type ## _tF1GetCurrent (  ); \+void Type ## _tF1AbsValue ( int reject ); \+void Type ## _tF1RejectPoint ( int reject ); \+int Type ## _tF1RejectedPoint (  ); \+void Type ## _tF1SetCurrent ( TF1_p f1 ); \+void Type ## _tF1CalcGaussLegendreSamplingPoints ( int num, double * x, double * w, double eps )++#undef TF1_DEF_VIRT+#define TF1_DEF_VIRT(Type)\+double Type ## _Derivative ( Type ## _p p, double x, double * params, double epsilon )\+{\+return TYPECASTMETHOD(Type,Derivative,TF1)(p)->Derivative(x, params, epsilon);\+}\+double Type ## _Derivative2 ( Type ## _p p, double x, double * params, double epsilon )\+{\+return TYPECASTMETHOD(Type,Derivative2,TF1)(p)->Derivative2(x, params, epsilon);\+}\+double Type ## _Derivative3 ( Type ## _p p, double x, double * params, double epsilon )\+{\+return TYPECASTMETHOD(Type,Derivative3,TF1)(p)->Derivative3(x, params, epsilon);\+}\+Type ## _p Type ## _drawCopyTF1 ( Type ## _p p, const char* option )\+{\+return to_nonconst<Type ## _t, Type>((Type *)TYPECASTMETHOD(Type,drawCopyTF1,TF1)(p)->DrawCopy(option)) ;\+}\+TObject_p Type ## _DrawDerivative ( Type ## _p p, const char* option )\+{\+return to_nonconst<TObject_t,TObject>((TObject*)TYPECASTMETHOD(Type,DrawDerivative,TF1)(p)->DrawDerivative(option));\+}\+TObject_p Type ## _DrawIntegral ( Type ## _p p, const char* option )\+{\+return to_nonconst<TObject_t,TObject>((TObject*)TYPECASTMETHOD(Type,DrawIntegral,TF1)(p)->DrawIntegral(option));\+}\+void Type ## _DrawF1 ( Type ## _p p, const char* formula, double xmin, double xmax, const char* option )\+{\+TYPECASTMETHOD(Type,DrawF1,TF1)(p)->DrawF1(formula, xmin, xmax, option);\+}\+void Type ## _FixParameter ( Type ## _p p, int ipar, double value )\+{\+TYPECASTMETHOD(Type,FixParameter,TF1)(p)->FixParameter(ipar, value);\+}\+double Type ## _getMaximumTF1 ( Type ## _p p, double xmin, double xmax, double epsilon, double maxiter, int logx )\+{\+return TYPECASTMETHOD(Type,getMaximumTF1,TF1)(p)->GetMaximum(xmin, xmax, epsilon, maxiter, logx);\+}\+double Type ## _getMinimumTF1 ( Type ## _p p, double xmin, double xmax, double epsilon, double maxiter, int logx )\+{\+return TYPECASTMETHOD(Type,getMinimumTF1,TF1)(p)->GetMinimum(xmin, xmax, epsilon, maxiter, logx);\+}\+double Type ## _GetMaximumX ( Type ## _p p, double xmin, double xmax, double epsilon, double maxiter, int logx )\+{\+return TYPECASTMETHOD(Type,GetMaximumX,TF1)(p)->GetMaximumX(xmin, xmax, epsilon, maxiter, logx);\+}\+double Type ## _GetMinimumX ( Type ## _p p, double xmin, double xmax, double epsilon, double maxiter, int logx )\+{\+return TYPECASTMETHOD(Type,GetMinimumX,TF1)(p)->GetMinimumX(xmin, xmax, epsilon, maxiter, logx);\+}\+int Type ## _GetNDF ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,GetNDF,TF1)(p)->GetNDF();\+}\+int Type ## _GetNpx ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,GetNpx,TF1)(p)->GetNpx();\+}\+int Type ## _GetNumberFreeParameters ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,GetNumberFreeParameters,TF1)(p)->GetNumberFreeParameters();\+}\+int Type ## _GetNumberFitPoints ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,GetNumberFitPoints,TF1)(p)->GetNumberFitPoints();\+}\+double Type ## _GetParError ( Type ## _p p, int ipar )\+{\+return TYPECASTMETHOD(Type,GetParError,TF1)(p)->GetParError(ipar);\+}\+double Type ## _GetProb ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,GetProb,TF1)(p)->GetProb();\+}\+int Type ## _getQuantilesTF1 ( Type ## _p p, int nprobSum, double * q, double * probSum )\+{\+return TYPECASTMETHOD(Type,getQuantilesTF1,TF1)(p)->GetQuantiles(nprobSum, q, probSum);\+}\+double Type ## _getRandomTF1 ( Type ## _p p, double xmin, double xmax )\+{\+return TYPECASTMETHOD(Type,getRandomTF1,TF1)(p)->GetRandom(xmin, xmax);\+}\+double Type ## _GetSave ( Type ## _p p, double * x )\+{\+return TYPECASTMETHOD(Type,GetSave,TF1)(p)->GetSave(x);\+}\+double Type ## _GetX ( Type ## _p p, double y, double xmin, double xmax, double epsilon, int maxiter )\+{\+return TYPECASTMETHOD(Type,GetX,TF1)(p)->GetX(y, xmin, xmax, epsilon, maxiter);\+}\+double Type ## _GetXmin ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,GetXmin,TF1)(p)->GetXmin();\+}\+double Type ## _GetXmax ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,GetXmax,TF1)(p)->GetXmax();\+}\+double Type ## _GradientPar ( Type ## _p p, int ipar, double * x, double eps )\+{\+return TYPECASTMETHOD(Type,GradientPar,TF1)(p)->GradientPar(ipar, x, eps);\+}\+void Type ## _InitArgs ( Type ## _p p, double * x, double * params )\+{\+TYPECASTMETHOD(Type,InitArgs,TF1)(p)->InitArgs(x, params);\+}\+double Type ## _IntegralTF1 ( Type ## _p p, double a, double b, double * params, double epsilon )\+{\+return TYPECASTMETHOD(Type,IntegralTF1,TF1)(p)->Integral(a, b, params, epsilon);\+}\+double Type ## _IntegralError ( Type ## _p p, double a, double b, double * params, double * covmat, double epsilon )\+{\+return TYPECASTMETHOD(Type,IntegralError,TF1)(p)->IntegralError(a, b, params, covmat, epsilon);\+}\+double Type ## _IntegralFast ( Type ## _p p, int num, double * x, double * w, double a, double b, double * params, double epsilon )\+{\+return TYPECASTMETHOD(Type,IntegralFast,TF1)(p)->IntegralFast(num, x, w, a, b, params, epsilon);\+}\+int Type ## _IsInside ( Type ## _p p, double * x )\+{\+return TYPECASTMETHOD(Type,IsInside,TF1)(p)->IsInside(x);\+}\+void Type ## _ReleaseParameter ( Type ## _p p, int ipar )\+{\+TYPECASTMETHOD(Type,ReleaseParameter,TF1)(p)->ReleaseParameter(ipar);\+}\+void Type ## _SetChisquare ( Type ## _p p, double chi2 )\+{\+TYPECASTMETHOD(Type,SetChisquare,TF1)(p)->SetChisquare(chi2);\+}\+void Type ## _setMaximumTF1 ( Type ## _p p, double maximum )\+{\+TYPECASTMETHOD(Type,setMaximumTF1,TF1)(p)->SetMaximum(maximum);\+}\+void Type ## _setMinimumTF1 ( Type ## _p p, double minimum )\+{\+TYPECASTMETHOD(Type,setMinimumTF1,TF1)(p)->SetMinimum(minimum);\+}\+void Type ## _SetNDF ( Type ## _p p, int ndf )\+{\+TYPECASTMETHOD(Type,SetNDF,TF1)(p)->SetNDF(ndf);\+}\+void Type ## _SetNumberFitPoints ( Type ## _p p, int npfits )\+{\+TYPECASTMETHOD(Type,SetNumberFitPoints,TF1)(p)->SetNumberFitPoints(npfits);\+}\+void Type ## _SetNpx ( Type ## _p p, int npx )\+{\+TYPECASTMETHOD(Type,SetNpx,TF1)(p)->SetNpx(npx);\+}\+void Type ## _SetParError ( Type ## _p p, int ipar, double error )\+{\+TYPECASTMETHOD(Type,SetParError,TF1)(p)->SetParError(ipar, error);\+}\+void Type ## _SetParErrors ( Type ## _p p, double * errors )\+{\+TYPECASTMETHOD(Type,SetParErrors,TF1)(p)->SetParErrors(errors);\+}\+void Type ## _SetParLimits ( Type ## _p p, int ipar, double parmin, double parmax )\+{\+TYPECASTMETHOD(Type,SetParLimits,TF1)(p)->SetParLimits(ipar, parmin, parmax);\+}\+void Type ## _SetParent ( Type ## _p p, TObject_p parent )\+{\+TYPECASTMETHOD(Type,SetParent,TF1)(p)->SetParent(to_nonconst<TObject,TObject_t>(parent));\+}\+void Type ## _setRange1 ( Type ## _p p, double xmin, double xmax )\+{\+TYPECASTMETHOD(Type,setRange1,TF1)(p)->SetRange(xmin, xmax);\+}\+void Type ## _setRange2 ( Type ## _p p, double xmin, double xmax, double ymin, double ymax )\+{\+TYPECASTMETHOD(Type,setRange2,TF1)(p)->SetRange(xmin, xmax, ymin, ymax);\+}\+void Type ## _setRange3 ( Type ## _p p, double xmin, double xmax, double ymin, double ymax, double zmin, double zmax )\+{\+TYPECASTMETHOD(Type,setRange3,TF1)(p)->SetRange(xmin, xmax, ymin, ymax, zmin, zmax);\+}\+void Type ## _SetSavedPoint ( Type ## _p p, int point, double value )\+{\+TYPECASTMETHOD(Type,SetSavedPoint,TF1)(p)->SetSavedPoint(point, value);\+}\+double Type ## _Moment ( Type ## _p p, double n, double a, double b, double * params, double epsilon )\+{\+return TYPECASTMETHOD(Type,Moment,TF1)(p)->Moment(n, a, b, params, epsilon);\+}\+double Type ## _CentralMoment ( Type ## _p p, double n, double a, double b, double * params, double epsilon )\+{\+return TYPECASTMETHOD(Type,CentralMoment,TF1)(p)->CentralMoment(n, a, b, params, epsilon);\+}\+double Type ## _Mean ( Type ## _p p, double a, double b, double * params, double epsilon )\+{\+return TYPECASTMETHOD(Type,Mean,TF1)(p)->Mean(a, b, params, epsilon);\+}\+double Type ## _Variance ( Type ## _p p, double a, double b, double * params, double epsilon )\+{\+return TYPECASTMETHOD(Type,Variance,TF1)(p)->Variance(a, b, params, epsilon);\+}++#undef TF1_DEF_NONVIRT+#define TF1_DEF_NONVIRT(Type)\+Type ## _p Type ## _newTF1 ( const char* name, const char* formula, double xmin, double xmax )\+{\+Type * newp = new Type (name, formula, xmin, xmax); \+return to_nonconst<Type ## _t, Type >(newp);\+}\+double Type ## _tF1DerivativeError (  )\+{\+return TF1::DerivativeError();\+}\+double Type ## _tF1GetChisquare ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,tF1GetChisquare,TF1)(p)->GetChisquare();\+}\+TH1_p Type ## _tF1GetHistogram ( Type ## _p p )\+{\+return to_nonconst<TH1_t,TH1>((TH1*)TYPECASTMETHOD(Type,tF1GetHistogram,TF1)(p)->GetHistogram());\+}\+TObject_p Type ## _tF1GetParent ( Type ## _p p )\+{\+return to_nonconst<TObject_t,TObject>((TObject*)TYPECASTMETHOD(Type,tF1GetParent,TF1)(p)->GetParent());\+}\+TAxis_p Type ## _tF1GetXaxis ( Type ## _p p )\+{\+return to_nonconst<TAxis_t,TAxis>((TAxis*)TYPECASTMETHOD(Type,tF1GetXaxis,TF1)(p)->GetXaxis());\+}\+TAxis_p Type ## _tF1GetYaxis ( Type ## _p p )\+{\+return to_nonconst<TAxis_t,TAxis>((TAxis*)TYPECASTMETHOD(Type,tF1GetYaxis,TF1)(p)->GetYaxis());\+}\+TAxis_p Type ## _tF1GetZaxis ( Type ## _p p )\+{\+return to_nonconst<TAxis_t,TAxis>((TAxis*)TYPECASTMETHOD(Type,tF1GetZaxis,TF1)(p)->GetZaxis());\+}\+void Type ## _tF1InitStandardFunctions (  )\+{\+TF1::InitStandardFunctions();\+}\+TF1_p Type ## _tF1GetCurrent (  )\+{\+return to_nonconst<TF1_t,TF1>((TF1*)TF1::GetCurrent());\+}\+void Type ## _tF1AbsValue ( int reject )\+{\+TF1::AbsValue(reject);\+}\+void Type ## _tF1RejectPoint ( int reject )\+{\+TF1::RejectPoint(reject);\+}\+int Type ## _tF1RejectedPoint (  )\+{\+return TF1::RejectedPoint();\+}\+void Type ## _tF1SetCurrent ( TF1_p f1 )\+{\+TF1::SetCurrent(to_nonconst<TF1,TF1_t>(f1));\+}\+void Type ## _tF1CalcGaussLegendreSamplingPoints ( int num, double * x, double * w, double eps )\+{\+TF1::CalcGaussLegendreSamplingPoints(num, x, w, eps);\+}++TFORMULA_DECL_VIRT(TF1);+TATTLINE_DECL_VIRT(TF1);+TATTFILL_DECL_VIRT(TF1);+TATTMARKER_DECL_VIRT(TF1);+TNAMED_DECL_VIRT(TF1);+TOBJECT_DECL_VIRT(TF1);+DELETABLE_DECL_VIRT(TF1);+++TF1_DECL_VIRT(TF1);+++TF1_DECL_NONVIRT(TF1);+++#endif // __HROOT_HIST__TF1__++#ifdef __cplusplus+}+#endif
+ csrc/HROOTHistTFormula.cpp view
@@ -0,0 +1,47 @@+#include <MacroPatternMatch.h>++#include "HROOTCoreTNamed.h"+#include "TFormula.h"+#include "HROOTHistTFormula.h"++using namespace std;+++template<class ToType, class FromType>+const ToType* to_const(const FromType* x) {+  return reinterpret_cast<const ToType*>(x);+}++template<class ToType, class FromType>+ToType* to_nonconst(FromType* x) {+  return reinterpret_cast<ToType*>(x);+}++template<class ToType, class FromType>+const ToType& to_constref(const FromType& x) {+  return reinterpret_cast<const ToType&>(x);+}++template<class ToType, class FromType>+ToType& to_nonconstref(FromType& x) {+  return reinterpret_cast<ToType&>(x);+}+++#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)++#define TYPECASTMETHOD(cname,mname,oname) \+  IIF( CHECKPROTECT(cname,mname) ) ( \+  (to_nonconst<oname,cname ## _t>), \+  (to_nonconst<cname,cname ## _t>) )+++TNAMED_DEF_VIRT(TFormula)+TOBJECT_DEF_VIRT(TFormula)+DELETABLE_DEF_VIRT(TFormula)++TFORMULA_DEF_VIRT(TFormula)++TFORMULA_DEF_NONVIRT(TFormula)++
+ csrc/HROOTHistTFormula.h view
@@ -0,0 +1,148 @@+#ifdef __cplusplus+extern "C" { +#endif ++#ifndef __HROOT_HIST__TFormula__+#define __HROOT_HIST__TFormula__++#include "HROOT-histType.h"++#include "HROOTCoreTNamed.h"+#include "HROOTCoreTObject.h"+#include "HROOTCoreDeletable.h"+#include "HROOT-coreType.h"++#undef TFORMULA_DECL_VIRT+#define TFORMULA_DECL_VIRT(Type) \+int Type ## _Compile ( Type ## _p p, const char* expression ); \+void Type ## _Clear ( Type ## _p p, const char* option ); \+double Type ## _DefinedValue ( Type ## _p p, int code ); \+double Type ## _Eval ( Type ## _p p, double x, double y, double z, double t ); \+double Type ## _EvalParOld ( Type ## _p p, double * x, double * params ); \+double Type ## _EvalPar ( Type ## _p p, double * x, double * params ); \+int Type ## _GetNdim ( Type ## _p p ); \+int Type ## _GetNpar ( Type ## _p p ); \+int Type ## _GetNumber ( Type ## _p p ); \+int Type ## _GetParNumber ( Type ## _p p, const char* name ); \+int Type ## _IsLinear ( Type ## _p p ); \+int Type ## _IsNormalized ( Type ## _p p ); \+void Type ## _SetNumber ( Type ## _p p, int number ); \+void Type ## _SetParameter ( Type ## _p p, const char* name, double parvalue ); \+void Type ## _SetParameters ( Type ## _p p, double * params ); \+void Type ## _SetParName ( Type ## _p p, int ipar, const char* name ); \+void Type ## _SetParNames ( Type ## _p p, const char* name0, const char* name1, const char* name2, const char* name3, const char* name4, const char* name5, const char* name6, const char* name7, const char* name8, const char* name9, const char* name10 ); \+void Type ## _Update ( Type ## _p p )++#undef TFORMULA_DECL_NONVIRT+#define TFORMULA_DECL_NONVIRT(Type) \+Type ## _p Type ## _newTFormula ( const char* name, const char* formula ); \+void Type ## _tFormulaOptimize ( Type ## _p p ); \+double Type ## _tFormulaGetParameter ( Type ## _p p, const char* name )++#undef TFORMULA_DEF_VIRT+#define TFORMULA_DEF_VIRT(Type)\+int Type ## _Compile ( Type ## _p p, const char* expression )\+{\+return TYPECASTMETHOD(Type,Compile,TFormula)(p)->Compile(expression);\+}\+void Type ## _Clear ( Type ## _p p, const char* option )\+{\+TYPECASTMETHOD(Type,Clear,TFormula)(p)->Clear(option);\+}\+double Type ## _DefinedValue ( Type ## _p p, int code )\+{\+return TYPECASTMETHOD(Type,DefinedValue,TFormula)(p)->DefinedValue(code);\+}\+double Type ## _Eval ( Type ## _p p, double x, double y, double z, double t )\+{\+return TYPECASTMETHOD(Type,Eval,TFormula)(p)->Eval(x, y, z, t);\+}\+double Type ## _EvalParOld ( Type ## _p p, double * x, double * params )\+{\+return TYPECASTMETHOD(Type,EvalParOld,TFormula)(p)->EvalParOld(x, params);\+}\+double Type ## _EvalPar ( Type ## _p p, double * x, double * params )\+{\+return TYPECASTMETHOD(Type,EvalPar,TFormula)(p)->EvalPar(x, params);\+}\+int Type ## _GetNdim ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,GetNdim,TFormula)(p)->GetNdim();\+}\+int Type ## _GetNpar ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,GetNpar,TFormula)(p)->GetNpar();\+}\+int Type ## _GetNumber ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,GetNumber,TFormula)(p)->GetNumber();\+}\+int Type ## _GetParNumber ( Type ## _p p, const char* name )\+{\+return TYPECASTMETHOD(Type,GetParNumber,TFormula)(p)->GetParNumber(name);\+}\+int Type ## _IsLinear ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,IsLinear,TFormula)(p)->IsLinear();\+}\+int Type ## _IsNormalized ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,IsNormalized,TFormula)(p)->IsNormalized();\+}\+void Type ## _SetNumber ( Type ## _p p, int number )\+{\+TYPECASTMETHOD(Type,SetNumber,TFormula)(p)->SetNumber(number);\+}\+void Type ## _SetParameter ( Type ## _p p, const char* name, double parvalue )\+{\+TYPECASTMETHOD(Type,SetParameter,TFormula)(p)->SetParameter(name, parvalue);\+}\+void Type ## _SetParameters ( Type ## _p p, double * params )\+{\+TYPECASTMETHOD(Type,SetParameters,TFormula)(p)->SetParameters(params);\+}\+void Type ## _SetParName ( Type ## _p p, int ipar, const char* name )\+{\+TYPECASTMETHOD(Type,SetParName,TFormula)(p)->SetParName(ipar, name);\+}\+void Type ## _SetParNames ( Type ## _p p, const char* name0, const char* name1, const char* name2, const char* name3, const char* name4, const char* name5, const char* name6, const char* name7, const char* name8, const char* name9, const char* name10 )\+{\+TYPECASTMETHOD(Type,SetParNames,TFormula)(p)->SetParNames(name0, name1, name2, name3, name4, name5, name6, name7, name8, name9, name10);\+}\+void Type ## _Update ( Type ## _p p )\+{\+TYPECASTMETHOD(Type,Update,TFormula)(p)->Update();\+}++#undef TFORMULA_DEF_NONVIRT+#define TFORMULA_DEF_NONVIRT(Type)\+Type ## _p Type ## _newTFormula ( const char* name, const char* formula )\+{\+Type * newp = new Type (name, formula); \+return to_nonconst<Type ## _t, Type >(newp);\+}\+void Type ## _tFormulaOptimize ( Type ## _p p )\+{\+TYPECASTMETHOD(Type,tFormulaOptimize,TFormula)(p)->Optimize();\+}\+double Type ## _tFormulaGetParameter ( Type ## _p p, const char* name )\+{\+return TYPECASTMETHOD(Type,tFormulaGetParameter,TFormula)(p)->GetParameter(name);\+}++TNAMED_DECL_VIRT(TFormula);+TOBJECT_DECL_VIRT(TFormula);+DELETABLE_DECL_VIRT(TFormula);+++TFORMULA_DECL_VIRT(TFormula);+++TFORMULA_DECL_NONVIRT(TFormula);+++#endif // __HROOT_HIST__TFormula__++#ifdef __cplusplus+}+#endif
+ csrc/HROOTHistTGraph.cpp view
@@ -0,0 +1,56 @@+#include <MacroPatternMatch.h>++#include "HROOTHistTF1.h"+#include "HROOTHistTH1F.h"+#include "HROOTHistTAxis.h"+#include "HROOTCoreTNamed.h"+#include "HROOTCoreTAttLine.h"+#include "HROOTCoreTAttFill.h"+#include "HROOTCoreTAttMarker.h"+#include "TGraph.h"+#include "HROOTHistTGraph.h"++using namespace std;+++template<class ToType, class FromType>+const ToType* to_const(const FromType* x) {+  return reinterpret_cast<const ToType*>(x);+}++template<class ToType, class FromType>+ToType* to_nonconst(FromType* x) {+  return reinterpret_cast<ToType*>(x);+}++template<class ToType, class FromType>+const ToType& to_constref(const FromType& x) {+  return reinterpret_cast<const ToType&>(x);+}++template<class ToType, class FromType>+ToType& to_nonconstref(FromType& x) {+  return reinterpret_cast<ToType&>(x);+}+++#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)++#define TYPECASTMETHOD(cname,mname,oname) \+  IIF( CHECKPROTECT(cname,mname) ) ( \+  (to_nonconst<oname,cname ## _t>), \+  (to_nonconst<cname,cname ## _t>) )+++TNAMED_DEF_VIRT(TGraph)+TATTLINE_DEF_VIRT(TGraph)+TATTFILL_DEF_VIRT(TGraph)+TATTMARKER_DEF_VIRT(TGraph)+TOBJECT_DEF_VIRT(TGraph)+DELETABLE_DEF_VIRT(TGraph)++TGRAPH_DEF_VIRT(TGraph)++TGRAPH_DEF_NONVIRT(TGraph)++
+ csrc/HROOTHistTGraph.h view
@@ -0,0 +1,269 @@+#ifdef __cplusplus+extern "C" { +#endif ++#ifndef __HROOT_HIST__TGraph__+#define __HROOT_HIST__TGraph__++#include "HROOT-histType.h"++#include "HROOTCoreTNamed.h"+#include "HROOTCoreTAttLine.h"+#include "HROOTCoreTAttFill.h"+#include "HROOTCoreTAttMarker.h"+#include "HROOTCoreTObject.h"+#include "HROOTCoreDeletable.h"+#include "HROOT-coreType.h"++#undef TGRAPH_DECL_VIRT+#define TGRAPH_DECL_VIRT(Type) \+void Type ## _Apply ( Type ## _p p, TF1_p f ); \+double Type ## _Chisquare ( Type ## _p p, TF1_p f1 ); \+void Type ## _DrawGraph ( Type ## _p p, int n, double * x, double * y, const char* option ); \+void Type ## _drawPanelTGraph ( Type ## _p p ); \+void Type ## _Expand ( Type ## _p p, int newsize, int step ); \+void Type ## _FitPanelTGraph ( Type ## _p p ); \+double Type ## _getCorrelationFactorTGraph ( Type ## _p p ); \+double Type ## _getCovarianceTGraph ( Type ## _p p ); \+double Type ## _getMeanTGraph ( Type ## _p p, int axis ); \+double Type ## _getRMSTGraph ( Type ## _p p, int axis ); \+double Type ## _GetErrorX ( Type ## _p p, int bin ); \+double Type ## _GetErrorY ( Type ## _p p, int bin ); \+double Type ## _GetErrorXhigh ( Type ## _p p, int bin ); \+double Type ## _GetErrorXlow ( Type ## _p p, int bin ); \+double Type ## _GetErrorYhigh ( Type ## _p p, int bin ); \+double Type ## _GetErrorYlow ( Type ## _p p, int bin ); \+void Type ## _InitExpo ( Type ## _p p, double xmin, double xmax ); \+void Type ## _InitGaus ( Type ## _p p, double xmin, double xmax ); \+void Type ## _InitPolynom ( Type ## _p p, double xmin, double xmax ); \+int Type ## _InsertPoint ( Type ## _p p ); \+double Type ## _integralTGraph ( Type ## _p p, int first, int last ); \+int Type ## _IsEditable ( Type ## _p p ); \+int Type ## _isInsideTGraph ( Type ## _p p, double x, double y ); \+void Type ## _LeastSquareFit ( Type ## _p p, int m, double * a, double xmin, double xmax ); \+void Type ## _PaintStats ( Type ## _p p, TF1_p fit ); \+int Type ## _RemovePoint ( Type ## _p p, int ipoint ); \+void Type ## _SetEditable ( Type ## _p p, int editable ); \+void Type ## _SetHistogram ( Type ## _p p, TH1F_p h ); \+void Type ## _setMaximumTGraph ( Type ## _p p, double maximum ); \+void Type ## _setMinimumTGraph ( Type ## _p p, double minimum ); \+void Type ## _Set ( Type ## _p p, int n ); \+void Type ## _SetPoint ( Type ## _p p, int i, double x, double y )++#undef TGRAPH_DECL_NONVIRT+#define TGRAPH_DECL_NONVIRT(Type) \+Type ## _p Type ## _newTGraph ( int n, double * x, double * y ); \+int Type ## _tGraphGetEditable ( Type ## _p p ); \+TF1_p Type ## _tGraphGetFunction ( Type ## _p p, const char* name ); \+TH1F_p Type ## _tGraphGetHistogram ( Type ## _p p ); \+int Type ## _tGraphGetMaxSize ( Type ## _p p ); \+int Type ## _tGraphGetN ( Type ## _p p ); \+double Type ## _tGraphGetMaximum ( Type ## _p p ); \+double Type ## _tGraphGetMinimum ( Type ## _p p ); \+TAxis_p Type ## _tGraphGetXaxis ( Type ## _p p ); \+TAxis_p Type ## _tGraphGetYaxis ( Type ## _p p ); \+void Type ## _tGraphPaintGraph ( Type ## _p p, int npoints, double * x, double * y, const char* chopt ); \+void Type ## _tGraphPaintGrapHist ( Type ## _p p, int npoints, double * x, double * y, const char* chopt )++#undef TGRAPH_DEF_VIRT+#define TGRAPH_DEF_VIRT(Type)\+void Type ## _Apply ( Type ## _p p, TF1_p f )\+{\+TYPECASTMETHOD(Type,Apply,TGraph)(p)->Apply(to_nonconst<TF1,TF1_t>(f));\+}\+double Type ## _Chisquare ( Type ## _p p, TF1_p f1 )\+{\+return TYPECASTMETHOD(Type,Chisquare,TGraph)(p)->Chisquare(to_nonconst<TF1,TF1_t>(f1));\+}\+void Type ## _DrawGraph ( Type ## _p p, int n, double * x, double * y, const char* option )\+{\+TYPECASTMETHOD(Type,DrawGraph,TGraph)(p)->DrawGraph(n, x, y, option);\+}\+void Type ## _drawPanelTGraph ( Type ## _p p )\+{\+TYPECASTMETHOD(Type,drawPanelTGraph,TGraph)(p)->DrawPanel();\+}\+void Type ## _Expand ( Type ## _p p, int newsize, int step )\+{\+TYPECASTMETHOD(Type,Expand,TGraph)(p)->Expand(newsize, step);\+}\+void Type ## _FitPanelTGraph ( Type ## _p p )\+{\+TYPECASTMETHOD(Type,FitPanelTGraph,TGraph)(p)->FitPanel();\+}\+double Type ## _getCorrelationFactorTGraph ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,getCorrelationFactorTGraph,TGraph)(p)->GetCorrelationFactor();\+}\+double Type ## _getCovarianceTGraph ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,getCovarianceTGraph,TGraph)(p)->GetCovariance();\+}\+double Type ## _getMeanTGraph ( Type ## _p p, int axis )\+{\+return TYPECASTMETHOD(Type,getMeanTGraph,TGraph)(p)->GetMean(axis);\+}\+double Type ## _getRMSTGraph ( Type ## _p p, int axis )\+{\+return TYPECASTMETHOD(Type,getRMSTGraph,TGraph)(p)->GetRMS(axis);\+}\+double Type ## _GetErrorX ( Type ## _p p, int bin )\+{\+return TYPECASTMETHOD(Type,GetErrorX,TGraph)(p)->GetErrorX(bin);\+}\+double Type ## _GetErrorY ( Type ## _p p, int bin )\+{\+return TYPECASTMETHOD(Type,GetErrorY,TGraph)(p)->GetErrorY(bin);\+}\+double Type ## _GetErrorXhigh ( Type ## _p p, int bin )\+{\+return TYPECASTMETHOD(Type,GetErrorXhigh,TGraph)(p)->GetErrorXhigh(bin);\+}\+double Type ## _GetErrorXlow ( Type ## _p p, int bin )\+{\+return TYPECASTMETHOD(Type,GetErrorXlow,TGraph)(p)->GetErrorXlow(bin);\+}\+double Type ## _GetErrorYhigh ( Type ## _p p, int bin )\+{\+return TYPECASTMETHOD(Type,GetErrorYhigh,TGraph)(p)->GetErrorYhigh(bin);\+}\+double Type ## _GetErrorYlow ( Type ## _p p, int bin )\+{\+return TYPECASTMETHOD(Type,GetErrorYlow,TGraph)(p)->GetErrorYlow(bin);\+}\+void Type ## _InitExpo ( Type ## _p p, double xmin, double xmax )\+{\+TYPECASTMETHOD(Type,InitExpo,TGraph)(p)->InitExpo(xmin, xmax);\+}\+void Type ## _InitGaus ( Type ## _p p, double xmin, double xmax )\+{\+TYPECASTMETHOD(Type,InitGaus,TGraph)(p)->InitGaus(xmin, xmax);\+}\+void Type ## _InitPolynom ( Type ## _p p, double xmin, double xmax )\+{\+TYPECASTMETHOD(Type,InitPolynom,TGraph)(p)->InitPolynom(xmin, xmax);\+}\+int Type ## _InsertPoint ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,InsertPoint,TGraph)(p)->InsertPoint();\+}\+double Type ## _integralTGraph ( Type ## _p p, int first, int last )\+{\+return TYPECASTMETHOD(Type,integralTGraph,TGraph)(p)->Integral(first, last);\+}\+int Type ## _IsEditable ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,IsEditable,TGraph)(p)->IsEditable();\+}\+int Type ## _isInsideTGraph ( Type ## _p p, double x, double y )\+{\+return TYPECASTMETHOD(Type,isInsideTGraph,TGraph)(p)->IsInside(x, y);\+}\+void Type ## _LeastSquareFit ( Type ## _p p, int m, double * a, double xmin, double xmax )\+{\+TYPECASTMETHOD(Type,LeastSquareFit,TGraph)(p)->LeastSquareFit(m, a, xmin, xmax);\+}\+void Type ## _PaintStats ( Type ## _p p, TF1_p fit )\+{\+TYPECASTMETHOD(Type,PaintStats,TGraph)(p)->PaintStats(to_nonconst<TF1,TF1_t>(fit));\+}\+int Type ## _RemovePoint ( Type ## _p p, int ipoint )\+{\+return TYPECASTMETHOD(Type,RemovePoint,TGraph)(p)->RemovePoint(ipoint);\+}\+void Type ## _SetEditable ( Type ## _p p, int editable )\+{\+TYPECASTMETHOD(Type,SetEditable,TGraph)(p)->SetEditable(editable);\+}\+void Type ## _SetHistogram ( Type ## _p p, TH1F_p h )\+{\+TYPECASTMETHOD(Type,SetHistogram,TGraph)(p)->SetHistogram(to_nonconst<TH1F,TH1F_t>(h));\+}\+void Type ## _setMaximumTGraph ( Type ## _p p, double maximum )\+{\+TYPECASTMETHOD(Type,setMaximumTGraph,TGraph)(p)->SetMaximum(maximum);\+}\+void Type ## _setMinimumTGraph ( Type ## _p p, double minimum )\+{\+TYPECASTMETHOD(Type,setMinimumTGraph,TGraph)(p)->SetMinimum(minimum);\+}\+void Type ## _Set ( Type ## _p p, int n )\+{\+TYPECASTMETHOD(Type,Set,TGraph)(p)->Set(n);\+}\+void Type ## _SetPoint ( Type ## _p p, int i, double x, double y )\+{\+TYPECASTMETHOD(Type,SetPoint,TGraph)(p)->SetPoint(i, x, y);\+}++#undef TGRAPH_DEF_NONVIRT+#define TGRAPH_DEF_NONVIRT(Type)\+Type ## _p Type ## _newTGraph ( int n, double * x, double * y )\+{\+Type * newp = new Type (n, x, y); \+return to_nonconst<Type ## _t, Type >(newp);\+}\+int Type ## _tGraphGetEditable ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,tGraphGetEditable,TGraph)(p)->GetEditable();\+}\+TF1_p Type ## _tGraphGetFunction ( Type ## _p p, const char* name )\+{\+return to_nonconst<TF1_t,TF1>((TF1*)TYPECASTMETHOD(Type,tGraphGetFunction,TGraph)(p)->GetFunction(name));\+}\+TH1F_p Type ## _tGraphGetHistogram ( Type ## _p p )\+{\+return to_nonconst<TH1F_t,TH1F>((TH1F*)TYPECASTMETHOD(Type,tGraphGetHistogram,TGraph)(p)->GetHistogram());\+}\+int Type ## _tGraphGetMaxSize ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,tGraphGetMaxSize,TGraph)(p)->GetMaxSize();\+}\+int Type ## _tGraphGetN ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,tGraphGetN,TGraph)(p)->GetN();\+}\+double Type ## _tGraphGetMaximum ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,tGraphGetMaximum,TGraph)(p)->GetMaximum();\+}\+double Type ## _tGraphGetMinimum ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,tGraphGetMinimum,TGraph)(p)->GetMinimum();\+}\+TAxis_p Type ## _tGraphGetXaxis ( Type ## _p p )\+{\+return to_nonconst<TAxis_t,TAxis>((TAxis*)TYPECASTMETHOD(Type,tGraphGetXaxis,TGraph)(p)->GetXaxis());\+}\+TAxis_p Type ## _tGraphGetYaxis ( Type ## _p p )\+{\+return to_nonconst<TAxis_t,TAxis>((TAxis*)TYPECASTMETHOD(Type,tGraphGetYaxis,TGraph)(p)->GetYaxis());\+}\+void Type ## _tGraphPaintGraph ( Type ## _p p, int npoints, double * x, double * y, const char* chopt )\+{\+TYPECASTMETHOD(Type,tGraphPaintGraph,TGraph)(p)->PaintGraph(npoints, x, y, chopt);\+}\+void Type ## _tGraphPaintGrapHist ( Type ## _p p, int npoints, double * x, double * y, const char* chopt )\+{\+TYPECASTMETHOD(Type,tGraphPaintGrapHist,TGraph)(p)->PaintGrapHist(npoints, x, y, chopt);\+}++TNAMED_DECL_VIRT(TGraph);+TATTLINE_DECL_VIRT(TGraph);+TATTFILL_DECL_VIRT(TGraph);+TATTMARKER_DECL_VIRT(TGraph);+TOBJECT_DECL_VIRT(TGraph);+DELETABLE_DECL_VIRT(TGraph);+++TGRAPH_DECL_VIRT(TGraph);+++TGRAPH_DECL_NONVIRT(TGraph);+++#endif // __HROOT_HIST__TGraph__++#ifdef __cplusplus+}+#endif
+ csrc/HROOTHistTGraphAsymmErrors.cpp view
@@ -0,0 +1,51 @@+#include <MacroPatternMatch.h>++#include "HROOTHistTGraph.h"+#include "TGraphAsymmErrors.h"+#include "HROOTHistTGraphAsymmErrors.h"++using namespace std;+++template<class ToType, class FromType>+const ToType* to_const(const FromType* x) {+  return reinterpret_cast<const ToType*>(x);+}++template<class ToType, class FromType>+ToType* to_nonconst(FromType* x) {+  return reinterpret_cast<ToType*>(x);+}++template<class ToType, class FromType>+const ToType& to_constref(const FromType& x) {+  return reinterpret_cast<const ToType&>(x);+}++template<class ToType, class FromType>+ToType& to_nonconstref(FromType& x) {+  return reinterpret_cast<ToType&>(x);+}+++#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)++#define TYPECASTMETHOD(cname,mname,oname) \+  IIF( CHECKPROTECT(cname,mname) ) ( \+  (to_nonconst<oname,cname ## _t>), \+  (to_nonconst<cname,cname ## _t>) )+++TGRAPH_DEF_VIRT(TGraphAsymmErrors)+TNAMED_DEF_VIRT(TGraphAsymmErrors)+TATTLINE_DEF_VIRT(TGraphAsymmErrors)+TATTFILL_DEF_VIRT(TGraphAsymmErrors)+TATTMARKER_DEF_VIRT(TGraphAsymmErrors)+TOBJECT_DEF_VIRT(TGraphAsymmErrors)+DELETABLE_DEF_VIRT(TGraphAsymmErrors)++TGRAPHASYMMERRORS_DEF_VIRT(TGraphAsymmErrors)++TGRAPHASYMMERRORS_DEF_NONVIRT(TGraphAsymmErrors)++
+ csrc/HROOTHistTGraphAsymmErrors.h view
@@ -0,0 +1,57 @@+#ifdef __cplusplus+extern "C" { +#endif ++#ifndef __HROOT_HIST__TGraphAsymmErrors__+#define __HROOT_HIST__TGraphAsymmErrors__++#include "HROOT-histType.h"++#include "HROOTHistTGraph.h"+#include "HROOTCoreTNamed.h"+#include "HROOTCoreTAttLine.h"+#include "HROOTCoreTAttFill.h"+#include "HROOTCoreTAttMarker.h"+#include "HROOTCoreTObject.h"+#include "HROOTCoreDeletable.h"++#undef TGRAPHASYMMERRORS_DECL_VIRT+#define TGRAPHASYMMERRORS_DECL_VIRT(Type) \+++#undef TGRAPHASYMMERRORS_DECL_NONVIRT+#define TGRAPHASYMMERRORS_DECL_NONVIRT(Type) \+Type ## _p Type ## _newTGraphAsymmErrors ( int n, double * x, double * y, double * exl, double * exh, double * eyl, double * eyh )++#undef TGRAPHASYMMERRORS_DEF_VIRT+#define TGRAPHASYMMERRORS_DEF_VIRT(Type)\+++#undef TGRAPHASYMMERRORS_DEF_NONVIRT+#define TGRAPHASYMMERRORS_DEF_NONVIRT(Type)\+Type ## _p Type ## _newTGraphAsymmErrors ( int n, double * x, double * y, double * exl, double * exh, double * eyl, double * eyh )\+{\+Type * newp = new Type (n, x, y, exl, exh, eyl, eyh); \+return to_nonconst<Type ## _t, Type >(newp);\+}++TGRAPH_DECL_VIRT(TGraphAsymmErrors);+TNAMED_DECL_VIRT(TGraphAsymmErrors);+TATTLINE_DECL_VIRT(TGraphAsymmErrors);+TATTFILL_DECL_VIRT(TGraphAsymmErrors);+TATTMARKER_DECL_VIRT(TGraphAsymmErrors);+TOBJECT_DECL_VIRT(TGraphAsymmErrors);+DELETABLE_DECL_VIRT(TGraphAsymmErrors);+++TGRAPHASYMMERRORS_DECL_VIRT(TGraphAsymmErrors);+++TGRAPHASYMMERRORS_DECL_NONVIRT(TGraphAsymmErrors);+++#endif // __HROOT_HIST__TGraphAsymmErrors__++#ifdef __cplusplus+}+#endif
+ csrc/HROOTHistTGraphBentErrors.cpp view
@@ -0,0 +1,51 @@+#include <MacroPatternMatch.h>++#include "HROOTHistTGraph.h"+#include "TGraphBentErrors.h"+#include "HROOTHistTGraphBentErrors.h"++using namespace std;+++template<class ToType, class FromType>+const ToType* to_const(const FromType* x) {+  return reinterpret_cast<const ToType*>(x);+}++template<class ToType, class FromType>+ToType* to_nonconst(FromType* x) {+  return reinterpret_cast<ToType*>(x);+}++template<class ToType, class FromType>+const ToType& to_constref(const FromType& x) {+  return reinterpret_cast<const ToType&>(x);+}++template<class ToType, class FromType>+ToType& to_nonconstref(FromType& x) {+  return reinterpret_cast<ToType&>(x);+}+++#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)++#define TYPECASTMETHOD(cname,mname,oname) \+  IIF( CHECKPROTECT(cname,mname) ) ( \+  (to_nonconst<oname,cname ## _t>), \+  (to_nonconst<cname,cname ## _t>) )+++TGRAPH_DEF_VIRT(TGraphBentErrors)+TNAMED_DEF_VIRT(TGraphBentErrors)+TATTLINE_DEF_VIRT(TGraphBentErrors)+TATTFILL_DEF_VIRT(TGraphBentErrors)+TATTMARKER_DEF_VIRT(TGraphBentErrors)+TOBJECT_DEF_VIRT(TGraphBentErrors)+DELETABLE_DEF_VIRT(TGraphBentErrors)++TGRAPHBENTERRORS_DEF_VIRT(TGraphBentErrors)++TGRAPHBENTERRORS_DEF_NONVIRT(TGraphBentErrors)++
+ csrc/HROOTHistTGraphBentErrors.h view
@@ -0,0 +1,57 @@+#ifdef __cplusplus+extern "C" { +#endif ++#ifndef __HROOT_HIST__TGraphBentErrors__+#define __HROOT_HIST__TGraphBentErrors__++#include "HROOT-histType.h"++#include "HROOTHistTGraph.h"+#include "HROOTCoreTNamed.h"+#include "HROOTCoreTAttLine.h"+#include "HROOTCoreTAttFill.h"+#include "HROOTCoreTAttMarker.h"+#include "HROOTCoreTObject.h"+#include "HROOTCoreDeletable.h"++#undef TGRAPHBENTERRORS_DECL_VIRT+#define TGRAPHBENTERRORS_DECL_VIRT(Type) \+++#undef TGRAPHBENTERRORS_DECL_NONVIRT+#define TGRAPHBENTERRORS_DECL_NONVIRT(Type) \+Type ## _p Type ## _newTGraphBentErrors ( int n, double * x, double * y, double * exl, double * exh, double * eyl, double * eyh, double * exld, double * exhd, double * eyld, double * eyhd )++#undef TGRAPHBENTERRORS_DEF_VIRT+#define TGRAPHBENTERRORS_DEF_VIRT(Type)\+++#undef TGRAPHBENTERRORS_DEF_NONVIRT+#define TGRAPHBENTERRORS_DEF_NONVIRT(Type)\+Type ## _p Type ## _newTGraphBentErrors ( int n, double * x, double * y, double * exl, double * exh, double * eyl, double * eyh, double * exld, double * exhd, double * eyld, double * eyhd )\+{\+Type * newp = new Type (n, x, y, exl, exh, eyl, eyh, exld, exhd, eyld, eyhd); \+return to_nonconst<Type ## _t, Type >(newp);\+}++TGRAPH_DECL_VIRT(TGraphBentErrors);+TNAMED_DECL_VIRT(TGraphBentErrors);+TATTLINE_DECL_VIRT(TGraphBentErrors);+TATTFILL_DECL_VIRT(TGraphBentErrors);+TATTMARKER_DECL_VIRT(TGraphBentErrors);+TOBJECT_DECL_VIRT(TGraphBentErrors);+DELETABLE_DECL_VIRT(TGraphBentErrors);+++TGRAPHBENTERRORS_DECL_VIRT(TGraphBentErrors);+++TGRAPHBENTERRORS_DECL_NONVIRT(TGraphBentErrors);+++#endif // __HROOT_HIST__TGraphBentErrors__++#ifdef __cplusplus+}+#endif
+ csrc/HROOTHistTGraphErrors.cpp view
@@ -0,0 +1,51 @@+#include <MacroPatternMatch.h>++#include "HROOTHistTGraph.h"+#include "TGraphErrors.h"+#include "HROOTHistTGraphErrors.h"++using namespace std;+++template<class ToType, class FromType>+const ToType* to_const(const FromType* x) {+  return reinterpret_cast<const ToType*>(x);+}++template<class ToType, class FromType>+ToType* to_nonconst(FromType* x) {+  return reinterpret_cast<ToType*>(x);+}++template<class ToType, class FromType>+const ToType& to_constref(const FromType& x) {+  return reinterpret_cast<const ToType&>(x);+}++template<class ToType, class FromType>+ToType& to_nonconstref(FromType& x) {+  return reinterpret_cast<ToType&>(x);+}+++#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)++#define TYPECASTMETHOD(cname,mname,oname) \+  IIF( CHECKPROTECT(cname,mname) ) ( \+  (to_nonconst<oname,cname ## _t>), \+  (to_nonconst<cname,cname ## _t>) )+++TGRAPH_DEF_VIRT(TGraphErrors)+TNAMED_DEF_VIRT(TGraphErrors)+TATTLINE_DEF_VIRT(TGraphErrors)+TATTFILL_DEF_VIRT(TGraphErrors)+TATTMARKER_DEF_VIRT(TGraphErrors)+TOBJECT_DEF_VIRT(TGraphErrors)+DELETABLE_DEF_VIRT(TGraphErrors)++TGRAPHERRORS_DEF_VIRT(TGraphErrors)++TGRAPHERRORS_DEF_NONVIRT(TGraphErrors)++
+ csrc/HROOTHistTGraphErrors.h view
@@ -0,0 +1,57 @@+#ifdef __cplusplus+extern "C" { +#endif ++#ifndef __HROOT_HIST__TGraphErrors__+#define __HROOT_HIST__TGraphErrors__++#include "HROOT-histType.h"++#include "HROOTHistTGraph.h"+#include "HROOTCoreTNamed.h"+#include "HROOTCoreTAttLine.h"+#include "HROOTCoreTAttFill.h"+#include "HROOTCoreTAttMarker.h"+#include "HROOTCoreTObject.h"+#include "HROOTCoreDeletable.h"++#undef TGRAPHERRORS_DECL_VIRT+#define TGRAPHERRORS_DECL_VIRT(Type) \+++#undef TGRAPHERRORS_DECL_NONVIRT+#define TGRAPHERRORS_DECL_NONVIRT(Type) \+Type ## _p Type ## _newTGraphErrors ( int n, double * x, double * y, double * ex, double * ey )++#undef TGRAPHERRORS_DEF_VIRT+#define TGRAPHERRORS_DEF_VIRT(Type)\+++#undef TGRAPHERRORS_DEF_NONVIRT+#define TGRAPHERRORS_DEF_NONVIRT(Type)\+Type ## _p Type ## _newTGraphErrors ( int n, double * x, double * y, double * ex, double * ey )\+{\+Type * newp = new Type (n, x, y, ex, ey); \+return to_nonconst<Type ## _t, Type >(newp);\+}++TGRAPH_DECL_VIRT(TGraphErrors);+TNAMED_DECL_VIRT(TGraphErrors);+TATTLINE_DECL_VIRT(TGraphErrors);+TATTFILL_DECL_VIRT(TGraphErrors);+TATTMARKER_DECL_VIRT(TGraphErrors);+TOBJECT_DECL_VIRT(TGraphErrors);+DELETABLE_DECL_VIRT(TGraphErrors);+++TGRAPHERRORS_DECL_VIRT(TGraphErrors);+++TGRAPHERRORS_DECL_NONVIRT(TGraphErrors);+++#endif // __HROOT_HIST__TGraphErrors__++#ifdef __cplusplus+}+#endif
+ csrc/HROOTHistTH1.cpp view
@@ -0,0 +1,56 @@+#include <MacroPatternMatch.h>++#include "HROOTCoreTDirectory.h"+#include "HROOTHistTF1.h"+#include "HROOTCoreTArrayD.h"+#include "HROOTHistTAxis.h"+#include "HROOTCoreTObject.h"+#include "HROOTCoreTAttLine.h"+#include "HROOTCoreTAttFill.h"+#include "HROOTCoreTAttMarker.h"+#include "TH1.h"+#include "HROOTHistTH1.h"++using namespace std;+++template<class ToType, class FromType>+const ToType* to_const(const FromType* x) {+  return reinterpret_cast<const ToType*>(x);+}++template<class ToType, class FromType>+ToType* to_nonconst(FromType* x) {+  return reinterpret_cast<ToType*>(x);+}++template<class ToType, class FromType>+const ToType& to_constref(const FromType& x) {+  return reinterpret_cast<const ToType&>(x);+}++template<class ToType, class FromType>+ToType& to_nonconstref(FromType& x) {+  return reinterpret_cast<ToType&>(x);+}+++#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)++#define TYPECASTMETHOD(cname,mname,oname) \+  IIF( CHECKPROTECT(cname,mname) ) ( \+  (to_nonconst<oname,cname ## _t>), \+  (to_nonconst<cname,cname ## _t>) )+++TOBJECT_DEF_VIRT(TH1)+TATTLINE_DEF_VIRT(TH1)+TATTFILL_DEF_VIRT(TH1)+TATTMARKER_DEF_VIRT(TH1)+DELETABLE_DEF_VIRT(TH1)++TH1_DEF_VIRT(TH1)++TH1_DEF_NONVIRT(TH1)++
+ csrc/HROOTHistTH1.h view
@@ -0,0 +1,761 @@+#ifdef __cplusplus+extern "C" { +#endif ++#ifndef __HROOT_HIST__TH1__+#define __HROOT_HIST__TH1__++#include "HROOT-histType.h"++#include "HROOTCoreTObject.h"+#include "HROOTCoreTAttLine.h"+#include "HROOTCoreTAttFill.h"+#include "HROOTCoreTAttMarker.h"+#include "HROOTCoreDeletable.h"+#include "HROOT-coreType.h"++#undef TH1_DECL_VIRT+#define TH1_DECL_VIRT(Type) \+void Type ## _Add ( Type ## _p p, TH1_p h1, double c1 ); \+void Type ## _AddBinContent ( Type ## _p p, int bin, double w ); \+double Type ## _Chi2Test ( Type ## _p p, TH1_p h2, const char* option, double * res ); \+double Type ## _ComputeIntegral ( Type ## _p p ); \+void Type ## _DirectoryAutoAdd ( Type ## _p p, TDirectory_p dir ); \+void Type ## _Divide ( Type ## _p p, TH1_p h1, TH1_p h2, double c1, double c2, const char* option ); \+Type ## _p Type ## _drawCopyTH1 ( Type ## _p p, const char* option ); \+TH1_p Type ## _DrawNormalized ( Type ## _p p, const char* option, double norm ); \+void Type ## _drawPanelTH1 ( Type ## _p p ); \+int Type ## _BufferEmpty ( Type ## _p p, int action ); \+void Type ## _evalF ( Type ## _p p, TF1_p f1, const char* option ); \+TH1_p Type ## _FFT ( Type ## _p p, TH1_p h_output, const char* option ); \+int Type ## _fill1 ( Type ## _p p, double x ); \+int Type ## _fill1w ( Type ## _p p, double x, double w ); \+void Type ## _fillN1 ( Type ## _p p, int ntimes, double * x, double * w, int stride ); \+void Type ## _FillRandom ( Type ## _p p, TH1_p h, int ntimes ); \+int Type ## _FindBin ( Type ## _p p, double x, double y, double z ); \+int Type ## _FindFixBin ( Type ## _p p, double x, double y, double z ); \+int Type ## _FindFirstBinAbove ( Type ## _p p, double threshold, int axis ); \+int Type ## _FindLastBinAbove ( Type ## _p p, double threshold, int axis ); \+void Type ## _FitPanelTH1 ( Type ## _p p ); \+int Type ## _getNdivisionA ( Type ## _p p, const char* axis ); \+int Type ## _getAxisColorA ( Type ## _p p, const char* axis ); \+int Type ## _getLabelColorA ( Type ## _p p, const char* axis ); \+int Type ## _getLabelFontA ( Type ## _p p, const char* axis ); \+double Type ## _getLabelOffsetA ( Type ## _p p, const char* axis ); \+double Type ## _getLabelSizeA ( Type ## _p p, const char* axis ); \+int Type ## _getTitleFontA ( Type ## _p p, const char* axis ); \+double Type ## _getTitleOffsetA ( Type ## _p p, const char* axis ); \+double Type ## _getTitleSizeA ( Type ## _p p, const char* axis ); \+double Type ## _getTickLengthA ( Type ## _p p, const char* axis ); \+double Type ## _GetBarOffset ( Type ## _p p ); \+double Type ## _GetBarWidth ( Type ## _p p ); \+int Type ## _GetContour ( Type ## _p p, double * levels ); \+double Type ## _GetContourLevel ( Type ## _p p, int level ); \+double Type ## _GetContourLevelPad ( Type ## _p p, int level ); \+int Type ## _GetBin ( Type ## _p p, int binx, int biny, int binz ); \+double Type ## _GetBinCenter ( Type ## _p p, int bin ); \+double Type ## _GetBinContent1 ( Type ## _p p, int binx ); \+double Type ## _GetBinContent2 ( Type ## _p p, int binx, int biny ); \+double Type ## _GetBinContent3 ( Type ## _p p, int binx, int biny, int binz ); \+double Type ## _GetBinError1 ( Type ## _p p, int binx ); \+double Type ## _GetBinError2 ( Type ## _p p, int binx, int biny ); \+double Type ## _GetBinError3 ( Type ## _p p, int binx, int biny, int binz ); \+double Type ## _GetBinLowEdge ( Type ## _p p, int bin ); \+double Type ## _GetBinWidth ( Type ## _p p, int bin ); \+double Type ## _GetCellContent ( Type ## _p p, int binx, int biny ); \+double Type ## _GetCellError ( Type ## _p p, int binx, int biny ); \+double Type ## _GetEntries ( Type ## _p p ); \+double Type ## _GetEffectiveEntries ( Type ## _p p ); \+TF1_p Type ## _GetFunction ( Type ## _p p, const char* name ); \+int Type ## _GetDimension ( Type ## _p p ); \+double Type ## _GetKurtosis ( Type ## _p p, int axis ); \+void Type ## _GetLowEdge ( Type ## _p p, double * edge ); \+double Type ## _getMaximumTH1 ( Type ## _p p, double maxval ); \+int Type ## _GetMaximumBin ( Type ## _p p ); \+double Type ## _GetMaximumStored ( Type ## _p p ); \+double Type ## _getMinimumTH1 ( Type ## _p p, double minval ); \+int Type ## _GetMinimumBin ( Type ## _p p ); \+double Type ## _GetMinimumStored ( Type ## _p p ); \+double Type ## _GetMean ( Type ## _p p, int axis ); \+double Type ## _GetMeanError ( Type ## _p p, int axis ); \+double Type ## _GetNbinsX ( Type ## _p p ); \+double Type ## _GetNbinsY ( Type ## _p p ); \+double Type ## _GetNbinsZ ( Type ## _p p ); \+int Type ## _getQuantilesTH1 ( Type ## _p p, int nprobSum, double * q, double * pbSum ); \+double Type ## _GetRandom ( Type ## _p p ); \+void Type ## _GetStats ( Type ## _p p, double * stats ); \+double Type ## _GetSumOfWeights ( Type ## _p p ); \+TArrayD_p Type ## _GetSumw2 ( Type ## _p p ); \+int Type ## _GetSumw2N ( Type ## _p p ); \+double Type ## _GetRMS ( Type ## _p p, int axis ); \+double Type ## _GetRMSError ( Type ## _p p, int axis ); \+double Type ## _GetSkewness ( Type ## _p p, int axis ); \+double Type ## _integral1 ( Type ## _p p, int binx1, int binx2, const char* option ); \+double Type ## _interpolate1 ( Type ## _p p, double x ); \+double Type ## _interpolate2 ( Type ## _p p, double x, double y ); \+double Type ## _interpolate3 ( Type ## _p p, double x, double y, double z ); \+double Type ## _KolmogorovTest ( Type ## _p p, TH1_p h2, const char* option ); \+void Type ## _LabelsDeflate ( Type ## _p p, const char* axis ); \+void Type ## _LabelsInflate ( Type ## _p p, const char* axis ); \+void Type ## _LabelsOption ( Type ## _p p, const char* option, const char* axis ); \+void Type ## _multiflyF ( Type ## _p p, TF1_p h1, double c1 ); \+void Type ## _Multiply ( Type ## _p p, TH1_p h1, TH1_p h2, double c1, double c2, const char* option ); \+void Type ## _PutStats ( Type ## _p p, double * stats ); \+TH1_p Type ## _Rebin ( Type ## _p p, int ngroup, const char* newname, double * xbins ); \+void Type ## _RebinAxis ( Type ## _p p, double x, TAxis_p axis ); \+void Type ## _Rebuild ( Type ## _p p, const char* option ); \+void Type ## _RecursiveRemove ( Type ## _p p, TObject_p obj ); \+void Type ## _Reset ( Type ## _p p, const char* option ); \+void Type ## _ResetStats ( Type ## _p p ); \+void Type ## _Scale ( Type ## _p p, double c1, const char* option ); \+void Type ## _setAxisColorA ( Type ## _p p, int color, const char* axis ); \+void Type ## _SetAxisRange ( Type ## _p p, double xmin, double xmax, const char* axis ); \+void Type ## _SetBarOffset ( Type ## _p p, double offset ); \+void Type ## _SetBarWidth ( Type ## _p p, double width ); \+void Type ## _setBinContent1 ( Type ## _p p, int bin, double content ); \+void Type ## _setBinContent2 ( Type ## _p p, int binx, int biny, double content ); \+void Type ## _setBinContent3 ( Type ## _p p, int binx, int biny, int binz, double content ); \+void Type ## _setBinError1 ( Type ## _p p, int bin, double error ); \+void Type ## _setBinError2 ( Type ## _p p, int binx, int biny, double error ); \+void Type ## _setBinError3 ( Type ## _p p, int binx, int biny, int binz, double error ); \+void Type ## _setBins1 ( Type ## _p p, int nx, double * xBins ); \+void Type ## _setBins2 ( Type ## _p p, int nx, double * xBins, int ny, double * yBins ); \+void Type ## _setBins3 ( Type ## _p p, int nx, double * xBins, int ny, double * yBins, int nz, double * zBins ); \+void Type ## _SetBinsLength ( Type ## _p p, int bin ); \+void Type ## _SetBuffer ( Type ## _p p, int buffersize, const char* option ); \+void Type ## _SetCellContent ( Type ## _p p, int binx, int biny, double content ); \+void Type ## _SetContent ( Type ## _p p, double * content ); \+void Type ## _SetContour ( Type ## _p p, int nlevels, double * levels ); \+void Type ## _SetContourLevel ( Type ## _p p, int level, double value ); \+void Type ## _SetDirectory ( Type ## _p p, TDirectory_p dir ); \+void Type ## _SetEntries ( Type ## _p p, double n ); \+void Type ## _SetError ( Type ## _p p, double * error ); \+void Type ## _setLabelColorA ( Type ## _p p, int color, const char* axis ); \+void Type ## _setLabelSizeA ( Type ## _p p, double size, const char* axis ); \+void Type ## _setLabelFontA ( Type ## _p p, int font, const char* axis ); \+void Type ## _setLabelOffsetA ( Type ## _p p, double offset, const char* axis ); \+void Type ## _SetMaximum ( Type ## _p p, double maximum ); \+void Type ## _SetMinimum ( Type ## _p p, double minimum ); \+void Type ## _SetNormFactor ( Type ## _p p, double factor ); \+void Type ## _SetStats ( Type ## _p p, int stats ); \+void Type ## _SetOption ( Type ## _p p, const char* option ); \+void Type ## _SetXTitle ( Type ## _p p, const char* title ); \+void Type ## _SetYTitle ( Type ## _p p, const char* title ); \+void Type ## _SetZTitle ( Type ## _p p, const char* title ); \+TH1_p Type ## _ShowBackground ( Type ## _p p, int niter, const char* option ); \+int Type ## _ShowPeaks ( Type ## _p p, double sigma, const char* option, double threshold ); \+void Type ## _Smooth ( Type ## _p p, int ntimes, const char* option ); \+void Type ## _Sumw2 ( Type ## _p p )++#undef TH1_DECL_NONVIRT+#define TH1_DECL_NONVIRT(Type) \+Type ## _p Type ## _tH1GetAsymmetry ( Type ## _p p, TH1_p h2, double c2, double dc2 ); \+int Type ## _tH1GetBufferLength ( Type ## _p p ); \+int Type ## _tH1GetBufferSize ( Type ## _p p ); \+int Type ## _tH1GetDefaultBufferSize (  ); \+int Type ## _tH1GetDefaultSumw2 (  ); \+TDirectory_p Type ## _tH1GetDirectory ( Type ## _p p ); \+int Type ## _tH1IsBinOverflow ( Type ## _p p, int bin ); \+int Type ## _tH1IsBinUnderflow ( Type ## _p p, int bin ); \+void Type ## _tH1SetDefaultBufferSize ( int buffersize ); \+void Type ## _tH1SetDefaultSumw2 ( int sumw2 ); \+void Type ## _tH1SmoothArray ( int NN, double * XX, int ntimes ); \+void Type ## _tH1StatOverflows ( int flag ); \+void Type ## _tH1UseCurrentStyle ( Type ## _p p )++#undef TH1_DEF_VIRT+#define TH1_DEF_VIRT(Type)\+void Type ## _Add ( Type ## _p p, TH1_p h1, double c1 )\+{\+TYPECASTMETHOD(Type,Add,TH1)(p)->Add(to_nonconst<TH1,TH1_t>(h1), c1);\+}\+void Type ## _AddBinContent ( Type ## _p p, int bin, double w )\+{\+TYPECASTMETHOD(Type,AddBinContent,TH1)(p)->AddBinContent(bin, w);\+}\+double Type ## _Chi2Test ( Type ## _p p, TH1_p h2, const char* option, double * res )\+{\+return TYPECASTMETHOD(Type,Chi2Test,TH1)(p)->Chi2Test(to_nonconst<TH1,TH1_t>(h2), option, res);\+}\+double Type ## _ComputeIntegral ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,ComputeIntegral,TH1)(p)->ComputeIntegral();\+}\+void Type ## _DirectoryAutoAdd ( Type ## _p p, TDirectory_p dir )\+{\+TYPECASTMETHOD(Type,DirectoryAutoAdd,TH1)(p)->DirectoryAutoAdd(to_nonconst<TDirectory,TDirectory_t>(dir));\+}\+void Type ## _Divide ( Type ## _p p, TH1_p h1, TH1_p h2, double c1, double c2, const char* option )\+{\+TYPECASTMETHOD(Type,Divide,TH1)(p)->Divide(to_nonconst<TH1,TH1_t>(h1), to_nonconst<TH1,TH1_t>(h2), c1, c2, option);\+}\+Type ## _p Type ## _drawCopyTH1 ( Type ## _p p, const char* option )\+{\+return to_nonconst<Type ## _t, Type>((Type *)TYPECASTMETHOD(Type,drawCopyTH1,TH1)(p)->DrawCopy(option)) ;\+}\+TH1_p Type ## _DrawNormalized ( Type ## _p p, const char* option, double norm )\+{\+return to_nonconst<TH1_t,TH1>((TH1*)TYPECASTMETHOD(Type,DrawNormalized,TH1)(p)->DrawNormalized(option, norm));\+}\+void Type ## _drawPanelTH1 ( Type ## _p p )\+{\+TYPECASTMETHOD(Type,drawPanelTH1,TH1)(p)->DrawPanel();\+}\+int Type ## _BufferEmpty ( Type ## _p p, int action )\+{\+return TYPECASTMETHOD(Type,BufferEmpty,TH1)(p)->BufferEmpty(action);\+}\+void Type ## _evalF ( Type ## _p p, TF1_p f1, const char* option )\+{\+TYPECASTMETHOD(Type,evalF,TH1)(p)->Eval(to_nonconst<TF1,TF1_t>(f1), option);\+}\+TH1_p Type ## _FFT ( Type ## _p p, TH1_p h_output, const char* option )\+{\+return to_nonconst<TH1_t,TH1>((TH1*)TYPECASTMETHOD(Type,FFT,TH1)(p)->FFT(to_nonconst<TH1,TH1_t>(h_output), option));\+}\+int Type ## _fill1 ( Type ## _p p, double x )\+{\+return TYPECASTMETHOD(Type,fill1,TH1)(p)->Fill(x);\+}\+int Type ## _fill1w ( Type ## _p p, double x, double w )\+{\+return TYPECASTMETHOD(Type,fill1w,TH1)(p)->Fill(x, w);\+}\+void Type ## _fillN1 ( Type ## _p p, int ntimes, double * x, double * w, int stride )\+{\+TYPECASTMETHOD(Type,fillN1,TH1)(p)->FillN(ntimes, x, w, stride);\+}\+void Type ## _FillRandom ( Type ## _p p, TH1_p h, int ntimes )\+{\+TYPECASTMETHOD(Type,FillRandom,TH1)(p)->FillRandom(to_nonconst<TH1,TH1_t>(h), ntimes);\+}\+int Type ## _FindBin ( Type ## _p p, double x, double y, double z )\+{\+return TYPECASTMETHOD(Type,FindBin,TH1)(p)->FindBin(x, y, z);\+}\+int Type ## _FindFixBin ( Type ## _p p, double x, double y, double z )\+{\+return TYPECASTMETHOD(Type,FindFixBin,TH1)(p)->FindFixBin(x, y, z);\+}\+int Type ## _FindFirstBinAbove ( Type ## _p p, double threshold, int axis )\+{\+return TYPECASTMETHOD(Type,FindFirstBinAbove,TH1)(p)->FindFirstBinAbove(threshold, axis);\+}\+int Type ## _FindLastBinAbove ( Type ## _p p, double threshold, int axis )\+{\+return TYPECASTMETHOD(Type,FindLastBinAbove,TH1)(p)->FindLastBinAbove(threshold, axis);\+}\+void Type ## _FitPanelTH1 ( Type ## _p p )\+{\+TYPECASTMETHOD(Type,FitPanelTH1,TH1)(p)->FitPanel();\+}\+int Type ## _getNdivisionA ( Type ## _p p, const char* axis )\+{\+return TYPECASTMETHOD(Type,getNdivisionA,TH1)(p)->GetNdivisions(axis);\+}\+int Type ## _getAxisColorA ( Type ## _p p, const char* axis )\+{\+return TYPECASTMETHOD(Type,getAxisColorA,TH1)(p)->GetAxisColor(axis);\+}\+int Type ## _getLabelColorA ( Type ## _p p, const char* axis )\+{\+return TYPECASTMETHOD(Type,getLabelColorA,TH1)(p)->GetLabelColor(axis);\+}\+int Type ## _getLabelFontA ( Type ## _p p, const char* axis )\+{\+return TYPECASTMETHOD(Type,getLabelFontA,TH1)(p)->GetLabelFont(axis);\+}\+double Type ## _getLabelOffsetA ( Type ## _p p, const char* axis )\+{\+return TYPECASTMETHOD(Type,getLabelOffsetA,TH1)(p)->GetLabelOffset(axis);\+}\+double Type ## _getLabelSizeA ( Type ## _p p, const char* axis )\+{\+return TYPECASTMETHOD(Type,getLabelSizeA,TH1)(p)->GetLabelSize(axis);\+}\+int Type ## _getTitleFontA ( Type ## _p p, const char* axis )\+{\+return TYPECASTMETHOD(Type,getTitleFontA,TH1)(p)->GetTitleFont(axis);\+}\+double Type ## _getTitleOffsetA ( Type ## _p p, const char* axis )\+{\+return TYPECASTMETHOD(Type,getTitleOffsetA,TH1)(p)->GetTitleOffset(axis);\+}\+double Type ## _getTitleSizeA ( Type ## _p p, const char* axis )\+{\+return TYPECASTMETHOD(Type,getTitleSizeA,TH1)(p)->GetTitleSize(axis);\+}\+double Type ## _getTickLengthA ( Type ## _p p, const char* axis )\+{\+return TYPECASTMETHOD(Type,getTickLengthA,TH1)(p)->GetTickLength(axis);\+}\+double Type ## _GetBarOffset ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,GetBarOffset,TH1)(p)->GetBarOffset();\+}\+double Type ## _GetBarWidth ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,GetBarWidth,TH1)(p)->GetBarWidth();\+}\+int Type ## _GetContour ( Type ## _p p, double * levels )\+{\+return TYPECASTMETHOD(Type,GetContour,TH1)(p)->GetContour(levels);\+}\+double Type ## _GetContourLevel ( Type ## _p p, int level )\+{\+return TYPECASTMETHOD(Type,GetContourLevel,TH1)(p)->GetContourLevel(level);\+}\+double Type ## _GetContourLevelPad ( Type ## _p p, int level )\+{\+return TYPECASTMETHOD(Type,GetContourLevelPad,TH1)(p)->GetContourLevelPad(level);\+}\+int Type ## _GetBin ( Type ## _p p, int binx, int biny, int binz )\+{\+return TYPECASTMETHOD(Type,GetBin,TH1)(p)->GetBin(binx, biny, binz);\+}\+double Type ## _GetBinCenter ( Type ## _p p, int bin )\+{\+return TYPECASTMETHOD(Type,GetBinCenter,TH1)(p)->GetBinCenter(bin);\+}\+double Type ## _GetBinContent1 ( Type ## _p p, int binx )\+{\+return TYPECASTMETHOD(Type,GetBinContent1,TH1)(p)->GetBinContent(binx);\+}\+double Type ## _GetBinContent2 ( Type ## _p p, int binx, int biny )\+{\+return TYPECASTMETHOD(Type,GetBinContent2,TH1)(p)->GetBinContent(binx, biny);\+}\+double Type ## _GetBinContent3 ( Type ## _p p, int binx, int biny, int binz )\+{\+return TYPECASTMETHOD(Type,GetBinContent3,TH1)(p)->GetBinContent(binx, biny, binz);\+}\+double Type ## _GetBinError1 ( Type ## _p p, int binx )\+{\+return TYPECASTMETHOD(Type,GetBinError1,TH1)(p)->GetBinError(binx);\+}\+double Type ## _GetBinError2 ( Type ## _p p, int binx, int biny )\+{\+return TYPECASTMETHOD(Type,GetBinError2,TH1)(p)->GetBinError(binx, biny);\+}\+double Type ## _GetBinError3 ( Type ## _p p, int binx, int biny, int binz )\+{\+return TYPECASTMETHOD(Type,GetBinError3,TH1)(p)->GetBinError(binx, biny, binz);\+}\+double Type ## _GetBinLowEdge ( Type ## _p p, int bin )\+{\+return TYPECASTMETHOD(Type,GetBinLowEdge,TH1)(p)->GetBinLowEdge(bin);\+}\+double Type ## _GetBinWidth ( Type ## _p p, int bin )\+{\+return TYPECASTMETHOD(Type,GetBinWidth,TH1)(p)->GetBinWidth(bin);\+}\+double Type ## _GetCellContent ( Type ## _p p, int binx, int biny )\+{\+return TYPECASTMETHOD(Type,GetCellContent,TH1)(p)->GetCellContent(binx, biny);\+}\+double Type ## _GetCellError ( Type ## _p p, int binx, int biny )\+{\+return TYPECASTMETHOD(Type,GetCellError,TH1)(p)->GetCellError(binx, biny);\+}\+double Type ## _GetEntries ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,GetEntries,TH1)(p)->GetEntries();\+}\+double Type ## _GetEffectiveEntries ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,GetEffectiveEntries,TH1)(p)->GetEffectiveEntries();\+}\+TF1_p Type ## _GetFunction ( Type ## _p p, const char* name )\+{\+return to_nonconst<TF1_t,TF1>((TF1*)TYPECASTMETHOD(Type,GetFunction,TH1)(p)->GetFunction(name));\+}\+int Type ## _GetDimension ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,GetDimension,TH1)(p)->GetDimension();\+}\+double Type ## _GetKurtosis ( Type ## _p p, int axis )\+{\+return TYPECASTMETHOD(Type,GetKurtosis,TH1)(p)->GetKurtosis(axis);\+}\+void Type ## _GetLowEdge ( Type ## _p p, double * edge )\+{\+TYPECASTMETHOD(Type,GetLowEdge,TH1)(p)->GetLowEdge(edge);\+}\+double Type ## _getMaximumTH1 ( Type ## _p p, double maxval )\+{\+return TYPECASTMETHOD(Type,getMaximumTH1,TH1)(p)->GetMaximum(maxval);\+}\+int Type ## _GetMaximumBin ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,GetMaximumBin,TH1)(p)->GetMaximumBin();\+}\+double Type ## _GetMaximumStored ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,GetMaximumStored,TH1)(p)->GetMaximumStored();\+}\+double Type ## _getMinimumTH1 ( Type ## _p p, double minval )\+{\+return TYPECASTMETHOD(Type,getMinimumTH1,TH1)(p)->GetMinimum(minval);\+}\+int Type ## _GetMinimumBin ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,GetMinimumBin,TH1)(p)->GetMinimumBin();\+}\+double Type ## _GetMinimumStored ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,GetMinimumStored,TH1)(p)->GetMinimumStored();\+}\+double Type ## _GetMean ( Type ## _p p, int axis )\+{\+return TYPECASTMETHOD(Type,GetMean,TH1)(p)->GetMean(axis);\+}\+double Type ## _GetMeanError ( Type ## _p p, int axis )\+{\+return TYPECASTMETHOD(Type,GetMeanError,TH1)(p)->GetMeanError(axis);\+}\+double Type ## _GetNbinsX ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,GetNbinsX,TH1)(p)->GetNbinsX();\+}\+double Type ## _GetNbinsY ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,GetNbinsY,TH1)(p)->GetNbinsY();\+}\+double Type ## _GetNbinsZ ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,GetNbinsZ,TH1)(p)->GetNbinsZ();\+}\+int Type ## _getQuantilesTH1 ( Type ## _p p, int nprobSum, double * q, double * pbSum )\+{\+return TYPECASTMETHOD(Type,getQuantilesTH1,TH1)(p)->GetQuantiles(nprobSum, q, pbSum);\+}\+double Type ## _GetRandom ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,GetRandom,TH1)(p)->GetRandom();\+}\+void Type ## _GetStats ( Type ## _p p, double * stats )\+{\+TYPECASTMETHOD(Type,GetStats,TH1)(p)->GetStats(stats);\+}\+double Type ## _GetSumOfWeights ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,GetSumOfWeights,TH1)(p)->GetSumOfWeights();\+}\+TArrayD_p Type ## _GetSumw2 ( Type ## _p p )\+{\+return to_nonconst<TArrayD_t,TArrayD>((TArrayD*)TYPECASTMETHOD(Type,GetSumw2,TH1)(p)->GetSumw2());\+}\+int Type ## _GetSumw2N ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,GetSumw2N,TH1)(p)->GetSumw2N();\+}\+double Type ## _GetRMS ( Type ## _p p, int axis )\+{\+return TYPECASTMETHOD(Type,GetRMS,TH1)(p)->GetRMS(axis);\+}\+double Type ## _GetRMSError ( Type ## _p p, int axis )\+{\+return TYPECASTMETHOD(Type,GetRMSError,TH1)(p)->GetRMSError(axis);\+}\+double Type ## _GetSkewness ( Type ## _p p, int axis )\+{\+return TYPECASTMETHOD(Type,GetSkewness,TH1)(p)->GetSkewness(axis);\+}\+double Type ## _integral1 ( Type ## _p p, int binx1, int binx2, const char* option )\+{\+return TYPECASTMETHOD(Type,integral1,TH1)(p)->Integral(binx1, binx2, option);\+}\+double Type ## _interpolate1 ( Type ## _p p, double x )\+{\+return TYPECASTMETHOD(Type,interpolate1,TH1)(p)->Interpolate(x);\+}\+double Type ## _interpolate2 ( Type ## _p p, double x, double y )\+{\+return TYPECASTMETHOD(Type,interpolate2,TH1)(p)->Interpolate(x, y);\+}\+double Type ## _interpolate3 ( Type ## _p p, double x, double y, double z )\+{\+return TYPECASTMETHOD(Type,interpolate3,TH1)(p)->Interpolate(x, y, z);\+}\+double Type ## _KolmogorovTest ( Type ## _p p, TH1_p h2, const char* option )\+{\+return TYPECASTMETHOD(Type,KolmogorovTest,TH1)(p)->KolmogorovTest(to_nonconst<TH1,TH1_t>(h2), option);\+}\+void Type ## _LabelsDeflate ( Type ## _p p, const char* axis )\+{\+TYPECASTMETHOD(Type,LabelsDeflate,TH1)(p)->LabelsDeflate(axis);\+}\+void Type ## _LabelsInflate ( Type ## _p p, const char* axis )\+{\+TYPECASTMETHOD(Type,LabelsInflate,TH1)(p)->LabelsInflate(axis);\+}\+void Type ## _LabelsOption ( Type ## _p p, const char* option, const char* axis )\+{\+TYPECASTMETHOD(Type,LabelsOption,TH1)(p)->LabelsOption(option, axis);\+}\+void Type ## _multiflyF ( Type ## _p p, TF1_p h1, double c1 )\+{\+TYPECASTMETHOD(Type,multiflyF,TH1)(p)->Multiply(to_nonconst<TF1,TF1_t>(h1), c1);\+}\+void Type ## _Multiply ( Type ## _p p, TH1_p h1, TH1_p h2, double c1, double c2, const char* option )\+{\+TYPECASTMETHOD(Type,Multiply,TH1)(p)->Multiply(to_nonconst<TH1,TH1_t>(h1), to_nonconst<TH1,TH1_t>(h2), c1, c2, option);\+}\+void Type ## _PutStats ( Type ## _p p, double * stats )\+{\+TYPECASTMETHOD(Type,PutStats,TH1)(p)->PutStats(stats);\+}\+TH1_p Type ## _Rebin ( Type ## _p p, int ngroup, const char* newname, double * xbins )\+{\+return to_nonconst<TH1_t,TH1>((TH1*)TYPECASTMETHOD(Type,Rebin,TH1)(p)->Rebin(ngroup, newname, xbins));\+}\+void Type ## _RebinAxis ( Type ## _p p, double x, TAxis_p axis )\+{\+TYPECASTMETHOD(Type,RebinAxis,TH1)(p)->RebinAxis(x, to_nonconst<TAxis,TAxis_t>(axis));\+}\+void Type ## _Rebuild ( Type ## _p p, const char* option )\+{\+TYPECASTMETHOD(Type,Rebuild,TH1)(p)->Rebuild(option);\+}\+void Type ## _RecursiveRemove ( Type ## _p p, TObject_p obj )\+{\+TYPECASTMETHOD(Type,RecursiveRemove,TH1)(p)->RecursiveRemove(to_nonconst<TObject,TObject_t>(obj));\+}\+void Type ## _Reset ( Type ## _p p, const char* option )\+{\+TYPECASTMETHOD(Type,Reset,TH1)(p)->Reset(option);\+}\+void Type ## _ResetStats ( Type ## _p p )\+{\+TYPECASTMETHOD(Type,ResetStats,TH1)(p)->ResetStats();\+}\+void Type ## _Scale ( Type ## _p p, double c1, const char* option )\+{\+TYPECASTMETHOD(Type,Scale,TH1)(p)->Scale(c1, option);\+}\+void Type ## _setAxisColorA ( Type ## _p p, int color, const char* axis )\+{\+TYPECASTMETHOD(Type,setAxisColorA,TH1)(p)->SetAxisColor(color, axis);\+}\+void Type ## _SetAxisRange ( Type ## _p p, double xmin, double xmax, const char* axis )\+{\+TYPECASTMETHOD(Type,SetAxisRange,TH1)(p)->SetAxisRange(xmin, xmax, axis);\+}\+void Type ## _SetBarOffset ( Type ## _p p, double offset )\+{\+TYPECASTMETHOD(Type,SetBarOffset,TH1)(p)->SetBarOffset(offset);\+}\+void Type ## _SetBarWidth ( Type ## _p p, double width )\+{\+TYPECASTMETHOD(Type,SetBarWidth,TH1)(p)->SetBarWidth(width);\+}\+void Type ## _setBinContent1 ( Type ## _p p, int bin, double content )\+{\+TYPECASTMETHOD(Type,setBinContent1,TH1)(p)->SetBinContent(bin, content);\+}\+void Type ## _setBinContent2 ( Type ## _p p, int binx, int biny, double content )\+{\+TYPECASTMETHOD(Type,setBinContent2,TH1)(p)->SetBinContent(binx, biny, content);\+}\+void Type ## _setBinContent3 ( Type ## _p p, int binx, int biny, int binz, double content )\+{\+TYPECASTMETHOD(Type,setBinContent3,TH1)(p)->SetBinContent(binx, biny, binz, content);\+}\+void Type ## _setBinError1 ( Type ## _p p, int bin, double error )\+{\+TYPECASTMETHOD(Type,setBinError1,TH1)(p)->SetBinError(bin, error);\+}\+void Type ## _setBinError2 ( Type ## _p p, int binx, int biny, double error )\+{\+TYPECASTMETHOD(Type,setBinError2,TH1)(p)->SetBinError(binx, biny, error);\+}\+void Type ## _setBinError3 ( Type ## _p p, int binx, int biny, int binz, double error )\+{\+TYPECASTMETHOD(Type,setBinError3,TH1)(p)->SetBinError(binx, biny, binz, error);\+}\+void Type ## _setBins1 ( Type ## _p p, int nx, double * xBins )\+{\+TYPECASTMETHOD(Type,setBins1,TH1)(p)->SetBins(nx, xBins);\+}\+void Type ## _setBins2 ( Type ## _p p, int nx, double * xBins, int ny, double * yBins )\+{\+TYPECASTMETHOD(Type,setBins2,TH1)(p)->SetBins(nx, xBins, ny, yBins);\+}\+void Type ## _setBins3 ( Type ## _p p, int nx, double * xBins, int ny, double * yBins, int nz, double * zBins )\+{\+TYPECASTMETHOD(Type,setBins3,TH1)(p)->SetBins(nx, xBins, ny, yBins, nz, zBins);\+}\+void Type ## _SetBinsLength ( Type ## _p p, int bin )\+{\+TYPECASTMETHOD(Type,SetBinsLength,TH1)(p)->SetBinsLength(bin);\+}\+void Type ## _SetBuffer ( Type ## _p p, int buffersize, const char* option )\+{\+TYPECASTMETHOD(Type,SetBuffer,TH1)(p)->SetBuffer(buffersize, option);\+}\+void Type ## _SetCellContent ( Type ## _p p, int binx, int biny, double content )\+{\+TYPECASTMETHOD(Type,SetCellContent,TH1)(p)->SetCellContent(binx, biny, content);\+}\+void Type ## _SetContent ( Type ## _p p, double * content )\+{\+TYPECASTMETHOD(Type,SetContent,TH1)(p)->SetContent(content);\+}\+void Type ## _SetContour ( Type ## _p p, int nlevels, double * levels )\+{\+TYPECASTMETHOD(Type,SetContour,TH1)(p)->SetContour(nlevels, levels);\+}\+void Type ## _SetContourLevel ( Type ## _p p, int level, double value )\+{\+TYPECASTMETHOD(Type,SetContourLevel,TH1)(p)->SetContourLevel(level, value);\+}\+void Type ## _SetDirectory ( Type ## _p p, TDirectory_p dir )\+{\+TYPECASTMETHOD(Type,SetDirectory,TH1)(p)->SetDirectory(to_nonconst<TDirectory,TDirectory_t>(dir));\+}\+void Type ## _SetEntries ( Type ## _p p, double n )\+{\+TYPECASTMETHOD(Type,SetEntries,TH1)(p)->SetEntries(n);\+}\+void Type ## _SetError ( Type ## _p p, double * error )\+{\+TYPECASTMETHOD(Type,SetError,TH1)(p)->SetError(error);\+}\+void Type ## _setLabelColorA ( Type ## _p p, int color, const char* axis )\+{\+TYPECASTMETHOD(Type,setLabelColorA,TH1)(p)->SetLabelColor(color, axis);\+}\+void Type ## _setLabelSizeA ( Type ## _p p, double size, const char* axis )\+{\+TYPECASTMETHOD(Type,setLabelSizeA,TH1)(p)->SetLabelSize(size, axis);\+}\+void Type ## _setLabelFontA ( Type ## _p p, int font, const char* axis )\+{\+TYPECASTMETHOD(Type,setLabelFontA,TH1)(p)->SetLabelFont(font, axis);\+}\+void Type ## _setLabelOffsetA ( Type ## _p p, double offset, const char* axis )\+{\+TYPECASTMETHOD(Type,setLabelOffsetA,TH1)(p)->SetLabelOffset(offset, axis);\+}\+void Type ## _SetMaximum ( Type ## _p p, double maximum )\+{\+TYPECASTMETHOD(Type,SetMaximum,TH1)(p)->SetMaximum(maximum);\+}\+void Type ## _SetMinimum ( Type ## _p p, double minimum )\+{\+TYPECASTMETHOD(Type,SetMinimum,TH1)(p)->SetMinimum(minimum);\+}\+void Type ## _SetNormFactor ( Type ## _p p, double factor )\+{\+TYPECASTMETHOD(Type,SetNormFactor,TH1)(p)->SetNormFactor(factor);\+}\+void Type ## _SetStats ( Type ## _p p, int stats )\+{\+TYPECASTMETHOD(Type,SetStats,TH1)(p)->SetStats(stats);\+}\+void Type ## _SetOption ( Type ## _p p, const char* option )\+{\+TYPECASTMETHOD(Type,SetOption,TH1)(p)->SetOption(option);\+}\+void Type ## _SetXTitle ( Type ## _p p, const char* title )\+{\+TYPECASTMETHOD(Type,SetXTitle,TH1)(p)->SetXTitle(title);\+}\+void Type ## _SetYTitle ( Type ## _p p, const char* title )\+{\+TYPECASTMETHOD(Type,SetYTitle,TH1)(p)->SetYTitle(title);\+}\+void Type ## _SetZTitle ( Type ## _p p, const char* title )\+{\+TYPECASTMETHOD(Type,SetZTitle,TH1)(p)->SetZTitle(title);\+}\+TH1_p Type ## _ShowBackground ( Type ## _p p, int niter, const char* option )\+{\+return to_nonconst<TH1_t,TH1>((TH1*)TYPECASTMETHOD(Type,ShowBackground,TH1)(p)->ShowBackground(niter, option));\+}\+int Type ## _ShowPeaks ( Type ## _p p, double sigma, const char* option, double threshold )\+{\+return TYPECASTMETHOD(Type,ShowPeaks,TH1)(p)->ShowPeaks(sigma, option, threshold);\+}\+void Type ## _Smooth ( Type ## _p p, int ntimes, const char* option )\+{\+TYPECASTMETHOD(Type,Smooth,TH1)(p)->Smooth(ntimes, option);\+}\+void Type ## _Sumw2 ( Type ## _p p )\+{\+TYPECASTMETHOD(Type,Sumw2,TH1)(p)->Sumw2();\+}++#undef TH1_DEF_NONVIRT+#define TH1_DEF_NONVIRT(Type)\+Type ## _p Type ## _tH1GetAsymmetry ( Type ## _p p, TH1_p h2, double c2, double dc2 )\+{\+return to_nonconst<Type ## _t, Type>((Type *)TYPECASTMETHOD(Type,tH1GetAsymmetry,TH1)(p)->GetAsymmetry(to_nonconst<TH1,TH1_t>(h2), c2, dc2)) ;\+}\+int Type ## _tH1GetBufferLength ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,tH1GetBufferLength,TH1)(p)->GetBufferLength();\+}\+int Type ## _tH1GetBufferSize ( Type ## _p p )\+{\+return TYPECASTMETHOD(Type,tH1GetBufferSize,TH1)(p)->GetBufferSize();\+}\+int Type ## _tH1GetDefaultBufferSize (  )\+{\+return TH1::GetDefaultBufferSize();\+}\+int Type ## _tH1GetDefaultSumw2 (  )\+{\+return TH1::GetDefaultSumw2();\+}\+TDirectory_p Type ## _tH1GetDirectory ( Type ## _p p )\+{\+return to_nonconst<TDirectory_t,TDirectory>((TDirectory*)TYPECASTMETHOD(Type,tH1GetDirectory,TH1)(p)->GetDirectory());\+}\+int Type ## _tH1IsBinOverflow ( Type ## _p p, int bin )\+{\+return TYPECASTMETHOD(Type,tH1IsBinOverflow,TH1)(p)->IsBinOverflow(bin);\+}\+int Type ## _tH1IsBinUnderflow ( Type ## _p p, int bin )\+{\+return TYPECASTMETHOD(Type,tH1IsBinUnderflow,TH1)(p)->IsBinUnderflow(bin);\+}\+void Type ## _tH1SetDefaultBufferSize ( int buffersize )\+{\+TH1::SetDefaultBufferSize(buffersize);\+}\+void Type ## _tH1SetDefaultSumw2 ( int sumw2 )\+{\+TH1::SetDefaultSumw2(sumw2);\+}\+void Type ## _tH1SmoothArray ( int NN, double * XX, int ntimes )\+{\+TH1::SmoothArray(NN, XX, ntimes);\+}\+void Type ## _tH1StatOverflows ( int flag )\+{\+TH1::StatOverflows(flag);\+}\+void Type ## _tH1UseCurrentStyle ( Type ## _p p )\+{\+TYPECASTMETHOD(Type,tH1UseCurrentStyle,TH1)(p)->UseCurrentStyle();\+}++TOBJECT_DECL_VIRT(TH1);+TATTLINE_DECL_VIRT(TH1);+TATTFILL_DECL_VIRT(TH1);+TATTMARKER_DECL_VIRT(TH1);+DELETABLE_DECL_VIRT(TH1);+++TH1_DECL_VIRT(TH1);+++TH1_DECL_NONVIRT(TH1);+++#endif // __HROOT_HIST__TH1__++#ifdef __cplusplus+}+#endif
+ csrc/HROOTHistTH1C.cpp view
@@ -0,0 +1,53 @@+#include <MacroPatternMatch.h>++#include "HROOTHistTH1.h"+#include "HROOTCoreTArrayC.h"+#include "TH1C.h"+#include "HROOTHistTH1C.h"++using namespace std;+++template<class ToType, class FromType>+const ToType* to_const(const FromType* x) {+  return reinterpret_cast<const ToType*>(x);+}++template<class ToType, class FromType>+ToType* to_nonconst(FromType* x) {+  return reinterpret_cast<ToType*>(x);+}++template<class ToType, class FromType>+const ToType& to_constref(const FromType& x) {+  return reinterpret_cast<const ToType&>(x);+}++template<class ToType, class FromType>+ToType& to_nonconstref(FromType& x) {+  return reinterpret_cast<ToType&>(x);+}+++#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)++#define TYPECASTMETHOD(cname,mname,oname) \+  IIF( CHECKPROTECT(cname,mname) ) ( \+  (to_nonconst<oname,cname ## _t>), \+  (to_nonconst<cname,cname ## _t>) )+++TH1_DEF_VIRT(TH1C)+TARRAYC_DEF_VIRT(TH1C)+TOBJECT_DEF_VIRT(TH1C)+TATTLINE_DEF_VIRT(TH1C)+TATTFILL_DEF_VIRT(TH1C)+TATTMARKER_DEF_VIRT(TH1C)+DELETABLE_DEF_VIRT(TH1C)+TARRAY_DEF_VIRT(TH1C)++TH1C_DEF_VIRT(TH1C)++TH1C_DEF_NONVIRT(TH1C)++
+ csrc/HROOTHistTH1C.h view
@@ -0,0 +1,56 @@+#ifdef __cplusplus+extern "C" { +#endif ++#ifndef __HROOT_HIST__TH1C__+#define __HROOT_HIST__TH1C__++#include "HROOT-histType.h"++#include "HROOTHistTH1.h"+#include "HROOTCoreTArrayC.h"+#include "HROOTCoreTObject.h"+#include "HROOTCoreTAttLine.h"+#include "HROOTCoreTAttFill.h"+#include "HROOTCoreTAttMarker.h"+#include "HROOTCoreDeletable.h"+#include "HROOTCoreTArray.h"+#include "HROOT-coreType.h"++#undef TH1C_DECL_VIRT+#define TH1C_DECL_VIRT(Type) \+++#undef TH1C_DECL_NONVIRT+#define TH1C_DECL_NONVIRT(Type) \+++#undef TH1C_DEF_VIRT+#define TH1C_DEF_VIRT(Type)\+++#undef TH1C_DEF_NONVIRT+#define TH1C_DEF_NONVIRT(Type)\+++TH1_DECL_VIRT(TH1C);+TARRAYC_DECL_VIRT(TH1C);+TOBJECT_DECL_VIRT(TH1C);+TATTLINE_DECL_VIRT(TH1C);+TATTFILL_DECL_VIRT(TH1C);+TATTMARKER_DECL_VIRT(TH1C);+DELETABLE_DECL_VIRT(TH1C);+TARRAY_DECL_VIRT(TH1C);+++TH1C_DECL_VIRT(TH1C);+++TH1C_DECL_NONVIRT(TH1C);+++#endif // __HROOT_HIST__TH1C__++#ifdef __cplusplus+}+#endif
+ csrc/HROOTHistTH1D.cpp view
@@ -0,0 +1,53 @@+#include <MacroPatternMatch.h>++#include "HROOTHistTH1.h"+#include "HROOTCoreTArrayD.h"+#include "TH1D.h"+#include "HROOTHistTH1D.h"++using namespace std;+++template<class ToType, class FromType>+const ToType* to_const(const FromType* x) {+  return reinterpret_cast<const ToType*>(x);+}++template<class ToType, class FromType>+ToType* to_nonconst(FromType* x) {+  return reinterpret_cast<ToType*>(x);+}++template<class ToType, class FromType>+const ToType& to_constref(const FromType& x) {+  return reinterpret_cast<const ToType&>(x);+}++template<class ToType, class FromType>+ToType& to_nonconstref(FromType& x) {+  return reinterpret_cast<ToType&>(x);+}+++#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)++#define TYPECASTMETHOD(cname,mname,oname) \+  IIF( CHECKPROTECT(cname,mname) ) ( \+  (to_nonconst<oname,cname ## _t>), \+  (to_nonconst<cname,cname ## _t>) )+++TH1_DEF_VIRT(TH1D)+TARRAYD_DEF_VIRT(TH1D)+TOBJECT_DEF_VIRT(TH1D)+TATTLINE_DEF_VIRT(TH1D)+TATTFILL_DEF_VIRT(TH1D)+TATTMARKER_DEF_VIRT(TH1D)+DELETABLE_DEF_VIRT(TH1D)+TARRAY_DEF_VIRT(TH1D)++TH1D_DEF_VIRT(TH1D)++TH1D_DEF_NONVIRT(TH1D)++
+ csrc/HROOTHistTH1D.h view
@@ -0,0 +1,60 @@+#ifdef __cplusplus+extern "C" { +#endif ++#ifndef __HROOT_HIST__TH1D__+#define __HROOT_HIST__TH1D__++#include "HROOT-histType.h"++#include "HROOTHistTH1.h"+#include "HROOTCoreTArrayD.h"+#include "HROOTCoreTObject.h"+#include "HROOTCoreTAttLine.h"+#include "HROOTCoreTAttFill.h"+#include "HROOTCoreTAttMarker.h"+#include "HROOTCoreDeletable.h"+#include "HROOTCoreTArray.h"+#include "HROOT-coreType.h"++#undef TH1D_DECL_VIRT+#define TH1D_DECL_VIRT(Type) \+++#undef TH1D_DECL_NONVIRT+#define TH1D_DECL_NONVIRT(Type) \+Type ## _p Type ## _newTH1D ( const char* name, const char* title, int nbinsx, double xlow, double xup )++#undef TH1D_DEF_VIRT+#define TH1D_DEF_VIRT(Type)\+++#undef TH1D_DEF_NONVIRT+#define TH1D_DEF_NONVIRT(Type)\+Type ## _p Type ## _newTH1D ( const char* name, const char* title, int nbinsx, double xlow, double xup )\+{\+Type * newp = new Type (name, title, nbinsx, xlow, xup); \+return to_nonconst<Type ## _t, Type >(newp);\+}++TH1_DECL_VIRT(TH1D);+TARRAYD_DECL_VIRT(TH1D);+TOBJECT_DECL_VIRT(TH1D);+TATTLINE_DECL_VIRT(TH1D);+TATTFILL_DECL_VIRT(TH1D);+TATTMARKER_DECL_VIRT(TH1D);+DELETABLE_DECL_VIRT(TH1D);+TARRAY_DECL_VIRT(TH1D);+++TH1D_DECL_VIRT(TH1D);+++TH1D_DECL_NONVIRT(TH1D);+++#endif // __HROOT_HIST__TH1D__++#ifdef __cplusplus+}+#endif
+ csrc/HROOTHistTH1F.cpp view
@@ -0,0 +1,53 @@+#include <MacroPatternMatch.h>++#include "HROOTHistTH1.h"+#include "HROOTCoreTArrayF.h"+#include "TH1F.h"+#include "HROOTHistTH1F.h"++using namespace std;+++template<class ToType, class FromType>+const ToType* to_const(const FromType* x) {+  return reinterpret_cast<const ToType*>(x);+}++template<class ToType, class FromType>+ToType* to_nonconst(FromType* x) {+  return reinterpret_cast<ToType*>(x);+}++template<class ToType, class FromType>+const ToType& to_constref(const FromType& x) {+  return reinterpret_cast<const ToType&>(x);+}++template<class ToType, class FromType>+ToType& to_nonconstref(FromType& x) {+  return reinterpret_cast<ToType&>(x);+}+++#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)++#define TYPECASTMETHOD(cname,mname,oname) \+  IIF( CHECKPROTECT(cname,mname) ) ( \+  (to_nonconst<oname,cname ## _t>), \+  (to_nonconst<cname,cname ## _t>) )+++TH1_DEF_VIRT(TH1F)+TARRAYF_DEF_VIRT(TH1F)+TOBJECT_DEF_VIRT(TH1F)+TATTLINE_DEF_VIRT(TH1F)+TATTFILL_DEF_VIRT(TH1F)+TATTMARKER_DEF_VIRT(TH1F)+DELETABLE_DEF_VIRT(TH1F)+TARRAY_DEF_VIRT(TH1F)++TH1F_DEF_VIRT(TH1F)++TH1F_DEF_NONVIRT(TH1F)++
+ csrc/HROOTHistTH1F.h view
@@ -0,0 +1,60 @@+#ifdef __cplusplus+extern "C" { +#endif ++#ifndef __HROOT_HIST__TH1F__+#define __HROOT_HIST__TH1F__++#include "HROOT-histType.h"++#include "HROOTHistTH1.h"+#include "HROOTCoreTArrayF.h"+#include "HROOTCoreTObject.h"+#include "HROOTCoreTAttLine.h"+#include "HROOTCoreTAttFill.h"+#include "HROOTCoreTAttMarker.h"+#include "HROOTCoreDeletable.h"+#include "HROOTCoreTArray.h"+#include "HROOT-coreType.h"++#undef TH1F_DECL_VIRT+#define TH1F_DECL_VIRT(Type) \+++#undef TH1F_DECL_NONVIRT+#define TH1F_DECL_NONVIRT(Type) \+Type ## _p Type ## _newTH1F ( const char* name, const char* title, int nbinsx, double xlow, double xup )++#undef TH1F_DEF_VIRT+#define TH1F_DEF_VIRT(Type)\+++#undef TH1F_DEF_NONVIRT+#define TH1F_DEF_NONVIRT(Type)\+Type ## _p Type ## _newTH1F ( const char* name, const char* title, int nbinsx, double xlow, double xup )\+{\+Type * newp = new Type (name, title, nbinsx, xlow, xup); \+return to_nonconst<Type ## _t, Type >(newp);\+}++TH1_DECL_VIRT(TH1F);+TARRAYF_DECL_VIRT(TH1F);+TOBJECT_DECL_VIRT(TH1F);+TATTLINE_DECL_VIRT(TH1F);+TATTFILL_DECL_VIRT(TH1F);+TATTMARKER_DECL_VIRT(TH1F);+DELETABLE_DECL_VIRT(TH1F);+TARRAY_DECL_VIRT(TH1F);+++TH1F_DECL_VIRT(TH1F);+++TH1F_DECL_NONVIRT(TH1F);+++#endif // __HROOT_HIST__TH1F__++#ifdef __cplusplus+}+#endif
+ csrc/HROOTHistTH1I.cpp view
@@ -0,0 +1,53 @@+#include <MacroPatternMatch.h>++#include "HROOTHistTH1.h"+#include "HROOTCoreTArrayI.h"+#include "TH1I.h"+#include "HROOTHistTH1I.h"++using namespace std;+++template<class ToType, class FromType>+const ToType* to_const(const FromType* x) {+  return reinterpret_cast<const ToType*>(x);+}++template<class ToType, class FromType>+ToType* to_nonconst(FromType* x) {+  return reinterpret_cast<ToType*>(x);+}++template<class ToType, class FromType>+const ToType& to_constref(const FromType& x) {+  return reinterpret_cast<const ToType&>(x);+}++template<class ToType, class FromType>+ToType& to_nonconstref(FromType& x) {+  return reinterpret_cast<ToType&>(x);+}+++#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)++#define TYPECASTMETHOD(cname,mname,oname) \+  IIF( CHECKPROTECT(cname,mname) ) ( \+  (to_nonconst<oname,cname ## _t>), \+  (to_nonconst<cname,cname ## _t>) )+++TH1_DEF_VIRT(TH1I)+TARRAYI_DEF_VIRT(TH1I)+TOBJECT_DEF_VIRT(TH1I)+TATTLINE_DEF_VIRT(TH1I)+TATTFILL_DEF_VIRT(TH1I)+TATTMARKER_DEF_VIRT(TH1I)+DELETABLE_DEF_VIRT(TH1I)+TARRAY_DEF_VIRT(TH1I)++TH1I_DEF_VIRT(TH1I)++TH1I_DEF_NONVIRT(TH1I)++
+ csrc/HROOTHistTH1I.h view
@@ -0,0 +1,56 @@+#ifdef __cplusplus+extern "C" { +#endif ++#ifndef __HROOT_HIST__TH1I__+#define __HROOT_HIST__TH1I__++#include "HROOT-histType.h"++#include "HROOTHistTH1.h"+#include "HROOTCoreTArrayI.h"+#include "HROOTCoreTObject.h"+#include "HROOTCoreTAttLine.h"+#include "HROOTCoreTAttFill.h"+#include "HROOTCoreTAttMarker.h"+#include "HROOTCoreDeletable.h"+#include "HROOTCoreTArray.h"+#include "HROOT-coreType.h"++#undef TH1I_DECL_VIRT+#define TH1I_DECL_VIRT(Type) \+++#undef TH1I_DECL_NONVIRT+#define TH1I_DECL_NONVIRT(Type) \+++#undef TH1I_DEF_VIRT+#define TH1I_DEF_VIRT(Type)\+++#undef TH1I_DEF_NONVIRT+#define TH1I_DEF_NONVIRT(Type)\+++TH1_DECL_VIRT(TH1I);+TARRAYI_DECL_VIRT(TH1I);+TOBJECT_DECL_VIRT(TH1I);+TATTLINE_DECL_VIRT(TH1I);+TATTFILL_DECL_VIRT(TH1I);+TATTMARKER_DECL_VIRT(TH1I);+DELETABLE_DECL_VIRT(TH1I);+TARRAY_DECL_VIRT(TH1I);+++TH1I_DECL_VIRT(TH1I);+++TH1I_DECL_NONVIRT(TH1I);+++#endif // __HROOT_HIST__TH1I__++#ifdef __cplusplus+}+#endif
+ csrc/HROOTHistTH1K.cpp view
@@ -0,0 +1,53 @@+#include <MacroPatternMatch.h>++#include "HROOTHistTH1.h"+#include "HROOTCoreTArrayF.h"+#include "TH1K.h"+#include "HROOTHistTH1K.h"++using namespace std;+++template<class ToType, class FromType>+const ToType* to_const(const FromType* x) {+  return reinterpret_cast<const ToType*>(x);+}++template<class ToType, class FromType>+ToType* to_nonconst(FromType* x) {+  return reinterpret_cast<ToType*>(x);+}++template<class ToType, class FromType>+const ToType& to_constref(const FromType& x) {+  return reinterpret_cast<const ToType&>(x);+}++template<class ToType, class FromType>+ToType& to_nonconstref(FromType& x) {+  return reinterpret_cast<ToType&>(x);+}+++#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)++#define TYPECASTMETHOD(cname,mname,oname) \+  IIF( CHECKPROTECT(cname,mname) ) ( \+  (to_nonconst<oname,cname ## _t>), \+  (to_nonconst<cname,cname ## _t>) )+++TH1_DEF_VIRT(TH1K)+TARRAYF_DEF_VIRT(TH1K)+TOBJECT_DEF_VIRT(TH1K)+TATTLINE_DEF_VIRT(TH1K)+TATTFILL_DEF_VIRT(TH1K)+TATTMARKER_DEF_VIRT(TH1K)+DELETABLE_DEF_VIRT(TH1K)+TARRAY_DEF_VIRT(TH1K)++TH1K_DEF_VIRT(TH1K)++TH1K_DEF_NONVIRT(TH1K)++
+ csrc/HROOTHistTH1K.h view
@@ -0,0 +1,56 @@+#ifdef __cplusplus+extern "C" { +#endif ++#ifndef __HROOT_HIST__TH1K__+#define __HROOT_HIST__TH1K__++#include "HROOT-histType.h"++#include "HROOTHistTH1.h"+#include "HROOTCoreTArrayF.h"+#include "HROOTCoreTObject.h"+#include "HROOTCoreTAttLine.h"+#include "HROOTCoreTAttFill.h"+#include "HROOTCoreTAttMarker.h"+#include "HROOTCoreDeletable.h"+#include "HROOTCoreTArray.h"+#include "HROOT-coreType.h"++#undef TH1K_DECL_VIRT+#define TH1K_DECL_VIRT(Type) \+++#undef TH1K_DECL_NONVIRT+#define TH1K_DECL_NONVIRT(Type) \+++#undef TH1K_DEF_VIRT+#define TH1K_DEF_VIRT(Type)\+++#undef TH1K_DEF_NONVIRT+#define TH1K_DEF_NONVIRT(Type)\+++TH1_DECL_VIRT(TH1K);+TARRAYF_DECL_VIRT(TH1K);+TOBJECT_DECL_VIRT(TH1K);+TATTLINE_DECL_VIRT(TH1K);+TATTFILL_DECL_VIRT(TH1K);+TATTMARKER_DECL_VIRT(TH1K);+DELETABLE_DECL_VIRT(TH1K);+TARRAY_DECL_VIRT(TH1K);+++TH1K_DECL_VIRT(TH1K);+++TH1K_DECL_NONVIRT(TH1K);+++#endif // __HROOT_HIST__TH1K__++#ifdef __cplusplus+}+#endif
+ csrc/HROOTHistTH1S.cpp view
@@ -0,0 +1,53 @@+#include <MacroPatternMatch.h>++#include "HROOTHistTH1.h"+#include "HROOTCoreTArrayS.h"+#include "TH1S.h"+#include "HROOTHistTH1S.h"++using namespace std;+++template<class ToType, class FromType>+const ToType* to_const(const FromType* x) {+  return reinterpret_cast<const ToType*>(x);+}++template<class ToType, class FromType>+ToType* to_nonconst(FromType* x) {+  return reinterpret_cast<ToType*>(x);+}++template<class ToType, class FromType>+const ToType& to_constref(const FromType& x) {+  return reinterpret_cast<const ToType&>(x);+}++template<class ToType, class FromType>+ToType& to_nonconstref(FromType& x) {+  return reinterpret_cast<ToType&>(x);+}+++#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)++#define TYPECASTMETHOD(cname,mname,oname) \+  IIF( CHECKPROTECT(cname,mname) ) ( \+  (to_nonconst<oname,cname ## _t>), \+  (to_nonconst<cname,cname ## _t>) )+++TH1_DEF_VIRT(TH1S)+TARRAYS_DEF_VIRT(TH1S)+TOBJECT_DEF_VIRT(TH1S)+TATTLINE_DEF_VIRT(TH1S)+TATTFILL_DEF_VIRT(TH1S)+TATTMARKER_DEF_VIRT(TH1S)+DELETABLE_DEF_VIRT(TH1S)+TARRAY_DEF_VIRT(TH1S)++TH1S_DEF_VIRT(TH1S)++TH1S_DEF_NONVIRT(TH1S)++
+ csrc/HROOTHistTH1S.h view
@@ -0,0 +1,56 @@+#ifdef __cplusplus+extern "C" { +#endif ++#ifndef __HROOT_HIST__TH1S__+#define __HROOT_HIST__TH1S__++#include "HROOT-histType.h"++#include "HROOTHistTH1.h"+#include "HROOTCoreTArrayS.h"+#include "HROOTCoreTObject.h"+#include "HROOTCoreTAttLine.h"+#include "HROOTCoreTAttFill.h"+#include "HROOTCoreTAttMarker.h"+#include "HROOTCoreDeletable.h"+#include "HROOTCoreTArray.h"+#include "HROOT-coreType.h"++#undef TH1S_DECL_VIRT+#define TH1S_DECL_VIRT(Type) \+++#undef TH1S_DECL_NONVIRT+#define TH1S_DECL_NONVIRT(Type) \+++#undef TH1S_DEF_VIRT+#define TH1S_DEF_VIRT(Type)\+++#undef TH1S_DEF_NONVIRT+#define TH1S_DEF_NONVIRT(Type)\+++TH1_DECL_VIRT(TH1S);+TARRAYS_DECL_VIRT(TH1S);+TOBJECT_DECL_VIRT(TH1S);+TATTLINE_DECL_VIRT(TH1S);+TATTFILL_DECL_VIRT(TH1S);+TATTMARKER_DECL_VIRT(TH1S);+DELETABLE_DECL_VIRT(TH1S);+TARRAY_DECL_VIRT(TH1S);+++TH1S_DECL_VIRT(TH1S);+++TH1S_DECL_NONVIRT(TH1S);+++#endif // __HROOT_HIST__TH1S__++#ifdef __cplusplus+}+#endif
+ csrc/HROOTHistTH2.cpp view
@@ -0,0 +1,54 @@+#include <MacroPatternMatch.h>++#include "HROOTHistTH1D.h"+#include "HROOTHistTH1.h"+#include "HROOTHistTF1.h"+#include "HROOTCoreTObjArray.h"+#include "TH2.h"+#include "HROOTHistTH2.h"++using namespace std;+++template<class ToType, class FromType>+const ToType* to_const(const FromType* x) {+  return reinterpret_cast<const ToType*>(x);+}++template<class ToType, class FromType>+ToType* to_nonconst(FromType* x) {+  return reinterpret_cast<ToType*>(x);+}++template<class ToType, class FromType>+const ToType& to_constref(const FromType& x) {+  return reinterpret_cast<const ToType&>(x);+}++template<class ToType, class FromType>+ToType& to_nonconstref(FromType& x) {+  return reinterpret_cast<ToType&>(x);+}+++#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)++#define TYPECASTMETHOD(cname,mname,oname) \+  IIF( CHECKPROTECT(cname,mname) ) ( \+  (to_nonconst<oname,cname ## _t>), \+  (to_nonconst<cname,cname ## _t>) )++#define IS_TH2_fill1_PROTECTED ()++TH1_DEF_VIRT(TH2)+TOBJECT_DEF_VIRT(TH2)+TATTLINE_DEF_VIRT(TH2)+TATTFILL_DEF_VIRT(TH2)+TATTMARKER_DEF_VIRT(TH2)+DELETABLE_DEF_VIRT(TH2)++TH2_DEF_VIRT(TH2)++TH2_DEF_NONVIRT(TH2)++
+ csrc/HROOTHistTH2.h view
@@ -0,0 +1,138 @@+#ifdef __cplusplus+extern "C" { +#endif ++#ifndef __HROOT_HIST__TH2__+#define __HROOT_HIST__TH2__++#include "HROOT-histType.h"++#include "HROOTHistTH1.h"+#include "HROOTCoreTObject.h"+#include "HROOTCoreTAttLine.h"+#include "HROOTCoreTAttFill.h"+#include "HROOTCoreTAttMarker.h"+#include "HROOTCoreDeletable.h"+#include "HROOT-coreType.h"++#undef TH2_DECL_VIRT+#define TH2_DECL_VIRT(Type) \+int Type ## _fill2 ( Type ## _p p, double x, double y ); \+int Type ## _fill2w ( Type ## _p p, double x, double y, double w ); \+void Type ## _fillN2 ( Type ## _p p, int ntimes, double * x, double * y, double * w, int stride ); \+void Type ## _fillRandom2 ( Type ## _p p, TH1_p h, int ntimes ); \+int Type ## _findFirstBinAbove2 ( Type ## _p p, double threshold, int axis ); \+int Type ## _findLastBinAbove2 ( Type ## _p p, double threshold, int axis ); \+void Type ## _FitSlicesX ( Type ## _p p, TF1_p f1, int firstybin, int lastybin, int cut, const char* option, TObjArray_p arr ); \+void Type ## _FitSlicesY ( Type ## _p p, TF1_p f1, int firstxbin, int lastxbin, int cut, const char* option, TObjArray_p arr ); \+double Type ## _getCorrelationFactor2 ( Type ## _p p, int axis1, int axis2 ); \+double Type ## _getCovariance2 ( Type ## _p p, int axis1, int axis2 ); \+double Type ## _integral2 ( Type ## _p p, int binx1, int binx2, int biny1, int biny2, const char* option ); \+TH2_p Type ## _rebinX2 ( Type ## _p p, int ngroup, const char* newname ); \+TH2_p Type ## _rebinY2 ( Type ## _p p, int ngroup, const char* newname ); \+TH2_p Type ## _Rebin2D ( Type ## _p p, int nxgroup, int nygroup, const char* newname ); \+void Type ## _SetShowProjectionX ( Type ## _p p, int nbins ); \+void Type ## _SetShowProjectionY ( Type ## _p p, int nbins )++#undef TH2_DECL_NONVIRT+#define TH2_DECL_NONVIRT(Type) \+TH1D_p Type ## _tH2ProjectionX ( Type ## _p p, const char* name, int firstybin, int lastybin, const char* option ); \+TH1D_p Type ## _tH2ProjectionY ( Type ## _p p, const char* name, int firstxbin, int lastxbin, const char* option )++#undef TH2_DEF_VIRT+#define TH2_DEF_VIRT(Type)\+int Type ## _fill2 ( Type ## _p p, double x, double y )\+{\+return TYPECASTMETHOD(Type,fill2,TH2)(p)->Fill(x, y);\+}\+int Type ## _fill2w ( Type ## _p p, double x, double y, double w )\+{\+return TYPECASTMETHOD(Type,fill2w,TH2)(p)->Fill(x, y, w);\+}\+void Type ## _fillN2 ( Type ## _p p, int ntimes, double * x, double * y, double * w, int stride )\+{\+TYPECASTMETHOD(Type,fillN2,TH2)(p)->FillN(ntimes, x, y, w, stride);\+}\+void Type ## _fillRandom2 ( Type ## _p p, TH1_p h, int ntimes )\+{\+TYPECASTMETHOD(Type,fillRandom2,TH2)(p)->FillRandom(to_nonconst<TH1,TH1_t>(h), ntimes);\+}\+int Type ## _findFirstBinAbove2 ( Type ## _p p, double threshold, int axis )\+{\+return TYPECASTMETHOD(Type,findFirstBinAbove2,TH2)(p)->FindFirstBinAbove(threshold, axis);\+}\+int Type ## _findLastBinAbove2 ( Type ## _p p, double threshold, int axis )\+{\+return TYPECASTMETHOD(Type,findLastBinAbove2,TH2)(p)->FindLastBinAbove(threshold, axis);\+}\+void Type ## _FitSlicesX ( Type ## _p p, TF1_p f1, int firstybin, int lastybin, int cut, const char* option, TObjArray_p arr )\+{\+TYPECASTMETHOD(Type,FitSlicesX,TH2)(p)->FitSlicesX(to_nonconst<TF1,TF1_t>(f1), firstybin, lastybin, cut, option, to_nonconst<TObjArray,TObjArray_t>(arr));\+}\+void Type ## _FitSlicesY ( Type ## _p p, TF1_p f1, int firstxbin, int lastxbin, int cut, const char* option, TObjArray_p arr )\+{\+TYPECASTMETHOD(Type,FitSlicesY,TH2)(p)->FitSlicesY(to_nonconst<TF1,TF1_t>(f1), firstxbin, lastxbin, cut, option, to_nonconst<TObjArray,TObjArray_t>(arr));\+}\+double Type ## _getCorrelationFactor2 ( Type ## _p p, int axis1, int axis2 )\+{\+return TYPECASTMETHOD(Type,getCorrelationFactor2,TH2)(p)->GetCorrelationFactor(axis1, axis2);\+}\+double Type ## _getCovariance2 ( Type ## _p p, int axis1, int axis2 )\+{\+return TYPECASTMETHOD(Type,getCovariance2,TH2)(p)->GetCovariance(axis1, axis2);\+}\+double Type ## _integral2 ( Type ## _p p, int binx1, int binx2, int biny1, int biny2, const char* option )\+{\+return TYPECASTMETHOD(Type,integral2,TH2)(p)->Integral(binx1, binx2, biny1, biny2, option);\+}\+TH2_p Type ## _rebinX2 ( Type ## _p p, int ngroup, const char* newname )\+{\+return to_nonconst<TH2_t,TH2>((TH2*)TYPECASTMETHOD(Type,rebinX2,TH2)(p)->RebinX(ngroup, newname));\+}\+TH2_p Type ## _rebinY2 ( Type ## _p p, int ngroup, const char* newname )\+{\+return to_nonconst<TH2_t,TH2>((TH2*)TYPECASTMETHOD(Type,rebinY2,TH2)(p)->RebinY(ngroup, newname));\+}\+TH2_p Type ## _Rebin2D ( Type ## _p p, int nxgroup, int nygroup, const char* newname )\+{\+return to_nonconst<TH2_t,TH2>((TH2*)TYPECASTMETHOD(Type,Rebin2D,TH2)(p)->Rebin2D(nxgroup, nygroup, newname));\+}\+void Type ## _SetShowProjectionX ( Type ## _p p, int nbins )\+{\+TYPECASTMETHOD(Type,SetShowProjectionX,TH2)(p)->SetShowProjectionX(nbins);\+}\+void Type ## _SetShowProjectionY ( Type ## _p p, int nbins )\+{\+TYPECASTMETHOD(Type,SetShowProjectionY,TH2)(p)->SetShowProjectionY(nbins);\+}++#undef TH2_DEF_NONVIRT+#define TH2_DEF_NONVIRT(Type)\+TH1D_p Type ## _tH2ProjectionX ( Type ## _p p, const char* name, int firstybin, int lastybin, const char* option )\+{\+return to_nonconst<TH1D_t,TH1D>((TH1D*)TYPECASTMETHOD(Type,tH2ProjectionX,TH2)(p)->ProjectionX(name, firstybin, lastybin, option));\+}\+TH1D_p Type ## _tH2ProjectionY ( Type ## _p p, const char* name, int firstxbin, int lastxbin, const char* option )\+{\+return to_nonconst<TH1D_t,TH1D>((TH1D*)TYPECASTMETHOD(Type,tH2ProjectionY,TH2)(p)->ProjectionY(name, firstxbin, lastxbin, option));\+}++TH1_DECL_VIRT(TH2);+TOBJECT_DECL_VIRT(TH2);+TATTLINE_DECL_VIRT(TH2);+TATTFILL_DECL_VIRT(TH2);+TATTMARKER_DECL_VIRT(TH2);+DELETABLE_DECL_VIRT(TH2);+++TH2_DECL_VIRT(TH2);+++TH2_DECL_NONVIRT(TH2);+++#endif // __HROOT_HIST__TH2__++#ifdef __cplusplus+}+#endif
+ csrc/HROOTHistTH2C.cpp view
@@ -0,0 +1,55 @@+#include <MacroPatternMatch.h>++#include "HROOTHistTH2.h"+#include "HROOTCoreTArrayC.h"+#include "TH2C.h"+#include "HROOTHistTH2C.h"++using namespace std;+++template<class ToType, class FromType>+const ToType* to_const(const FromType* x) {+  return reinterpret_cast<const ToType*>(x);+}++template<class ToType, class FromType>+ToType* to_nonconst(FromType* x) {+  return reinterpret_cast<ToType*>(x);+}++template<class ToType, class FromType>+const ToType& to_constref(const FromType& x) {+  return reinterpret_cast<const ToType&>(x);+}++template<class ToType, class FromType>+ToType& to_nonconstref(FromType& x) {+  return reinterpret_cast<ToType&>(x);+}+++#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)++#define TYPECASTMETHOD(cname,mname,oname) \+  IIF( CHECKPROTECT(cname,mname) ) ( \+  (to_nonconst<oname,cname ## _t>), \+  (to_nonconst<cname,cname ## _t>) )++#define IS_TH2C_fill1_PROTECTED ()++TH2_DEF_VIRT(TH2C)+TARRAYC_DEF_VIRT(TH2C)+TH1_DEF_VIRT(TH2C)+TOBJECT_DEF_VIRT(TH2C)+TATTLINE_DEF_VIRT(TH2C)+TATTFILL_DEF_VIRT(TH2C)+TATTMARKER_DEF_VIRT(TH2C)+DELETABLE_DEF_VIRT(TH2C)+TARRAY_DEF_VIRT(TH2C)++TH2C_DEF_VIRT(TH2C)++TH2C_DEF_NONVIRT(TH2C)++
+ csrc/HROOTHistTH2C.h view
@@ -0,0 +1,58 @@+#ifdef __cplusplus+extern "C" { +#endif ++#ifndef __HROOT_HIST__TH2C__+#define __HROOT_HIST__TH2C__++#include "HROOT-histType.h"++#include "HROOTHistTH2.h"+#include "HROOTCoreTArrayC.h"+#include "HROOTHistTH1.h"+#include "HROOTCoreTObject.h"+#include "HROOTCoreTAttLine.h"+#include "HROOTCoreTAttFill.h"+#include "HROOTCoreTAttMarker.h"+#include "HROOTCoreDeletable.h"+#include "HROOTCoreTArray.h"+#include "HROOT-coreType.h"++#undef TH2C_DECL_VIRT+#define TH2C_DECL_VIRT(Type) \+++#undef TH2C_DECL_NONVIRT+#define TH2C_DECL_NONVIRT(Type) \+++#undef TH2C_DEF_VIRT+#define TH2C_DEF_VIRT(Type)\+++#undef TH2C_DEF_NONVIRT+#define TH2C_DEF_NONVIRT(Type)\+++TH2_DECL_VIRT(TH2C);+TARRAYC_DECL_VIRT(TH2C);+TH1_DECL_VIRT(TH2C);+TOBJECT_DECL_VIRT(TH2C);+TATTLINE_DECL_VIRT(TH2C);+TATTFILL_DECL_VIRT(TH2C);+TATTMARKER_DECL_VIRT(TH2C);+DELETABLE_DECL_VIRT(TH2C);+TARRAY_DECL_VIRT(TH2C);+++TH2C_DECL_VIRT(TH2C);+++TH2C_DECL_NONVIRT(TH2C);+++#endif // __HROOT_HIST__TH2C__++#ifdef __cplusplus+}+#endif
+ csrc/HROOTHistTH2D.cpp view
@@ -0,0 +1,55 @@+#include <MacroPatternMatch.h>++#include "HROOTHistTH2.h"+#include "HROOTCoreTArrayD.h"+#include "TH2D.h"+#include "HROOTHistTH2D.h"++using namespace std;+++template<class ToType, class FromType>+const ToType* to_const(const FromType* x) {+  return reinterpret_cast<const ToType*>(x);+}++template<class ToType, class FromType>+ToType* to_nonconst(FromType* x) {+  return reinterpret_cast<ToType*>(x);+}++template<class ToType, class FromType>+const ToType& to_constref(const FromType& x) {+  return reinterpret_cast<const ToType&>(x);+}++template<class ToType, class FromType>+ToType& to_nonconstref(FromType& x) {+  return reinterpret_cast<ToType&>(x);+}+++#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)++#define TYPECASTMETHOD(cname,mname,oname) \+  IIF( CHECKPROTECT(cname,mname) ) ( \+  (to_nonconst<oname,cname ## _t>), \+  (to_nonconst<cname,cname ## _t>) )++#define IS_TH2D_fill1_PROTECTED ()++TH2_DEF_VIRT(TH2D)+TARRAYD_DEF_VIRT(TH2D)+TH1_DEF_VIRT(TH2D)+TOBJECT_DEF_VIRT(TH2D)+TATTLINE_DEF_VIRT(TH2D)+TATTFILL_DEF_VIRT(TH2D)+TATTMARKER_DEF_VIRT(TH2D)+DELETABLE_DEF_VIRT(TH2D)+TARRAY_DEF_VIRT(TH2D)++TH2D_DEF_VIRT(TH2D)++TH2D_DEF_NONVIRT(TH2D)++
+ csrc/HROOTHistTH2D.h view
@@ -0,0 +1,62 @@+#ifdef __cplusplus+extern "C" { +#endif ++#ifndef __HROOT_HIST__TH2D__+#define __HROOT_HIST__TH2D__++#include "HROOT-histType.h"++#include "HROOTHistTH2.h"+#include "HROOTCoreTArrayD.h"+#include "HROOTHistTH1.h"+#include "HROOTCoreTObject.h"+#include "HROOTCoreTAttLine.h"+#include "HROOTCoreTAttFill.h"+#include "HROOTCoreTAttMarker.h"+#include "HROOTCoreDeletable.h"+#include "HROOTCoreTArray.h"+#include "HROOT-coreType.h"++#undef TH2D_DECL_VIRT+#define TH2D_DECL_VIRT(Type) \+++#undef TH2D_DECL_NONVIRT+#define TH2D_DECL_NONVIRT(Type) \+Type ## _p Type ## _newTH2D ( const char* name, const char* title, int nbinsx, double xlow, double xup, int nbinsy, double ylow, double yup )++#undef TH2D_DEF_VIRT+#define TH2D_DEF_VIRT(Type)\+++#undef TH2D_DEF_NONVIRT+#define TH2D_DEF_NONVIRT(Type)\+Type ## _p Type ## _newTH2D ( const char* name, const char* title, int nbinsx, double xlow, double xup, int nbinsy, double ylow, double yup )\+{\+Type * newp = new Type (name, title, nbinsx, xlow, xup, nbinsy, ylow, yup); \+return to_nonconst<Type ## _t, Type >(newp);\+}++TH2_DECL_VIRT(TH2D);+TARRAYD_DECL_VIRT(TH2D);+TH1_DECL_VIRT(TH2D);+TOBJECT_DECL_VIRT(TH2D);+TATTLINE_DECL_VIRT(TH2D);+TATTFILL_DECL_VIRT(TH2D);+TATTMARKER_DECL_VIRT(TH2D);+DELETABLE_DECL_VIRT(TH2D);+TARRAY_DECL_VIRT(TH2D);+++TH2D_DECL_VIRT(TH2D);+++TH2D_DECL_NONVIRT(TH2D);+++#endif // __HROOT_HIST__TH2D__++#ifdef __cplusplus+}+#endif
+ csrc/HROOTHistTH2F.cpp view
@@ -0,0 +1,55 @@+#include <MacroPatternMatch.h>++#include "HROOTHistTH2.h"+#include "HROOTCoreTArrayF.h"+#include "TH2F.h"+#include "HROOTHistTH2F.h"++using namespace std;+++template<class ToType, class FromType>+const ToType* to_const(const FromType* x) {+  return reinterpret_cast<const ToType*>(x);+}++template<class ToType, class FromType>+ToType* to_nonconst(FromType* x) {+  return reinterpret_cast<ToType*>(x);+}++template<class ToType, class FromType>+const ToType& to_constref(const FromType& x) {+  return reinterpret_cast<const ToType&>(x);+}++template<class ToType, class FromType>+ToType& to_nonconstref(FromType& x) {+  return reinterpret_cast<ToType&>(x);+}+++#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)++#define TYPECASTMETHOD(cname,mname,oname) \+  IIF( CHECKPROTECT(cname,mname) ) ( \+  (to_nonconst<oname,cname ## _t>), \+  (to_nonconst<cname,cname ## _t>) )++#define IS_TH2F_fill1_PROTECTED ()++TH2_DEF_VIRT(TH2F)+TARRAYF_DEF_VIRT(TH2F)+TH1_DEF_VIRT(TH2F)+TOBJECT_DEF_VIRT(TH2F)+TATTLINE_DEF_VIRT(TH2F)+TATTFILL_DEF_VIRT(TH2F)+TATTMARKER_DEF_VIRT(TH2F)+DELETABLE_DEF_VIRT(TH2F)+TARRAY_DEF_VIRT(TH2F)++TH2F_DEF_VIRT(TH2F)++TH2F_DEF_NONVIRT(TH2F)++
+ csrc/HROOTHistTH2F.h view
@@ -0,0 +1,62 @@+#ifdef __cplusplus+extern "C" { +#endif ++#ifndef __HROOT_HIST__TH2F__+#define __HROOT_HIST__TH2F__++#include "HROOT-histType.h"++#include "HROOTHistTH2.h"+#include "HROOTCoreTArrayF.h"+#include "HROOTHistTH1.h"+#include "HROOTCoreTObject.h"+#include "HROOTCoreTAttLine.h"+#include "HROOTCoreTAttFill.h"+#include "HROOTCoreTAttMarker.h"+#include "HROOTCoreDeletable.h"+#include "HROOTCoreTArray.h"+#include "HROOT-coreType.h"++#undef TH2F_DECL_VIRT+#define TH2F_DECL_VIRT(Type) \+++#undef TH2F_DECL_NONVIRT+#define TH2F_DECL_NONVIRT(Type) \+Type ## _p Type ## _newTH2F ( const char* name, const char* title, int nbinsx, double xlow, double xup, int nbinsy, double ylow, double yup )++#undef TH2F_DEF_VIRT+#define TH2F_DEF_VIRT(Type)\+++#undef TH2F_DEF_NONVIRT+#define TH2F_DEF_NONVIRT(Type)\+Type ## _p Type ## _newTH2F ( const char* name, const char* title, int nbinsx, double xlow, double xup, int nbinsy, double ylow, double yup )\+{\+Type * newp = new Type (name, title, nbinsx, xlow, xup, nbinsy, ylow, yup); \+return to_nonconst<Type ## _t, Type >(newp);\+}++TH2_DECL_VIRT(TH2F);+TARRAYF_DECL_VIRT(TH2F);+TH1_DECL_VIRT(TH2F);+TOBJECT_DECL_VIRT(TH2F);+TATTLINE_DECL_VIRT(TH2F);+TATTFILL_DECL_VIRT(TH2F);+TATTMARKER_DECL_VIRT(TH2F);+DELETABLE_DECL_VIRT(TH2F);+TARRAY_DECL_VIRT(TH2F);+++TH2F_DECL_VIRT(TH2F);+++TH2F_DECL_NONVIRT(TH2F);+++#endif // __HROOT_HIST__TH2F__++#ifdef __cplusplus+}+#endif
+ csrc/HROOTHistTH2I.cpp view
@@ -0,0 +1,55 @@+#include <MacroPatternMatch.h>++#include "HROOTHistTH2.h"+#include "HROOTCoreTArrayI.h"+#include "TH2I.h"+#include "HROOTHistTH2I.h"++using namespace std;+++template<class ToType, class FromType>+const ToType* to_const(const FromType* x) {+  return reinterpret_cast<const ToType*>(x);+}++template<class ToType, class FromType>+ToType* to_nonconst(FromType* x) {+  return reinterpret_cast<ToType*>(x);+}++template<class ToType, class FromType>+const ToType& to_constref(const FromType& x) {+  return reinterpret_cast<const ToType&>(x);+}++template<class ToType, class FromType>+ToType& to_nonconstref(FromType& x) {+  return reinterpret_cast<ToType&>(x);+}+++#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)++#define TYPECASTMETHOD(cname,mname,oname) \+  IIF( CHECKPROTECT(cname,mname) ) ( \+  (to_nonconst<oname,cname ## _t>), \+  (to_nonconst<cname,cname ## _t>) )++#define IS_TH2I_fill1_PROTECTED ()++TH2_DEF_VIRT(TH2I)+TARRAYI_DEF_VIRT(TH2I)+TH1_DEF_VIRT(TH2I)+TOBJECT_DEF_VIRT(TH2I)+TATTLINE_DEF_VIRT(TH2I)+TATTFILL_DEF_VIRT(TH2I)+TATTMARKER_DEF_VIRT(TH2I)+DELETABLE_DEF_VIRT(TH2I)+TARRAY_DEF_VIRT(TH2I)++TH2I_DEF_VIRT(TH2I)++TH2I_DEF_NONVIRT(TH2I)++
+ csrc/HROOTHistTH2I.h view
@@ -0,0 +1,58 @@+#ifdef __cplusplus+extern "C" { +#endif ++#ifndef __HROOT_HIST__TH2I__+#define __HROOT_HIST__TH2I__++#include "HROOT-histType.h"++#include "HROOTHistTH2.h"+#include "HROOTCoreTArrayI.h"+#include "HROOTHistTH1.h"+#include "HROOTCoreTObject.h"+#include "HROOTCoreTAttLine.h"+#include "HROOTCoreTAttFill.h"+#include "HROOTCoreTAttMarker.h"+#include "HROOTCoreDeletable.h"+#include "HROOTCoreTArray.h"+#include "HROOT-coreType.h"++#undef TH2I_DECL_VIRT+#define TH2I_DECL_VIRT(Type) \+++#undef TH2I_DECL_NONVIRT+#define TH2I_DECL_NONVIRT(Type) \+++#undef TH2I_DEF_VIRT+#define TH2I_DEF_VIRT(Type)\+++#undef TH2I_DEF_NONVIRT+#define TH2I_DEF_NONVIRT(Type)\+++TH2_DECL_VIRT(TH2I);+TARRAYI_DECL_VIRT(TH2I);+TH1_DECL_VIRT(TH2I);+TOBJECT_DECL_VIRT(TH2I);+TATTLINE_DECL_VIRT(TH2I);+TATTFILL_DECL_VIRT(TH2I);+TATTMARKER_DECL_VIRT(TH2I);+DELETABLE_DECL_VIRT(TH2I);+TARRAY_DECL_VIRT(TH2I);+++TH2I_DECL_VIRT(TH2I);+++TH2I_DECL_NONVIRT(TH2I);+++#endif // __HROOT_HIST__TH2I__++#ifdef __cplusplus+}+#endif
+ csrc/HROOTHistTH2Poly.cpp view
@@ -0,0 +1,52 @@+#include <MacroPatternMatch.h>++#include "HROOTHistTH2.h"+#include "TH2Poly.h"+#include "HROOTHistTH2Poly.h"++using namespace std;+++template<class ToType, class FromType>+const ToType* to_const(const FromType* x) {+  return reinterpret_cast<const ToType*>(x);+}++template<class ToType, class FromType>+ToType* to_nonconst(FromType* x) {+  return reinterpret_cast<ToType*>(x);+}++template<class ToType, class FromType>+const ToType& to_constref(const FromType& x) {+  return reinterpret_cast<const ToType&>(x);+}++template<class ToType, class FromType>+ToType& to_nonconstref(FromType& x) {+  return reinterpret_cast<ToType&>(x);+}+++#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)++#define TYPECASTMETHOD(cname,mname,oname) \+  IIF( CHECKPROTECT(cname,mname) ) ( \+  (to_nonconst<oname,cname ## _t>), \+  (to_nonconst<cname,cname ## _t>) )++#define IS_TH2Poly_fill1_PROTECTED ()++TH2_DEF_VIRT(TH2Poly)+TH1_DEF_VIRT(TH2Poly)+TOBJECT_DEF_VIRT(TH2Poly)+TATTLINE_DEF_VIRT(TH2Poly)+TATTFILL_DEF_VIRT(TH2Poly)+TATTMARKER_DEF_VIRT(TH2Poly)+DELETABLE_DEF_VIRT(TH2Poly)++TH2POLY_DEF_VIRT(TH2Poly)++TH2POLY_DEF_NONVIRT(TH2Poly)++
+ csrc/HROOTHistTH2Poly.h view
@@ -0,0 +1,53 @@+#ifdef __cplusplus+extern "C" { +#endif ++#ifndef __HROOT_HIST__TH2Poly__+#define __HROOT_HIST__TH2Poly__++#include "HROOT-histType.h"++#include "HROOTHistTH2.h"+#include "HROOTHistTH1.h"+#include "HROOTCoreTObject.h"+#include "HROOTCoreTAttLine.h"+#include "HROOTCoreTAttFill.h"+#include "HROOTCoreTAttMarker.h"+#include "HROOTCoreDeletable.h"++#undef TH2POLY_DECL_VIRT+#define TH2POLY_DECL_VIRT(Type) \+++#undef TH2POLY_DECL_NONVIRT+#define TH2POLY_DECL_NONVIRT(Type) \+++#undef TH2POLY_DEF_VIRT+#define TH2POLY_DEF_VIRT(Type)\+++#undef TH2POLY_DEF_NONVIRT+#define TH2POLY_DEF_NONVIRT(Type)\+++TH2_DECL_VIRT(TH2Poly);+TH1_DECL_VIRT(TH2Poly);+TOBJECT_DECL_VIRT(TH2Poly);+TATTLINE_DECL_VIRT(TH2Poly);+TATTFILL_DECL_VIRT(TH2Poly);+TATTMARKER_DECL_VIRT(TH2Poly);+DELETABLE_DECL_VIRT(TH2Poly);+++TH2POLY_DECL_VIRT(TH2Poly);+++TH2POLY_DECL_NONVIRT(TH2Poly);+++#endif // __HROOT_HIST__TH2Poly__++#ifdef __cplusplus+}+#endif
+ csrc/HROOTHistTH2S.cpp view
@@ -0,0 +1,55 @@+#include <MacroPatternMatch.h>++#include "HROOTHistTH2.h"+#include "HROOTCoreTArrayS.h"+#include "TH2S.h"+#include "HROOTHistTH2S.h"++using namespace std;+++template<class ToType, class FromType>+const ToType* to_const(const FromType* x) {+  return reinterpret_cast<const ToType*>(x);+}++template<class ToType, class FromType>+ToType* to_nonconst(FromType* x) {+  return reinterpret_cast<ToType*>(x);+}++template<class ToType, class FromType>+const ToType& to_constref(const FromType& x) {+  return reinterpret_cast<const ToType&>(x);+}++template<class ToType, class FromType>+ToType& to_nonconstref(FromType& x) {+  return reinterpret_cast<ToType&>(x);+}+++#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)++#define TYPECASTMETHOD(cname,mname,oname) \+  IIF( CHECKPROTECT(cname,mname) ) ( \+  (to_nonconst<oname,cname ## _t>), \+  (to_nonconst<cname,cname ## _t>) )++#define IS_TH2S_fill1_PROTECTED ()++TH2_DEF_VIRT(TH2S)+TARRAYS_DEF_VIRT(TH2S)+TH1_DEF_VIRT(TH2S)+TOBJECT_DEF_VIRT(TH2S)+TATTLINE_DEF_VIRT(TH2S)+TATTFILL_DEF_VIRT(TH2S)+TATTMARKER_DEF_VIRT(TH2S)+DELETABLE_DEF_VIRT(TH2S)+TARRAY_DEF_VIRT(TH2S)++TH2S_DEF_VIRT(TH2S)++TH2S_DEF_NONVIRT(TH2S)++
+ csrc/HROOTHistTH2S.h view
@@ -0,0 +1,58 @@+#ifdef __cplusplus+extern "C" { +#endif ++#ifndef __HROOT_HIST__TH2S__+#define __HROOT_HIST__TH2S__++#include "HROOT-histType.h"++#include "HROOTHistTH2.h"+#include "HROOTCoreTArrayS.h"+#include "HROOTHistTH1.h"+#include "HROOTCoreTObject.h"+#include "HROOTCoreTAttLine.h"+#include "HROOTCoreTAttFill.h"+#include "HROOTCoreTAttMarker.h"+#include "HROOTCoreDeletable.h"+#include "HROOTCoreTArray.h"+#include "HROOT-coreType.h"++#undef TH2S_DECL_VIRT+#define TH2S_DECL_VIRT(Type) \+++#undef TH2S_DECL_NONVIRT+#define TH2S_DECL_NONVIRT(Type) \+++#undef TH2S_DEF_VIRT+#define TH2S_DEF_VIRT(Type)\+++#undef TH2S_DEF_NONVIRT+#define TH2S_DEF_NONVIRT(Type)\+++TH2_DECL_VIRT(TH2S);+TARRAYS_DECL_VIRT(TH2S);+TH1_DECL_VIRT(TH2S);+TOBJECT_DECL_VIRT(TH2S);+TATTLINE_DECL_VIRT(TH2S);+TATTFILL_DECL_VIRT(TH2S);+TATTMARKER_DECL_VIRT(TH2S);+DELETABLE_DECL_VIRT(TH2S);+TARRAY_DECL_VIRT(TH2S);+++TH2S_DECL_VIRT(TH2S);+++TH2S_DECL_NONVIRT(TH2S);+++#endif // __HROOT_HIST__TH2S__++#ifdef __cplusplus+}+#endif
+ csrc/HROOTHistTH3.cpp view
@@ -0,0 +1,56 @@+#include <MacroPatternMatch.h>++#include "HROOTHistTH1D.h"+#include "HROOTHistTH1.h"+#include "HROOTHistTF1.h"+#include "HROOTCoreTAtt3D.h"+#include "TH3.h"+#include "HROOTHistTH3.h"++using namespace std;+++template<class ToType, class FromType>+const ToType* to_const(const FromType* x) {+  return reinterpret_cast<const ToType*>(x);+}++template<class ToType, class FromType>+ToType* to_nonconst(FromType* x) {+  return reinterpret_cast<ToType*>(x);+}++template<class ToType, class FromType>+const ToType& to_constref(const FromType& x) {+  return reinterpret_cast<const ToType&>(x);+}++template<class ToType, class FromType>+ToType& to_nonconstref(FromType& x) {+  return reinterpret_cast<ToType&>(x);+}+++#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)++#define TYPECASTMETHOD(cname,mname,oname) \+  IIF( CHECKPROTECT(cname,mname) ) ( \+  (to_nonconst<oname,cname ## _t>), \+  (to_nonconst<cname,cname ## _t>) )++#define IS_TH3_fill1_PROTECTED ()+#define IS_TH3_fill1w_PROTECTED ()++TH1_DEF_VIRT(TH3)+TATT3D_DEF_VIRT(TH3)+TOBJECT_DEF_VIRT(TH3)+TATTLINE_DEF_VIRT(TH3)+TATTFILL_DEF_VIRT(TH3)+TATTMARKER_DEF_VIRT(TH3)+DELETABLE_DEF_VIRT(TH3)++TH3_DEF_VIRT(TH3)++TH3_DEF_NONVIRT(TH3)++
+ csrc/HROOTHistTH3.h view
@@ -0,0 +1,115 @@+#ifdef __cplusplus+extern "C" { +#endif ++#ifndef __HROOT_HIST__TH3__+#define __HROOT_HIST__TH3__++#include "HROOT-histType.h"++#include "HROOTHistTH1.h"+#include "HROOTCoreTAtt3D.h"+#include "HROOTCoreTObject.h"+#include "HROOTCoreTAttLine.h"+#include "HROOTCoreTAttFill.h"+#include "HROOTCoreTAttMarker.h"+#include "HROOTCoreDeletable.h"+#include "HROOT-coreType.h"++#undef TH3_DECL_VIRT+#define TH3_DECL_VIRT(Type) \+int Type ## _fill3 ( Type ## _p p, double x, double y, double z ); \+int Type ## _fill3w ( Type ## _p p, double x, double y, double z, double w ); \+void Type ## _FitSlicesZ ( Type ## _p p, TF1_p f1, int binminx, int binmaxx, int binminy, int binmaxy, int cut, const char* option ); \+double Type ## _getCorrelationFactor3 ( Type ## _p p, int axis1, int axis2 ); \+double Type ## _getCovariance3 ( Type ## _p p, int axis1, int axis2 ); \+TH3_p Type ## _rebinX3 ( Type ## _p p, int ngroup, const char* newname ); \+TH3_p Type ## _rebinY3 ( Type ## _p p, int ngroup, const char* newname ); \+TH3_p Type ## _rebinZ3 ( Type ## _p p, int ngroup, const char* newname ); \+TH3_p Type ## _Rebin3D ( Type ## _p p, int nxgroup, int nygroup, int nzgroup, const char* newname )++#undef TH3_DECL_NONVIRT+#define TH3_DECL_NONVIRT(Type) \+TH1D_p Type ## _tH3ProjectionX ( Type ## _p p, const char* name, int firstybin, int lastybin, int firstzbin, int lastzbin, const char* option ); \+TH1D_p Type ## _tH3ProjectionY ( Type ## _p p, const char* name, int firstxbin, int lastxbin, int firstzbin, int lastzbin, const char* option ); \+TH1D_p Type ## _tH3ProjectionZ ( Type ## _p p, const char* name, int firstxbin, int lastxbin, int firstybin, int lastybin, const char* option ); \+TH1_p Type ## _tH3Project3D ( Type ## _p p, const char* option )++#undef TH3_DEF_VIRT+#define TH3_DEF_VIRT(Type)\+int Type ## _fill3 ( Type ## _p p, double x, double y, double z )\+{\+return TYPECASTMETHOD(Type,fill3,TH3)(p)->Fill(x, y, z);\+}\+int Type ## _fill3w ( Type ## _p p, double x, double y, double z, double w )\+{\+return TYPECASTMETHOD(Type,fill3w,TH3)(p)->Fill(x, y, z, w);\+}\+void Type ## _FitSlicesZ ( Type ## _p p, TF1_p f1, int binminx, int binmaxx, int binminy, int binmaxy, int cut, const char* option )\+{\+TYPECASTMETHOD(Type,FitSlicesZ,TH3)(p)->FitSlicesZ(to_nonconst<TF1,TF1_t>(f1), binminx, binmaxx, binminy, binmaxy, cut, option);\+}\+double Type ## _getCorrelationFactor3 ( Type ## _p p, int axis1, int axis2 )\+{\+return TYPECASTMETHOD(Type,getCorrelationFactor3,TH3)(p)->GetCorrelationFactor(axis1, axis2);\+}\+double Type ## _getCovariance3 ( Type ## _p p, int axis1, int axis2 )\+{\+return TYPECASTMETHOD(Type,getCovariance3,TH3)(p)->GetCovariance(axis1, axis2);\+}\+TH3_p Type ## _rebinX3 ( Type ## _p p, int ngroup, const char* newname )\+{\+return to_nonconst<TH3_t,TH3>((TH3*)TYPECASTMETHOD(Type,rebinX3,TH3)(p)->RebinX(ngroup, newname));\+}\+TH3_p Type ## _rebinY3 ( Type ## _p p, int ngroup, const char* newname )\+{\+return to_nonconst<TH3_t,TH3>((TH3*)TYPECASTMETHOD(Type,rebinY3,TH3)(p)->RebinY(ngroup, newname));\+}\+TH3_p Type ## _rebinZ3 ( Type ## _p p, int ngroup, const char* newname )\+{\+return to_nonconst<TH3_t,TH3>((TH3*)TYPECASTMETHOD(Type,rebinZ3,TH3)(p)->RebinZ(ngroup, newname));\+}\+TH3_p Type ## _Rebin3D ( Type ## _p p, int nxgroup, int nygroup, int nzgroup, const char* newname )\+{\+return to_nonconst<TH3_t,TH3>((TH3*)TYPECASTMETHOD(Type,Rebin3D,TH3)(p)->Rebin3D(nxgroup, nygroup, nzgroup, newname));\+}++#undef TH3_DEF_NONVIRT+#define TH3_DEF_NONVIRT(Type)\+TH1D_p Type ## _tH3ProjectionX ( Type ## _p p, const char* name, int firstybin, int lastybin, int firstzbin, int lastzbin, const char* option )\+{\+return to_nonconst<TH1D_t,TH1D>((TH1D*)TYPECASTMETHOD(Type,tH3ProjectionX,TH3)(p)->ProjectionX(name, firstybin, lastybin, firstzbin, lastzbin, option));\+}\+TH1D_p Type ## _tH3ProjectionY ( Type ## _p p, const char* name, int firstxbin, int lastxbin, int firstzbin, int lastzbin, const char* option )\+{\+return to_nonconst<TH1D_t,TH1D>((TH1D*)TYPECASTMETHOD(Type,tH3ProjectionY,TH3)(p)->ProjectionY(name, firstxbin, lastxbin, firstzbin, lastzbin, option));\+}\+TH1D_p Type ## _tH3ProjectionZ ( Type ## _p p, const char* name, int firstxbin, int lastxbin, int firstybin, int lastybin, const char* option )\+{\+return to_nonconst<TH1D_t,TH1D>((TH1D*)TYPECASTMETHOD(Type,tH3ProjectionZ,TH3)(p)->ProjectionZ(name, firstxbin, lastxbin, firstybin, lastybin, option));\+}\+TH1_p Type ## _tH3Project3D ( Type ## _p p, const char* option )\+{\+return to_nonconst<TH1_t,TH1>((TH1*)TYPECASTMETHOD(Type,tH3Project3D,TH3)(p)->Project3D(option));\+}++TH1_DECL_VIRT(TH3);+TATT3D_DECL_VIRT(TH3);+TOBJECT_DECL_VIRT(TH3);+TATTLINE_DECL_VIRT(TH3);+TATTFILL_DECL_VIRT(TH3);+TATTMARKER_DECL_VIRT(TH3);+DELETABLE_DECL_VIRT(TH3);+++TH3_DECL_VIRT(TH3);+++TH3_DECL_NONVIRT(TH3);+++#endif // __HROOT_HIST__TH3__++#ifdef __cplusplus+}+#endif
+ csrc/HROOTHistTH3C.cpp view
@@ -0,0 +1,57 @@+#include <MacroPatternMatch.h>++#include "HROOTHistTH3.h"+#include "HROOTCoreTArrayC.h"+#include "TH3C.h"+#include "HROOTHistTH3C.h"++using namespace std;+++template<class ToType, class FromType>+const ToType* to_const(const FromType* x) {+  return reinterpret_cast<const ToType*>(x);+}++template<class ToType, class FromType>+ToType* to_nonconst(FromType* x) {+  return reinterpret_cast<ToType*>(x);+}++template<class ToType, class FromType>+const ToType& to_constref(const FromType& x) {+  return reinterpret_cast<const ToType&>(x);+}++template<class ToType, class FromType>+ToType& to_nonconstref(FromType& x) {+  return reinterpret_cast<ToType&>(x);+}+++#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)++#define TYPECASTMETHOD(cname,mname,oname) \+  IIF( CHECKPROTECT(cname,mname) ) ( \+  (to_nonconst<oname,cname ## _t>), \+  (to_nonconst<cname,cname ## _t>) )++#define IS_TH3C_fill1_PROTECTED ()+#define IS_TH3C_fill1w_PROTECTED ()++TH3_DEF_VIRT(TH3C)+TARRAYC_DEF_VIRT(TH3C)+TH1_DEF_VIRT(TH3C)+TATT3D_DEF_VIRT(TH3C)+TOBJECT_DEF_VIRT(TH3C)+TATTLINE_DEF_VIRT(TH3C)+TATTFILL_DEF_VIRT(TH3C)+TATTMARKER_DEF_VIRT(TH3C)+DELETABLE_DEF_VIRT(TH3C)+TARRAY_DEF_VIRT(TH3C)++TH3C_DEF_VIRT(TH3C)++TH3C_DEF_NONVIRT(TH3C)++
+ csrc/HROOTHistTH3C.h view
@@ -0,0 +1,60 @@+#ifdef __cplusplus+extern "C" { +#endif ++#ifndef __HROOT_HIST__TH3C__+#define __HROOT_HIST__TH3C__++#include "HROOT-histType.h"++#include "HROOTHistTH3.h"+#include "HROOTCoreTArrayC.h"+#include "HROOTHistTH1.h"+#include "HROOTCoreTAtt3D.h"+#include "HROOTCoreTObject.h"+#include "HROOTCoreTAttLine.h"+#include "HROOTCoreTAttFill.h"+#include "HROOTCoreTAttMarker.h"+#include "HROOTCoreDeletable.h"+#include "HROOTCoreTArray.h"+#include "HROOT-coreType.h"++#undef TH3C_DECL_VIRT+#define TH3C_DECL_VIRT(Type) \+++#undef TH3C_DECL_NONVIRT+#define TH3C_DECL_NONVIRT(Type) \+++#undef TH3C_DEF_VIRT+#define TH3C_DEF_VIRT(Type)\+++#undef TH3C_DEF_NONVIRT+#define TH3C_DEF_NONVIRT(Type)\+++TH3_DECL_VIRT(TH3C);+TARRAYC_DECL_VIRT(TH3C);+TH1_DECL_VIRT(TH3C);+TATT3D_DECL_VIRT(TH3C);+TOBJECT_DECL_VIRT(TH3C);+TATTLINE_DECL_VIRT(TH3C);+TATTFILL_DECL_VIRT(TH3C);+TATTMARKER_DECL_VIRT(TH3C);+DELETABLE_DECL_VIRT(TH3C);+TARRAY_DECL_VIRT(TH3C);+++TH3C_DECL_VIRT(TH3C);+++TH3C_DECL_NONVIRT(TH3C);+++#endif // __HROOT_HIST__TH3C__++#ifdef __cplusplus+}+#endif
+ csrc/HROOTHistTH3D.cpp view
@@ -0,0 +1,57 @@+#include <MacroPatternMatch.h>++#include "HROOTHistTH3.h"+#include "HROOTCoreTArrayD.h"+#include "TH3D.h"+#include "HROOTHistTH3D.h"++using namespace std;+++template<class ToType, class FromType>+const ToType* to_const(const FromType* x) {+  return reinterpret_cast<const ToType*>(x);+}++template<class ToType, class FromType>+ToType* to_nonconst(FromType* x) {+  return reinterpret_cast<ToType*>(x);+}++template<class ToType, class FromType>+const ToType& to_constref(const FromType& x) {+  return reinterpret_cast<const ToType&>(x);+}++template<class ToType, class FromType>+ToType& to_nonconstref(FromType& x) {+  return reinterpret_cast<ToType&>(x);+}+++#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)++#define TYPECASTMETHOD(cname,mname,oname) \+  IIF( CHECKPROTECT(cname,mname) ) ( \+  (to_nonconst<oname,cname ## _t>), \+  (to_nonconst<cname,cname ## _t>) )++#define IS_TH3D_fill1_PROTECTED ()+#define IS_TH3D_fill1w_PROTECTED ()++TH3_DEF_VIRT(TH3D)+TARRAYD_DEF_VIRT(TH3D)+TH1_DEF_VIRT(TH3D)+TATT3D_DEF_VIRT(TH3D)+TOBJECT_DEF_VIRT(TH3D)+TATTLINE_DEF_VIRT(TH3D)+TATTFILL_DEF_VIRT(TH3D)+TATTMARKER_DEF_VIRT(TH3D)+DELETABLE_DEF_VIRT(TH3D)+TARRAY_DEF_VIRT(TH3D)++TH3D_DEF_VIRT(TH3D)++TH3D_DEF_NONVIRT(TH3D)++
+ csrc/HROOTHistTH3D.h view
@@ -0,0 +1,60 @@+#ifdef __cplusplus+extern "C" { +#endif ++#ifndef __HROOT_HIST__TH3D__+#define __HROOT_HIST__TH3D__++#include "HROOT-histType.h"++#include "HROOTHistTH3.h"+#include "HROOTCoreTArrayD.h"+#include "HROOTHistTH1.h"+#include "HROOTCoreTAtt3D.h"+#include "HROOTCoreTObject.h"+#include "HROOTCoreTAttLine.h"+#include "HROOTCoreTAttFill.h"+#include "HROOTCoreTAttMarker.h"+#include "HROOTCoreDeletable.h"+#include "HROOTCoreTArray.h"+#include "HROOT-coreType.h"++#undef TH3D_DECL_VIRT+#define TH3D_DECL_VIRT(Type) \+++#undef TH3D_DECL_NONVIRT+#define TH3D_DECL_NONVIRT(Type) \+++#undef TH3D_DEF_VIRT+#define TH3D_DEF_VIRT(Type)\+++#undef TH3D_DEF_NONVIRT+#define TH3D_DEF_NONVIRT(Type)\+++TH3_DECL_VIRT(TH3D);+TARRAYD_DECL_VIRT(TH3D);+TH1_DECL_VIRT(TH3D);+TATT3D_DECL_VIRT(TH3D);+TOBJECT_DECL_VIRT(TH3D);+TATTLINE_DECL_VIRT(TH3D);+TATTFILL_DECL_VIRT(TH3D);+TATTMARKER_DECL_VIRT(TH3D);+DELETABLE_DECL_VIRT(TH3D);+TARRAY_DECL_VIRT(TH3D);+++TH3D_DECL_VIRT(TH3D);+++TH3D_DECL_NONVIRT(TH3D);+++#endif // __HROOT_HIST__TH3D__++#ifdef __cplusplus+}+#endif
+ csrc/HROOTHistTH3F.cpp view
@@ -0,0 +1,57 @@+#include <MacroPatternMatch.h>++#include "HROOTHistTH3.h"+#include "HROOTCoreTArrayF.h"+#include "TH3F.h"+#include "HROOTHistTH3F.h"++using namespace std;+++template<class ToType, class FromType>+const ToType* to_const(const FromType* x) {+  return reinterpret_cast<const ToType*>(x);+}++template<class ToType, class FromType>+ToType* to_nonconst(FromType* x) {+  return reinterpret_cast<ToType*>(x);+}++template<class ToType, class FromType>+const ToType& to_constref(const FromType& x) {+  return reinterpret_cast<const ToType&>(x);+}++template<class ToType, class FromType>+ToType& to_nonconstref(FromType& x) {+  return reinterpret_cast<ToType&>(x);+}+++#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)++#define TYPECASTMETHOD(cname,mname,oname) \+  IIF( CHECKPROTECT(cname,mname) ) ( \+  (to_nonconst<oname,cname ## _t>), \+  (to_nonconst<cname,cname ## _t>) )++#define IS_TH3F_fill1_PROTECTED ()+#define IS_TH3F_fill1w_PROTECTED ()++TH3_DEF_VIRT(TH3F)+TARRAYF_DEF_VIRT(TH3F)+TH1_DEF_VIRT(TH3F)+TATT3D_DEF_VIRT(TH3F)+TOBJECT_DEF_VIRT(TH3F)+TATTLINE_DEF_VIRT(TH3F)+TATTFILL_DEF_VIRT(TH3F)+TATTMARKER_DEF_VIRT(TH3F)+DELETABLE_DEF_VIRT(TH3F)+TARRAY_DEF_VIRT(TH3F)++TH3F_DEF_VIRT(TH3F)++TH3F_DEF_NONVIRT(TH3F)++
+ csrc/HROOTHistTH3F.h view
@@ -0,0 +1,60 @@+#ifdef __cplusplus+extern "C" { +#endif ++#ifndef __HROOT_HIST__TH3F__+#define __HROOT_HIST__TH3F__++#include "HROOT-histType.h"++#include "HROOTHistTH3.h"+#include "HROOTCoreTArrayF.h"+#include "HROOTHistTH1.h"+#include "HROOTCoreTAtt3D.h"+#include "HROOTCoreTObject.h"+#include "HROOTCoreTAttLine.h"+#include "HROOTCoreTAttFill.h"+#include "HROOTCoreTAttMarker.h"+#include "HROOTCoreDeletable.h"+#include "HROOTCoreTArray.h"+#include "HROOT-coreType.h"++#undef TH3F_DECL_VIRT+#define TH3F_DECL_VIRT(Type) \+++#undef TH3F_DECL_NONVIRT+#define TH3F_DECL_NONVIRT(Type) \+++#undef TH3F_DEF_VIRT+#define TH3F_DEF_VIRT(Type)\+++#undef TH3F_DEF_NONVIRT+#define TH3F_DEF_NONVIRT(Type)\+++TH3_DECL_VIRT(TH3F);+TARRAYF_DECL_VIRT(TH3F);+TH1_DECL_VIRT(TH3F);+TATT3D_DECL_VIRT(TH3F);+TOBJECT_DECL_VIRT(TH3F);+TATTLINE_DECL_VIRT(TH3F);+TATTFILL_DECL_VIRT(TH3F);+TATTMARKER_DECL_VIRT(TH3F);+DELETABLE_DECL_VIRT(TH3F);+TARRAY_DECL_VIRT(TH3F);+++TH3F_DECL_VIRT(TH3F);+++TH3F_DECL_NONVIRT(TH3F);+++#endif // __HROOT_HIST__TH3F__++#ifdef __cplusplus+}+#endif
+ csrc/HROOTHistTH3I.cpp view
@@ -0,0 +1,57 @@+#include <MacroPatternMatch.h>++#include "HROOTHistTH3.h"+#include "HROOTCoreTArrayI.h"+#include "TH3I.h"+#include "HROOTHistTH3I.h"++using namespace std;+++template<class ToType, class FromType>+const ToType* to_const(const FromType* x) {+  return reinterpret_cast<const ToType*>(x);+}++template<class ToType, class FromType>+ToType* to_nonconst(FromType* x) {+  return reinterpret_cast<ToType*>(x);+}++template<class ToType, class FromType>+const ToType& to_constref(const FromType& x) {+  return reinterpret_cast<const ToType&>(x);+}++template<class ToType, class FromType>+ToType& to_nonconstref(FromType& x) {+  return reinterpret_cast<ToType&>(x);+}+++#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)++#define TYPECASTMETHOD(cname,mname,oname) \+  IIF( CHECKPROTECT(cname,mname) ) ( \+  (to_nonconst<oname,cname ## _t>), \+  (to_nonconst<cname,cname ## _t>) )++#define IS_TH3I_fill1_PROTECTED ()+#define IS_TH3I_fill1w_PROTECTED ()++TH3_DEF_VIRT(TH3I)+TARRAYI_DEF_VIRT(TH3I)+TH1_DEF_VIRT(TH3I)+TATT3D_DEF_VIRT(TH3I)+TOBJECT_DEF_VIRT(TH3I)+TATTLINE_DEF_VIRT(TH3I)+TATTFILL_DEF_VIRT(TH3I)+TATTMARKER_DEF_VIRT(TH3I)+DELETABLE_DEF_VIRT(TH3I)+TARRAY_DEF_VIRT(TH3I)++TH3I_DEF_VIRT(TH3I)++TH3I_DEF_NONVIRT(TH3I)++
+ csrc/HROOTHistTH3I.h view
@@ -0,0 +1,60 @@+#ifdef __cplusplus+extern "C" { +#endif ++#ifndef __HROOT_HIST__TH3I__+#define __HROOT_HIST__TH3I__++#include "HROOT-histType.h"++#include "HROOTHistTH3.h"+#include "HROOTCoreTArrayI.h"+#include "HROOTHistTH1.h"+#include "HROOTCoreTAtt3D.h"+#include "HROOTCoreTObject.h"+#include "HROOTCoreTAttLine.h"+#include "HROOTCoreTAttFill.h"+#include "HROOTCoreTAttMarker.h"+#include "HROOTCoreDeletable.h"+#include "HROOTCoreTArray.h"+#include "HROOT-coreType.h"++#undef TH3I_DECL_VIRT+#define TH3I_DECL_VIRT(Type) \+++#undef TH3I_DECL_NONVIRT+#define TH3I_DECL_NONVIRT(Type) \+++#undef TH3I_DEF_VIRT+#define TH3I_DEF_VIRT(Type)\+++#undef TH3I_DEF_NONVIRT+#define TH3I_DEF_NONVIRT(Type)\+++TH3_DECL_VIRT(TH3I);+TARRAYI_DECL_VIRT(TH3I);+TH1_DECL_VIRT(TH3I);+TATT3D_DECL_VIRT(TH3I);+TOBJECT_DECL_VIRT(TH3I);+TATTLINE_DECL_VIRT(TH3I);+TATTFILL_DECL_VIRT(TH3I);+TATTMARKER_DECL_VIRT(TH3I);+DELETABLE_DECL_VIRT(TH3I);+TARRAY_DECL_VIRT(TH3I);+++TH3I_DECL_VIRT(TH3I);+++TH3I_DECL_NONVIRT(TH3I);+++#endif // __HROOT_HIST__TH3I__++#ifdef __cplusplus+}+#endif
+ csrc/HROOTHistTH3S.cpp view
@@ -0,0 +1,57 @@+#include <MacroPatternMatch.h>++#include "HROOTHistTH3.h"+#include "HROOTCoreTArrayS.h"+#include "TH3S.h"+#include "HROOTHistTH3S.h"++using namespace std;+++template<class ToType, class FromType>+const ToType* to_const(const FromType* x) {+  return reinterpret_cast<const ToType*>(x);+}++template<class ToType, class FromType>+ToType* to_nonconst(FromType* x) {+  return reinterpret_cast<ToType*>(x);+}++template<class ToType, class FromType>+const ToType& to_constref(const FromType& x) {+  return reinterpret_cast<const ToType&>(x);+}++template<class ToType, class FromType>+ToType& to_nonconstref(FromType& x) {+  return reinterpret_cast<ToType&>(x);+}+++#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)++#define TYPECASTMETHOD(cname,mname,oname) \+  IIF( CHECKPROTECT(cname,mname) ) ( \+  (to_nonconst<oname,cname ## _t>), \+  (to_nonconst<cname,cname ## _t>) )++#define IS_TH3S_fill1_PROTECTED ()+#define IS_TH3S_fill1w_PROTECTED ()++TH3_DEF_VIRT(TH3S)+TARRAYS_DEF_VIRT(TH3S)+TH1_DEF_VIRT(TH3S)+TATT3D_DEF_VIRT(TH3S)+TOBJECT_DEF_VIRT(TH3S)+TATTLINE_DEF_VIRT(TH3S)+TATTFILL_DEF_VIRT(TH3S)+TATTMARKER_DEF_VIRT(TH3S)+DELETABLE_DEF_VIRT(TH3S)+TARRAY_DEF_VIRT(TH3S)++TH3S_DEF_VIRT(TH3S)++TH3S_DEF_NONVIRT(TH3S)++
+ csrc/HROOTHistTH3S.h view
@@ -0,0 +1,60 @@+#ifdef __cplusplus+extern "C" { +#endif ++#ifndef __HROOT_HIST__TH3S__+#define __HROOT_HIST__TH3S__++#include "HROOT-histType.h"++#include "HROOTHistTH3.h"+#include "HROOTCoreTArrayS.h"+#include "HROOTHistTH1.h"+#include "HROOTCoreTAtt3D.h"+#include "HROOTCoreTObject.h"+#include "HROOTCoreTAttLine.h"+#include "HROOTCoreTAttFill.h"+#include "HROOTCoreTAttMarker.h"+#include "HROOTCoreDeletable.h"+#include "HROOTCoreTArray.h"+#include "HROOT-coreType.h"++#undef TH3S_DECL_VIRT+#define TH3S_DECL_VIRT(Type) \+++#undef TH3S_DECL_NONVIRT+#define TH3S_DECL_NONVIRT(Type) \+++#undef TH3S_DEF_VIRT+#define TH3S_DEF_VIRT(Type)\+++#undef TH3S_DEF_NONVIRT+#define TH3S_DEF_NONVIRT(Type)\+++TH3_DECL_VIRT(TH3S);+TARRAYS_DECL_VIRT(TH3S);+TH1_DECL_VIRT(TH3S);+TATT3D_DECL_VIRT(TH3S);+TOBJECT_DECL_VIRT(TH3S);+TATTLINE_DECL_VIRT(TH3S);+TATTFILL_DECL_VIRT(TH3S);+TATTMARKER_DECL_VIRT(TH3S);+DELETABLE_DECL_VIRT(TH3S);+TARRAY_DECL_VIRT(TH3S);+++TH3S_DECL_VIRT(TH3S);+++TH3S_DECL_NONVIRT(TH3S);+++#endif // __HROOT_HIST__TH3S__++#ifdef __cplusplus+}+#endif
+ csrc/HROOTHistTHStack.cpp view
@@ -0,0 +1,47 @@+#include <MacroPatternMatch.h>++#include "HROOTCoreTNamed.h"+#include "THStack.h"+#include "HROOTHistTHStack.h"++using namespace std;+++template<class ToType, class FromType>+const ToType* to_const(const FromType* x) {+  return reinterpret_cast<const ToType*>(x);+}++template<class ToType, class FromType>+ToType* to_nonconst(FromType* x) {+  return reinterpret_cast<ToType*>(x);+}++template<class ToType, class FromType>+const ToType& to_constref(const FromType& x) {+  return reinterpret_cast<const ToType&>(x);+}++template<class ToType, class FromType>+ToType& to_nonconstref(FromType& x) {+  return reinterpret_cast<ToType&>(x);+}+++#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)++#define TYPECASTMETHOD(cname,mname,oname) \+  IIF( CHECKPROTECT(cname,mname) ) ( \+  (to_nonconst<oname,cname ## _t>), \+  (to_nonconst<cname,cname ## _t>) )+++TNAMED_DEF_VIRT(THStack)+TOBJECT_DEF_VIRT(THStack)+DELETABLE_DEF_VIRT(THStack)++THSTACK_DEF_VIRT(THStack)++THSTACK_DEF_NONVIRT(THStack)++
+ csrc/HROOTHistTHStack.h view
@@ -0,0 +1,50 @@+#ifdef __cplusplus+extern "C" { +#endif ++#ifndef __HROOT_HIST__THStack__+#define __HROOT_HIST__THStack__++#include "HROOT-histType.h"++#include "HROOTCoreTNamed.h"+#include "HROOTCoreTObject.h"+#include "HROOTCoreDeletable.h"+#include "HROOT-coreType.h"++#undef THSTACK_DECL_VIRT+#define THSTACK_DECL_VIRT(Type) \+++#undef THSTACK_DECL_NONVIRT+#define THSTACK_DECL_NONVIRT(Type) \+Type ## _p Type ## _newTHStack ( const char* name, const char* title )++#undef THSTACK_DEF_VIRT+#define THSTACK_DEF_VIRT(Type)\+++#undef THSTACK_DEF_NONVIRT+#define THSTACK_DEF_NONVIRT(Type)\+Type ## _p Type ## _newTHStack ( const char* name, const char* title )\+{\+Type * newp = new Type (name, title); \+return to_nonconst<Type ## _t, Type >(newp);\+}++TNAMED_DECL_VIRT(THStack);+TOBJECT_DECL_VIRT(THStack);+DELETABLE_DECL_VIRT(THStack);+++THSTACK_DECL_VIRT(THStack);+++THSTACK_DECL_NONVIRT(THStack);+++#endif // __HROOT_HIST__THStack__++#ifdef __cplusplus+}+#endif
+ src/HROOT/Hist.hs view
@@ -0,0 +1,63 @@+module HROOT.Hist (+module HROOT.Hist.TAxis+, module HROOT.Hist.TF1+, module HROOT.Hist.TFormula+, module HROOT.Hist.TGraph+, module HROOT.Hist.TGraphAsymmErrors+, module HROOT.Hist.TGraphBentErrors+, module HROOT.Hist.TGraphErrors+, module HROOT.Hist.TH1+, module HROOT.Hist.TH1C+, module HROOT.Hist.TH1D+, module HROOT.Hist.TH1F+, module HROOT.Hist.TH1I+, module HROOT.Hist.TH1K+, module HROOT.Hist.TH1S+, module HROOT.Hist.TH2+, module HROOT.Hist.TH2C+, module HROOT.Hist.TH2D+, module HROOT.Hist.TH2F+, module HROOT.Hist.TH2I+, module HROOT.Hist.TH2Poly+, module HROOT.Hist.TH2S+, module HROOT.Hist.TH3+, module HROOT.Hist.TH3C+, module HROOT.Hist.TH3D+, module HROOT.Hist.TH3F+, module HROOT.Hist.TH3I+, module HROOT.Hist.TH3S+, module HROOT.Hist.THStack +) where++import HROOT.Hist.TAxis+import HROOT.Hist.TF1+import HROOT.Hist.TFormula+import HROOT.Hist.TGraph+import HROOT.Hist.TGraphAsymmErrors+import HROOT.Hist.TGraphBentErrors+import HROOT.Hist.TGraphErrors+import HROOT.Hist.TH1+import HROOT.Hist.TH1C+import HROOT.Hist.TH1D+import HROOT.Hist.TH1F+import HROOT.Hist.TH1I+import HROOT.Hist.TH1K+import HROOT.Hist.TH1S+import HROOT.Hist.TH2+import HROOT.Hist.TH2C+import HROOT.Hist.TH2D+import HROOT.Hist.TH2F+import HROOT.Hist.TH2I+import HROOT.Hist.TH2Poly+import HROOT.Hist.TH2S+import HROOT.Hist.TH3+import HROOT.Hist.TH3C+import HROOT.Hist.TH3D+import HROOT.Hist.TH3F+import HROOT.Hist.TH3I+import HROOT.Hist.TH3S+import HROOT.Hist.THStack++++
+ src/HROOT/Hist/TAxis.hs view
@@ -0,0 +1,17 @@+module HROOT.Hist.TAxis+  (+    TAxis(..)+  , ITAxis(..)+  , upcastTAxis+  , downcastTAxis+  , newTAxis+  , tAxisGetCenterLabels+  , tAxisGetCenterTitle+ +  ) where++import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.Interface+import HROOT.Hist.TAxis.Implementation++
+ src/HROOT/Hist/TAxis/Cast.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeFamilies, +             MultiParamTypeClasses, OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TAxis.Cast where+++import Foreign.Ptr+import Foreign.ForeignPtr (castForeignPtr, newForeignPtr_)+import Foreign.ForeignPtr.Unsafe+import FFICXX.Runtime.Cast+import System.IO.Unsafe++import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.Interface++instance (ITAxis a, FPtr a) => Castable a (Ptr RawTAxis) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ ++instance Castable TAxis (Ptr RawTAxis) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+ src/HROOT/Hist/TAxis/FFI.hsc view
@@ -0,0 +1,152 @@+{-# LANGUAGE ForeignFunctionInterface #-}++-- module HROOT.Class.FFI where++module HROOT.Hist.TAxis.FFI where+++import Foreign.C            +import Foreign.Ptr++-- import HROOT.Class.Interface++-- #include ""++import HROOT.Hist.TAxis.RawType+import HROOT.Core.TObject.RawType+import HROOT.Core.TClass.RawType++#include "HROOTHistTAxis.h"++foreign import ccall "HROOTHistTAxis.h TAxis_SetName" c_taxis_setname +  :: (Ptr RawTAxis) -> CString -> IO ()++foreign import ccall "HROOTHistTAxis.h TAxis_SetNameTitle" c_taxis_setnametitle +  :: (Ptr RawTAxis) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTAxis.h TAxis_SetTitle" c_taxis_settitle +  :: (Ptr RawTAxis) -> CString -> IO ()++foreign import ccall "HROOTHistTAxis.h TAxis_GetNdivisions" c_taxis_getndivisions +  :: (Ptr RawTAxis) -> IO CInt++foreign import ccall "HROOTHistTAxis.h TAxis_GetAxisColor" c_taxis_getaxiscolor +  :: (Ptr RawTAxis) -> IO CInt++foreign import ccall "HROOTHistTAxis.h TAxis_GetLabelColor" c_taxis_getlabelcolor +  :: (Ptr RawTAxis) -> IO CInt++foreign import ccall "HROOTHistTAxis.h TAxis_GetLabelFont" c_taxis_getlabelfont +  :: (Ptr RawTAxis) -> IO CInt++foreign import ccall "HROOTHistTAxis.h TAxis_GetLabelOffset" c_taxis_getlabeloffset +  :: (Ptr RawTAxis) -> IO CDouble++foreign import ccall "HROOTHistTAxis.h TAxis_GetLabelSize" c_taxis_getlabelsize +  :: (Ptr RawTAxis) -> IO CDouble++foreign import ccall "HROOTHistTAxis.h TAxis_GetTitleOffset" c_taxis_gettitleoffset +  :: (Ptr RawTAxis) -> IO CDouble++foreign import ccall "HROOTHistTAxis.h TAxis_GetTitleSize" c_taxis_gettitlesize +  :: (Ptr RawTAxis) -> IO CDouble++foreign import ccall "HROOTHistTAxis.h TAxis_GetTickLength" c_taxis_getticklength +  :: (Ptr RawTAxis) -> IO CDouble++foreign import ccall "HROOTHistTAxis.h TAxis_GetTitleFont" c_taxis_gettitlefont +  :: (Ptr RawTAxis) -> IO CInt++foreign import ccall "HROOTHistTAxis.h TAxis_SetNdivisions" c_taxis_setndivisions +  :: (Ptr RawTAxis) -> CInt -> CInt -> IO ()++foreign import ccall "HROOTHistTAxis.h TAxis_SetAxisColor" c_taxis_setaxiscolor +  :: (Ptr RawTAxis) -> CInt -> IO ()++foreign import ccall "HROOTHistTAxis.h TAxis_SetLabelColor" c_taxis_setlabelcolor +  :: (Ptr RawTAxis) -> CInt -> IO ()++foreign import ccall "HROOTHistTAxis.h TAxis_SetLabelFont" c_taxis_setlabelfont +  :: (Ptr RawTAxis) -> CInt -> IO ()++foreign import ccall "HROOTHistTAxis.h TAxis_SetLabelOffset" c_taxis_setlabeloffset +  :: (Ptr RawTAxis) -> CDouble -> IO ()++foreign import ccall "HROOTHistTAxis.h TAxis_SetLabelSize" c_taxis_setlabelsize +  :: (Ptr RawTAxis) -> CDouble -> IO ()++foreign import ccall "HROOTHistTAxis.h TAxis_SetTickLength" c_taxis_setticklength +  :: (Ptr RawTAxis) -> CDouble -> IO ()++foreign import ccall "HROOTHistTAxis.h TAxis_SetTitleOffset" c_taxis_settitleoffset +  :: (Ptr RawTAxis) -> CDouble -> IO ()++foreign import ccall "HROOTHistTAxis.h TAxis_SetTitleSize" c_taxis_settitlesize +  :: (Ptr RawTAxis) -> CDouble -> IO ()++foreign import ccall "HROOTHistTAxis.h TAxis_SetTitleColor" c_taxis_settitlecolor +  :: (Ptr RawTAxis) -> CInt -> IO ()++foreign import ccall "HROOTHistTAxis.h TAxis_SetTitleFont" c_taxis_settitlefont +  :: (Ptr RawTAxis) -> CInt -> IO ()++foreign import ccall "HROOTHistTAxis.h TAxis_Draw" c_taxis_draw +  :: (Ptr RawTAxis) -> CString -> IO ()++foreign import ccall "HROOTHistTAxis.h TAxis_FindObject" c_taxis_findobject +  :: (Ptr RawTAxis) -> CString -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTAxis.h TAxis_GetName" c_taxis_getname +  :: (Ptr RawTAxis) -> IO CString++foreign import ccall "HROOTHistTAxis.h TAxis_IsA" c_taxis_isa +  :: (Ptr RawTAxis) -> IO (Ptr RawTClass)++foreign import ccall "HROOTHistTAxis.h TAxis_Paint" c_taxis_paint +  :: (Ptr RawTAxis) -> CString -> IO ()++foreign import ccall "HROOTHistTAxis.h TAxis_printObj" c_taxis_printobj +  :: (Ptr RawTAxis) -> CString -> IO ()++foreign import ccall "HROOTHistTAxis.h TAxis_SaveAs" c_taxis_saveas +  :: (Ptr RawTAxis) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTAxis.h TAxis_Write" c_taxis_write +  :: (Ptr RawTAxis) -> CString -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTAxis.h TAxis_delete" c_taxis_delete +  :: (Ptr RawTAxis) -> IO ()++foreign import ccall "HROOTHistTAxis.h TAxis_newTAxis" c_taxis_newtaxis +  :: CInt -> CDouble -> CDouble -> IO (Ptr RawTAxis)++foreign import ccall "HROOTHistTAxis.h TAxis_findBinTAxis" c_taxis_findbintaxis +  :: (Ptr RawTAxis) -> CDouble -> IO CInt++foreign import ccall "HROOTHistTAxis.h TAxis_findFixBinTAxis" c_taxis_findfixbintaxis +  :: (Ptr RawTAxis) -> CDouble -> IO CInt++foreign import ccall "HROOTHistTAxis.h TAxis_getBinCenterTAxis" c_taxis_getbincentertaxis +  :: (Ptr RawTAxis) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTAxis.h TAxis_GetBinCenterLog" c_taxis_getbincenterlog +  :: (Ptr RawTAxis) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTAxis.h TAxis_GetBinUpEdge" c_taxis_getbinupedge +  :: (Ptr RawTAxis) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTAxis.h TAxis_tAxisGetCenterLabels" c_taxis_taxisgetcenterlabels +  :: (Ptr RawTAxis) -> IO CInt++foreign import ccall "HROOTHistTAxis.h TAxis_tAxisGetCenterTitle" c_taxis_taxisgetcentertitle +  :: (Ptr RawTAxis) -> IO CInt++foreign import ccall "HROOTHistTAxis.h TAxis_SetTimeDisplay" c_taxis_settimedisplay +  :: (Ptr RawTAxis) -> CInt -> IO ()++foreign import ccall "HROOTHistTAxis.h TAxis_SetTimeFormat" c_taxis_settimeformat +  :: (Ptr RawTAxis) -> CString -> IO ()++foreign import ccall "HROOTHistTAxis.h TAxis_SetTimeOffset" c_taxis_settimeoffset +  :: (Ptr RawTAxis) -> CDouble -> CString -> IO ()+
+ src/HROOT/Hist/TAxis/Implementation.hs view
@@ -0,0 +1,147 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, +             OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TAxis.Implementation where+++import FFICXX.Runtime.Cast++import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.FFI+import HROOT.Hist.TAxis.Interface+import HROOT.Hist.TAxis.Cast+import HROOT.Core.TClass.RawType+import HROOT.Core.TClass.Cast+import HROOT.Core.TClass.Interface+import HROOT.Core.TNamed.RawType+import HROOT.Core.TNamed.Cast+import HROOT.Core.TNamed.Interface+import HROOT.Core.TAttAxis.RawType+import HROOT.Core.TAttAxis.Cast+import HROOT.Core.TAttAxis.Interface+import HROOT.Core.TObject.RawType+import HROOT.Core.TObject.Cast+import HROOT.Core.TObject.Interface+import HROOT.Core.Deletable.RawType+import HROOT.Core.Deletable.Cast+import HROOT.Core.Deletable.Interface++import Data.Word+import Foreign.C+import Foreign.Ptr +import Foreign.ForeignPtr++import System.IO.Unsafe+++instance ITAxis TAxis where+  findBinTAxis = xform1 c_taxis_findbintaxis+  findFixBinTAxis = xform1 c_taxis_findfixbintaxis+  getBinCenterTAxis = xform1 c_taxis_getbincentertaxis+  getBinCenterLog = xform1 c_taxis_getbincenterlog+  getBinUpEdge = xform1 c_taxis_getbinupedge+  setTimeDisplay = xform1 c_taxis_settimedisplay+  setTimeFormat = xform1 c_taxis_settimeformat+  setTimeOffset = xform2 c_taxis_settimeoffset+instance ITNamed TAxis where+  setName = xform1 c_taxis_setname+  setNameTitle = xform2 c_taxis_setnametitle+  setTitle = xform1 c_taxis_settitle+instance ITAttAxis TAxis where+  getNdivisions = xform0 c_taxis_getndivisions+  getAxisColor = xform0 c_taxis_getaxiscolor+  getLabelColor = xform0 c_taxis_getlabelcolor+  getLabelFont = xform0 c_taxis_getlabelfont+  getLabelOffset = xform0 c_taxis_getlabeloffset+  getLabelSize = xform0 c_taxis_getlabelsize+  getTitleOffset = xform0 c_taxis_gettitleoffset+  getTitleSize = xform0 c_taxis_gettitlesize+  getTickLength = xform0 c_taxis_getticklength+  getTitleFont = xform0 c_taxis_gettitlefont+  setNdivisions = xform2 c_taxis_setndivisions+  setAxisColor = xform1 c_taxis_setaxiscolor+  setLabelColor = xform1 c_taxis_setlabelcolor+  setLabelFont = xform1 c_taxis_setlabelfont+  setLabelOffset = xform1 c_taxis_setlabeloffset+  setLabelSize = xform1 c_taxis_setlabelsize+  setTickLength = xform1 c_taxis_setticklength+  setTitleOffset = xform1 c_taxis_settitleoffset+  setTitleSize = xform1 c_taxis_settitlesize+  setTitleColor = xform1 c_taxis_settitlecolor+  setTitleFont = xform1 c_taxis_settitlefont+instance ITObject TAxis where+  draw = xform1 c_taxis_draw+  findObject = xform1 c_taxis_findobject+  getName = xform0 c_taxis_getname+  isA = xform0 c_taxis_isa+  paint = xform1 c_taxis_paint+  printObj = xform1 c_taxis_printobj+  saveAs = xform2 c_taxis_saveas+  write = xform3 c_taxis_write+instance IDeletable TAxis where+  delete = xform0 c_taxis_delete++instance ITAxis (Exist TAxis) where+  findBinTAxis (ETAxis x) = findBinTAxis x+  findFixBinTAxis (ETAxis x) = findFixBinTAxis x+  getBinCenterTAxis (ETAxis x) = getBinCenterTAxis x+  getBinCenterLog (ETAxis x) = getBinCenterLog x+  getBinUpEdge (ETAxis x) = getBinUpEdge x+  setTimeDisplay (ETAxis x) = setTimeDisplay x+  setTimeFormat (ETAxis x) = setTimeFormat x+  setTimeOffset (ETAxis x) = setTimeOffset x+instance ITNamed (Exist TAxis) where+  setName (ETAxis x) = setName x+  setNameTitle (ETAxis x) = setNameTitle x+  setTitle (ETAxis x) = setTitle x+instance ITAttAxis (Exist TAxis) where+  getNdivisions (ETAxis x) = getNdivisions x+  getAxisColor (ETAxis x) = getAxisColor x+  getLabelColor (ETAxis x) = getLabelColor x+  getLabelFont (ETAxis x) = getLabelFont x+  getLabelOffset (ETAxis x) = getLabelOffset x+  getLabelSize (ETAxis x) = getLabelSize x+  getTitleOffset (ETAxis x) = getTitleOffset x+  getTitleSize (ETAxis x) = getTitleSize x+  getTickLength (ETAxis x) = getTickLength x+  getTitleFont (ETAxis x) = getTitleFont x+  setNdivisions (ETAxis x) = setNdivisions x+  setAxisColor (ETAxis x) = setAxisColor x+  setLabelColor (ETAxis x) = setLabelColor x+  setLabelFont (ETAxis x) = setLabelFont x+  setLabelOffset (ETAxis x) = setLabelOffset x+  setLabelSize (ETAxis x) = setLabelSize x+  setTickLength (ETAxis x) = setTickLength x+  setTitleOffset (ETAxis x) = setTitleOffset x+  setTitleSize (ETAxis x) = setTitleSize x+  setTitleColor (ETAxis x) = setTitleColor x+  setTitleFont (ETAxis x) = setTitleFont x+instance ITObject (Exist TAxis) where+  draw (ETAxis x) = draw x+  findObject (ETAxis x) = findObject x+  getName (ETAxis x) = getName x+  isA (ETAxis x) = isA x+  paint (ETAxis x) = paint x+  printObj (ETAxis x) = printObj x+  saveAs (ETAxis x) = saveAs x+  write (ETAxis x) = write x+instance IDeletable (Exist TAxis) where+  delete (ETAxis x) = delete x+++newTAxis :: CInt -> CDouble -> CDouble -> IO TAxis+newTAxis = xform2 c_taxis_newtaxis++tAxisGetCenterLabels :: TAxis -> IO CInt+tAxisGetCenterLabels = xform0 c_taxis_taxisgetcenterlabels++tAxisGetCenterTitle :: TAxis -> IO CInt+tAxisGetCenterTitle = xform0 c_taxis_taxisgetcentertitle++++instance FPtr (Exist TAxis) where+  type Raw (Exist TAxis) = RawTAxis+  get_fptr (ETAxis obj) = castForeignPtr (get_fptr obj)+  cast_fptr_to_obj fptr = ETAxis (cast_fptr_to_obj (fptr :: ForeignPtr RawTAxis) :: TAxis)
+ src/HROOT/Hist/TAxis/Interface.hs view
@@ -0,0 +1,53 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++-- module HROOT.Class.Interface where++module HROOT.Hist.TAxis.Interface where+++import Data.Word+import Foreign.C+import Foreign.Ptr+import Foreign.ForeignPtr+import FFICXX.Runtime.Cast++import HROOT.Hist.TAxis.RawType++import HROOT.Core.TNamed.Interface+import HROOT.Core.TAttAxis.Interface+---- ============ ----++++class (ITNamed a,ITAttAxis a) => ITAxis a where++    findBinTAxis :: a -> CDouble -> IO CInt ++    findFixBinTAxis :: a -> CDouble -> IO CInt ++    getBinCenterTAxis :: a -> CInt -> IO CDouble ++    getBinCenterLog :: a -> CInt -> IO CDouble ++    getBinUpEdge :: a -> CInt -> IO CDouble ++    setTimeDisplay :: a -> CInt -> IO () ++    setTimeFormat :: a -> CString -> IO () ++    setTimeOffset :: a -> CDouble -> CString -> IO () ++instance Existable TAxis where+  data Exist TAxis = forall a. (FPtr a, ITAxis a) => ETAxis a++upcastTAxis :: (FPtr a, ITAxis a) => a -> TAxis+upcastTAxis h = let fh = get_fptr h+                    fh2 :: ForeignPtr RawTAxis = castForeignPtr fh+                in cast_fptr_to_obj fh2++downcastTAxis :: (FPtr a, ITAxis a) => TAxis -> a +downcastTAxis h = let fh = get_fptr h+                      fh2 = castForeignPtr fh+                  in cast_fptr_to_obj fh2
+ src/HROOT/Hist/TAxis/Interface.hs-boot view
@@ -0,0 +1,3 @@+module HROOT.Hist.TAxis.Interface where++class ITAxis a
+ src/HROOT/Hist/TAxis/RawType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++module HROOT.Hist.TAxis.RawType where+++import Foreign.ForeignPtr+import FFICXX.Runtime.Cast  ++data RawTAxis+newtype TAxis = TAxis (ForeignPtr RawTAxis) deriving (Eq, Ord, Show)+instance FPtr TAxis where+   type Raw TAxis = RawTAxis+   get_fptr (TAxis fptr) = fptr+   cast_fptr_to_obj = TAxis
+ src/HROOT/Hist/TF1.hs view
@@ -0,0 +1,28 @@+module HROOT.Hist.TF1+  (+    TF1(..)+  , ITF1(..)+  , upcastTF1+  , downcastTF1+  , newTF1+  , tF1GetChisquare+  , tF1GetHistogram+  , tF1GetParent+  , tF1GetXaxis+  , tF1GetYaxis+  , tF1GetZaxis+  , tF1DerivativeError+  , tF1InitStandardFunctions+  , tF1GetCurrent+  , tF1AbsValue+  , tF1RejectPoint+  , tF1RejectedPoint+  , tF1SetCurrent+  , tF1CalcGaussLegendreSamplingPoints +  ) where++import HROOT.Hist.TF1.RawType+import HROOT.Hist.TF1.Interface+import HROOT.Hist.TF1.Implementation++
+ src/HROOT/Hist/TF1/Cast.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeFamilies, +             MultiParamTypeClasses, OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TF1.Cast where+++import Foreign.Ptr+import Foreign.ForeignPtr (castForeignPtr, newForeignPtr_)+import Foreign.ForeignPtr.Unsafe+import FFICXX.Runtime.Cast+import System.IO.Unsafe++import HROOT.Hist.TF1.RawType+import HROOT.Hist.TF1.Interface++instance (ITF1 a, FPtr a) => Castable a (Ptr RawTF1) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ ++instance Castable TF1 (Ptr RawTF1) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+ src/HROOT/Hist/TF1/FFI.hsc view
@@ -0,0 +1,358 @@+{-# LANGUAGE ForeignFunctionInterface #-}++-- module HROOT.Class.FFI where++module HROOT.Hist.TF1.FFI where+++import Foreign.C            +import Foreign.Ptr++-- import HROOT.Class.Interface++-- #include ""++import HROOT.Hist.TF1.RawType+import HROOT.Core.TObject.RawType+import HROOT.Core.TClass.RawType+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TAxis.RawType++#include "HROOTHistTF1.h"++foreign import ccall "HROOTHistTF1.h TF1_Compile" c_tf1_compile +  :: (Ptr RawTF1) -> CString -> IO CInt++foreign import ccall "HROOTHistTF1.h TF1_Clear" c_tf1_clear +  :: (Ptr RawTF1) -> CString -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_DefinedValue" c_tf1_definedvalue +  :: (Ptr RawTF1) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTF1.h TF1_Eval" c_tf1_eval +  :: (Ptr RawTF1) -> CDouble -> CDouble -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTF1.h TF1_EvalParOld" c_tf1_evalparold +  :: (Ptr RawTF1) -> (Ptr CDouble) -> (Ptr CDouble) -> IO CDouble++foreign import ccall "HROOTHistTF1.h TF1_EvalPar" c_tf1_evalpar +  :: (Ptr RawTF1) -> (Ptr CDouble) -> (Ptr CDouble) -> IO CDouble++foreign import ccall "HROOTHistTF1.h TF1_GetNdim" c_tf1_getndim +  :: (Ptr RawTF1) -> IO CInt++foreign import ccall "HROOTHistTF1.h TF1_GetNpar" c_tf1_getnpar +  :: (Ptr RawTF1) -> IO CInt++foreign import ccall "HROOTHistTF1.h TF1_GetNumber" c_tf1_getnumber +  :: (Ptr RawTF1) -> IO CInt++foreign import ccall "HROOTHistTF1.h TF1_GetParNumber" c_tf1_getparnumber +  :: (Ptr RawTF1) -> CString -> IO CInt++foreign import ccall "HROOTHistTF1.h TF1_IsLinear" c_tf1_islinear +  :: (Ptr RawTF1) -> IO CInt++foreign import ccall "HROOTHistTF1.h TF1_IsNormalized" c_tf1_isnormalized +  :: (Ptr RawTF1) -> IO CInt++foreign import ccall "HROOTHistTF1.h TF1_SetNumber" c_tf1_setnumber +  :: (Ptr RawTF1) -> CInt -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_SetParameter" c_tf1_setparameter +  :: (Ptr RawTF1) -> CString -> CDouble -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_SetParameters" c_tf1_setparameters +  :: (Ptr RawTF1) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_SetParName" c_tf1_setparname +  :: (Ptr RawTF1) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_SetParNames" c_tf1_setparnames +  :: (Ptr RawTF1) -> CString -> CString -> CString -> CString -> CString -> CString -> CString -> CString -> CString -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_Update" c_tf1_update +  :: (Ptr RawTF1) -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_GetLineColor" c_tf1_getlinecolor +  :: (Ptr RawTF1) -> IO CInt++foreign import ccall "HROOTHistTF1.h TF1_GetLineStyle" c_tf1_getlinestyle +  :: (Ptr RawTF1) -> IO CInt++foreign import ccall "HROOTHistTF1.h TF1_GetLineWidth" c_tf1_getlinewidth +  :: (Ptr RawTF1) -> IO CInt++foreign import ccall "HROOTHistTF1.h TF1_ResetAttLine" c_tf1_resetattline +  :: (Ptr RawTF1) -> CString -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_SetLineAttributes" c_tf1_setlineattributes +  :: (Ptr RawTF1) -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_SetLineColor" c_tf1_setlinecolor +  :: (Ptr RawTF1) -> CInt -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_SetLineStyle" c_tf1_setlinestyle +  :: (Ptr RawTF1) -> CInt -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_SetLineWidth" c_tf1_setlinewidth +  :: (Ptr RawTF1) -> CInt -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_SetFillColor" c_tf1_setfillcolor +  :: (Ptr RawTF1) -> CInt -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_SetFillStyle" c_tf1_setfillstyle +  :: (Ptr RawTF1) -> CInt -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_GetMarkerColor" c_tf1_getmarkercolor +  :: (Ptr RawTF1) -> IO CInt++foreign import ccall "HROOTHistTF1.h TF1_GetMarkerStyle" c_tf1_getmarkerstyle +  :: (Ptr RawTF1) -> IO CInt++foreign import ccall "HROOTHistTF1.h TF1_GetMarkerSize" c_tf1_getmarkersize +  :: (Ptr RawTF1) -> IO CDouble++foreign import ccall "HROOTHistTF1.h TF1_ResetAttMarker" c_tf1_resetattmarker +  :: (Ptr RawTF1) -> CString -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_SetMarkerAttributes" c_tf1_setmarkerattributes +  :: (Ptr RawTF1) -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_SetMarkerColor" c_tf1_setmarkercolor +  :: (Ptr RawTF1) -> CInt -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_SetMarkerStyle" c_tf1_setmarkerstyle +  :: (Ptr RawTF1) -> CInt -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_SetMarkerSize" c_tf1_setmarkersize +  :: (Ptr RawTF1) -> CInt -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_SetName" c_tf1_setname +  :: (Ptr RawTF1) -> CString -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_SetNameTitle" c_tf1_setnametitle +  :: (Ptr RawTF1) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_SetTitle" c_tf1_settitle +  :: (Ptr RawTF1) -> CString -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_Draw" c_tf1_draw +  :: (Ptr RawTF1) -> CString -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_FindObject" c_tf1_findobject +  :: (Ptr RawTF1) -> CString -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTF1.h TF1_GetName" c_tf1_getname +  :: (Ptr RawTF1) -> IO CString++foreign import ccall "HROOTHistTF1.h TF1_IsA" c_tf1_isa +  :: (Ptr RawTF1) -> IO (Ptr RawTClass)++foreign import ccall "HROOTHistTF1.h TF1_Paint" c_tf1_paint +  :: (Ptr RawTF1) -> CString -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_printObj" c_tf1_printobj +  :: (Ptr RawTF1) -> CString -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_SaveAs" c_tf1_saveas +  :: (Ptr RawTF1) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_Write" c_tf1_write +  :: (Ptr RawTF1) -> CString -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTF1.h TF1_delete" c_tf1_delete +  :: (Ptr RawTF1) -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_newTF1" c_tf1_newtf1 +  :: CString -> CString -> CDouble -> CDouble -> IO (Ptr RawTF1)++foreign import ccall "HROOTHistTF1.h TF1_Derivative" c_tf1_derivative +  :: (Ptr RawTF1) -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTF1.h TF1_Derivative2" c_tf1_derivative2 +  :: (Ptr RawTF1) -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTF1.h TF1_Derivative3" c_tf1_derivative3 +  :: (Ptr RawTF1) -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTF1.h TF1_tF1DerivativeError" c_tf1_tf1derivativeerror +  :: IO CDouble++foreign import ccall "HROOTHistTF1.h TF1_drawCopyTF1" c_tf1_drawcopytf1 +  :: (Ptr RawTF1) -> CString -> IO (Ptr RawTF1)++foreign import ccall "HROOTHistTF1.h TF1_DrawDerivative" c_tf1_drawderivative +  :: (Ptr RawTF1) -> CString -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTF1.h TF1_DrawIntegral" c_tf1_drawintegral +  :: (Ptr RawTF1) -> CString -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTF1.h TF1_DrawF1" c_tf1_drawf1 +  :: (Ptr RawTF1) -> CString -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_FixParameter" c_tf1_fixparameter +  :: (Ptr RawTF1) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_tF1GetChisquare" c_tf1_tf1getchisquare +  :: (Ptr RawTF1) -> IO CDouble++foreign import ccall "HROOTHistTF1.h TF1_tF1GetHistogram" c_tf1_tf1gethistogram +  :: (Ptr RawTF1) -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTF1.h TF1_getMaximumTF1" c_tf1_getmaximumtf1 +  :: (Ptr RawTF1) -> CDouble -> CDouble -> CDouble -> CDouble -> CInt -> IO CDouble++foreign import ccall "HROOTHistTF1.h TF1_getMinimumTF1" c_tf1_getminimumtf1 +  :: (Ptr RawTF1) -> CDouble -> CDouble -> CDouble -> CDouble -> CInt -> IO CDouble++foreign import ccall "HROOTHistTF1.h TF1_GetMaximumX" c_tf1_getmaximumx +  :: (Ptr RawTF1) -> CDouble -> CDouble -> CDouble -> CDouble -> CInt -> IO CDouble++foreign import ccall "HROOTHistTF1.h TF1_GetMinimumX" c_tf1_getminimumx +  :: (Ptr RawTF1) -> CDouble -> CDouble -> CDouble -> CDouble -> CInt -> IO CDouble++foreign import ccall "HROOTHistTF1.h TF1_GetNDF" c_tf1_getndf +  :: (Ptr RawTF1) -> IO CInt++foreign import ccall "HROOTHistTF1.h TF1_GetNpx" c_tf1_getnpx +  :: (Ptr RawTF1) -> IO CInt++foreign import ccall "HROOTHistTF1.h TF1_GetNumberFreeParameters" c_tf1_getnumberfreeparameters +  :: (Ptr RawTF1) -> IO CInt++foreign import ccall "HROOTHistTF1.h TF1_GetNumberFitPoints" c_tf1_getnumberfitpoints +  :: (Ptr RawTF1) -> IO CInt++foreign import ccall "HROOTHistTF1.h TF1_tF1GetParent" c_tf1_tf1getparent +  :: (Ptr RawTF1) -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTF1.h TF1_GetParError" c_tf1_getparerror +  :: (Ptr RawTF1) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTF1.h TF1_GetProb" c_tf1_getprob +  :: (Ptr RawTF1) -> IO CDouble++foreign import ccall "HROOTHistTF1.h TF1_getQuantilesTF1" c_tf1_getquantilestf1 +  :: (Ptr RawTF1) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTF1.h TF1_getRandomTF1" c_tf1_getrandomtf1 +  :: (Ptr RawTF1) -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTF1.h TF1_GetSave" c_tf1_getsave +  :: (Ptr RawTF1) -> (Ptr CDouble) -> IO CDouble++foreign import ccall "HROOTHistTF1.h TF1_GetX" c_tf1_getx +  :: (Ptr RawTF1) -> CDouble -> CDouble -> CDouble -> CDouble -> CInt -> IO CDouble++foreign import ccall "HROOTHistTF1.h TF1_GetXmin" c_tf1_getxmin +  :: (Ptr RawTF1) -> IO CDouble++foreign import ccall "HROOTHistTF1.h TF1_GetXmax" c_tf1_getxmax +  :: (Ptr RawTF1) -> IO CDouble++foreign import ccall "HROOTHistTF1.h TF1_tF1GetXaxis" c_tf1_tf1getxaxis +  :: (Ptr RawTF1) -> IO (Ptr RawTAxis)++foreign import ccall "HROOTHistTF1.h TF1_tF1GetYaxis" c_tf1_tf1getyaxis +  :: (Ptr RawTF1) -> IO (Ptr RawTAxis)++foreign import ccall "HROOTHistTF1.h TF1_tF1GetZaxis" c_tf1_tf1getzaxis +  :: (Ptr RawTF1) -> IO (Ptr RawTAxis)++foreign import ccall "HROOTHistTF1.h TF1_GradientPar" c_tf1_gradientpar +  :: (Ptr RawTF1) -> CInt -> (Ptr CDouble) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTF1.h TF1_InitArgs" c_tf1_initargs +  :: (Ptr RawTF1) -> (Ptr CDouble) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_tF1InitStandardFunctions" c_tf1_tf1initstandardfunctions +  :: IO ()++foreign import ccall "HROOTHistTF1.h TF1_IntegralTF1" c_tf1_integraltf1 +  :: (Ptr RawTF1) -> CDouble -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTF1.h TF1_IntegralError" c_tf1_integralerror +  :: (Ptr RawTF1) -> CDouble -> CDouble -> (Ptr CDouble) -> (Ptr CDouble) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTF1.h TF1_IntegralFast" c_tf1_integralfast +  :: (Ptr RawTF1) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CDouble -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTF1.h TF1_IsInside" c_tf1_isinside +  :: (Ptr RawTF1) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTF1.h TF1_ReleaseParameter" c_tf1_releaseparameter +  :: (Ptr RawTF1) -> CInt -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_SetChisquare" c_tf1_setchisquare +  :: (Ptr RawTF1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_setMaximumTF1" c_tf1_setmaximumtf1 +  :: (Ptr RawTF1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_setMinimumTF1" c_tf1_setminimumtf1 +  :: (Ptr RawTF1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_SetNDF" c_tf1_setndf +  :: (Ptr RawTF1) -> CInt -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_SetNumberFitPoints" c_tf1_setnumberfitpoints +  :: (Ptr RawTF1) -> CInt -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_SetNpx" c_tf1_setnpx +  :: (Ptr RawTF1) -> CInt -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_SetParError" c_tf1_setparerror +  :: (Ptr RawTF1) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_SetParErrors" c_tf1_setparerrors +  :: (Ptr RawTF1) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_SetParLimits" c_tf1_setparlimits +  :: (Ptr RawTF1) -> CInt -> CDouble -> CDouble -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_SetParent" c_tf1_setparent +  :: (Ptr RawTF1) -> (Ptr RawTObject) -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_setRange1" c_tf1_setrange1 +  :: (Ptr RawTF1) -> CDouble -> CDouble -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_setRange2" c_tf1_setrange2 +  :: (Ptr RawTF1) -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_setRange3" c_tf1_setrange3 +  :: (Ptr RawTF1) -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_SetSavedPoint" c_tf1_setsavedpoint +  :: (Ptr RawTF1) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_tF1GetCurrent" c_tf1_tf1getcurrent +  :: IO (Ptr RawTF1)++foreign import ccall "HROOTHistTF1.h TF1_tF1AbsValue" c_tf1_tf1absvalue +  :: CInt -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_tF1RejectPoint" c_tf1_tf1rejectpoint +  :: CInt -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_tF1RejectedPoint" c_tf1_tf1rejectedpoint +  :: IO CInt++foreign import ccall "HROOTHistTF1.h TF1_tF1SetCurrent" c_tf1_tf1setcurrent +  :: (Ptr RawTF1) -> IO ()++foreign import ccall "HROOTHistTF1.h TF1_Moment" c_tf1_moment +  :: (Ptr RawTF1) -> CDouble -> CDouble -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTF1.h TF1_CentralMoment" c_tf1_centralmoment +  :: (Ptr RawTF1) -> CDouble -> CDouble -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTF1.h TF1_Mean" c_tf1_mean +  :: (Ptr RawTF1) -> CDouble -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTF1.h TF1_Variance" c_tf1_variance +  :: (Ptr RawTF1) -> CDouble -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTF1.h TF1_tF1CalcGaussLegendreSamplingPoints" c_tf1_tf1calcgausslegendresamplingpoints +  :: CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CDouble -> IO ()+
+ src/HROOT/Hist/TF1/Implementation.hs view
@@ -0,0 +1,314 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, +             OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TF1.Implementation where+++import FFICXX.Runtime.Cast++import HROOT.Hist.TF1.RawType+import HROOT.Hist.TF1.FFI+import HROOT.Hist.TF1.Interface+import HROOT.Hist.TF1.Cast+import HROOT.Core.TClass.RawType+import HROOT.Core.TClass.Cast+import HROOT.Core.TClass.Interface+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH1.Cast+import HROOT.Hist.TH1.Interface+import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.Cast+import HROOT.Hist.TAxis.Interface+import HROOT.Hist.TFormula.RawType+import HROOT.Hist.TFormula.Cast+import HROOT.Hist.TFormula.Interface+import HROOT.Core.TAttLine.RawType+import HROOT.Core.TAttLine.Cast+import HROOT.Core.TAttLine.Interface+import HROOT.Core.TAttFill.RawType+import HROOT.Core.TAttFill.Cast+import HROOT.Core.TAttFill.Interface+import HROOT.Core.TAttMarker.RawType+import HROOT.Core.TAttMarker.Cast+import HROOT.Core.TAttMarker.Interface+import HROOT.Core.TNamed.RawType+import HROOT.Core.TNamed.Cast+import HROOT.Core.TNamed.Interface+import HROOT.Core.TObject.RawType+import HROOT.Core.TObject.Cast+import HROOT.Core.TObject.Interface+import HROOT.Core.Deletable.RawType+import HROOT.Core.Deletable.Cast+import HROOT.Core.Deletable.Interface++import Data.Word+import Foreign.C+import Foreign.Ptr +import Foreign.ForeignPtr++import System.IO.Unsafe+++instance ITF1 TF1 where+  derivative = xform3 c_tf1_derivative+  derivative2 = xform3 c_tf1_derivative2+  derivative3 = xform3 c_tf1_derivative3+  drawCopyTF1 = xform1 c_tf1_drawcopytf1+  drawDerivative = xform1 c_tf1_drawderivative+  drawIntegral = xform1 c_tf1_drawintegral+  drawF1 = xform4 c_tf1_drawf1+  fixParameter = xform2 c_tf1_fixparameter+  getMaximumTF1 = xform5 c_tf1_getmaximumtf1+  getMinimumTF1 = xform5 c_tf1_getminimumtf1+  getMaximumX = xform5 c_tf1_getmaximumx+  getMinimumX = xform5 c_tf1_getminimumx+  getNDF = xform0 c_tf1_getndf+  getNpx = xform0 c_tf1_getnpx+  getNumberFreeParameters = xform0 c_tf1_getnumberfreeparameters+  getNumberFitPoints = xform0 c_tf1_getnumberfitpoints+  getParError = xform1 c_tf1_getparerror+  getProb = xform0 c_tf1_getprob+  getQuantilesTF1 = xform3 c_tf1_getquantilestf1+  getRandomTF1 = xform2 c_tf1_getrandomtf1+  getSave = xform1 c_tf1_getsave+  getX = xform5 c_tf1_getx+  getXmin = xform0 c_tf1_getxmin+  getXmax = xform0 c_tf1_getxmax+  gradientPar = xform3 c_tf1_gradientpar+  initArgs = xform2 c_tf1_initargs+  integralTF1 = xform4 c_tf1_integraltf1+  integralError = xform5 c_tf1_integralerror+  integralFast = xform7 c_tf1_integralfast+  isInside = xform1 c_tf1_isinside+  releaseParameter = xform1 c_tf1_releaseparameter+  setChisquare = xform1 c_tf1_setchisquare+  setMaximumTF1 = xform1 c_tf1_setmaximumtf1+  setMinimumTF1 = xform1 c_tf1_setminimumtf1+  setNDF = xform1 c_tf1_setndf+  setNumberFitPoints = xform1 c_tf1_setnumberfitpoints+  setNpx = xform1 c_tf1_setnpx+  setParError = xform2 c_tf1_setparerror+  setParErrors = xform1 c_tf1_setparerrors+  setParLimits = xform3 c_tf1_setparlimits+  setParent = xform1 c_tf1_setparent+  setRange1 = xform2 c_tf1_setrange1+  setRange2 = xform4 c_tf1_setrange2+  setRange3 = xform6 c_tf1_setrange3+  setSavedPoint = xform2 c_tf1_setsavedpoint+  moment = xform5 c_tf1_moment+  centralMoment = xform5 c_tf1_centralmoment+  mean = xform4 c_tf1_mean+  variance = xform4 c_tf1_variance+instance ITFormula TF1 where+  compile = xform1 c_tf1_compile+  clear = xform1 c_tf1_clear+  definedValue = xform1 c_tf1_definedvalue+  eval = xform4 c_tf1_eval+  evalParOld = xform2 c_tf1_evalparold+  evalPar = xform2 c_tf1_evalpar+  getNdim = xform0 c_tf1_getndim+  getNpar = xform0 c_tf1_getnpar+  getNumber = xform0 c_tf1_getnumber+  getParNumber = xform1 c_tf1_getparnumber+  isLinear = xform0 c_tf1_islinear+  isNormalized = xform0 c_tf1_isnormalized+  setNumber = xform1 c_tf1_setnumber+  setParameter = xform2 c_tf1_setparameter+  setParameters = xform1 c_tf1_setparameters+  setParName = xform2 c_tf1_setparname+  setParNames = xform11 c_tf1_setparnames+  update = xform0 c_tf1_update+instance ITAttLine TF1 where+  getLineColor = xform0 c_tf1_getlinecolor+  getLineStyle = xform0 c_tf1_getlinestyle+  getLineWidth = xform0 c_tf1_getlinewidth+  resetAttLine = xform1 c_tf1_resetattline+  setLineAttributes = xform0 c_tf1_setlineattributes+  setLineColor = xform1 c_tf1_setlinecolor+  setLineStyle = xform1 c_tf1_setlinestyle+  setLineWidth = xform1 c_tf1_setlinewidth+instance ITAttFill TF1 where+  setFillColor = xform1 c_tf1_setfillcolor+  setFillStyle = xform1 c_tf1_setfillstyle+instance ITAttMarker TF1 where+  getMarkerColor = xform0 c_tf1_getmarkercolor+  getMarkerStyle = xform0 c_tf1_getmarkerstyle+  getMarkerSize = xform0 c_tf1_getmarkersize+  resetAttMarker = xform1 c_tf1_resetattmarker+  setMarkerAttributes = xform0 c_tf1_setmarkerattributes+  setMarkerColor = xform1 c_tf1_setmarkercolor+  setMarkerStyle = xform1 c_tf1_setmarkerstyle+  setMarkerSize = xform1 c_tf1_setmarkersize+instance ITNamed TF1 where+  setName = xform1 c_tf1_setname+  setNameTitle = xform2 c_tf1_setnametitle+  setTitle = xform1 c_tf1_settitle+instance ITObject TF1 where+  draw = xform1 c_tf1_draw+  findObject = xform1 c_tf1_findobject+  getName = xform0 c_tf1_getname+  isA = xform0 c_tf1_isa+  paint = xform1 c_tf1_paint+  printObj = xform1 c_tf1_printobj+  saveAs = xform2 c_tf1_saveas+  write = xform3 c_tf1_write+instance IDeletable TF1 where+  delete = xform0 c_tf1_delete++instance ITF1 (Exist TF1) where+  derivative (ETF1 x) = derivative x+  derivative2 (ETF1 x) = derivative2 x+  derivative3 (ETF1 x) = derivative3 x+  drawCopyTF1 (ETF1 x) a1 = return . ETF1 =<< drawCopyTF1 x a1+  drawDerivative (ETF1 x) = drawDerivative x+  drawIntegral (ETF1 x) = drawIntegral x+  drawF1 (ETF1 x) = drawF1 x+  fixParameter (ETF1 x) = fixParameter x+  getMaximumTF1 (ETF1 x) = getMaximumTF1 x+  getMinimumTF1 (ETF1 x) = getMinimumTF1 x+  getMaximumX (ETF1 x) = getMaximumX x+  getMinimumX (ETF1 x) = getMinimumX x+  getNDF (ETF1 x) = getNDF x+  getNpx (ETF1 x) = getNpx x+  getNumberFreeParameters (ETF1 x) = getNumberFreeParameters x+  getNumberFitPoints (ETF1 x) = getNumberFitPoints x+  getParError (ETF1 x) = getParError x+  getProb (ETF1 x) = getProb x+  getQuantilesTF1 (ETF1 x) = getQuantilesTF1 x+  getRandomTF1 (ETF1 x) = getRandomTF1 x+  getSave (ETF1 x) = getSave x+  getX (ETF1 x) = getX x+  getXmin (ETF1 x) = getXmin x+  getXmax (ETF1 x) = getXmax x+  gradientPar (ETF1 x) = gradientPar x+  initArgs (ETF1 x) = initArgs x+  integralTF1 (ETF1 x) = integralTF1 x+  integralError (ETF1 x) = integralError x+  integralFast (ETF1 x) = integralFast x+  isInside (ETF1 x) = isInside x+  releaseParameter (ETF1 x) = releaseParameter x+  setChisquare (ETF1 x) = setChisquare x+  setMaximumTF1 (ETF1 x) = setMaximumTF1 x+  setMinimumTF1 (ETF1 x) = setMinimumTF1 x+  setNDF (ETF1 x) = setNDF x+  setNumberFitPoints (ETF1 x) = setNumberFitPoints x+  setNpx (ETF1 x) = setNpx x+  setParError (ETF1 x) = setParError x+  setParErrors (ETF1 x) = setParErrors x+  setParLimits (ETF1 x) = setParLimits x+  setParent (ETF1 x) = setParent x+  setRange1 (ETF1 x) = setRange1 x+  setRange2 (ETF1 x) = setRange2 x+  setRange3 (ETF1 x) = setRange3 x+  setSavedPoint (ETF1 x) = setSavedPoint x+  moment (ETF1 x) = moment x+  centralMoment (ETF1 x) = centralMoment x+  mean (ETF1 x) = mean x+  variance (ETF1 x) = variance x+instance ITFormula (Exist TF1) where+  compile (ETF1 x) = compile x+  clear (ETF1 x) = clear x+  definedValue (ETF1 x) = definedValue x+  eval (ETF1 x) = eval x+  evalParOld (ETF1 x) = evalParOld x+  evalPar (ETF1 x) = evalPar x+  getNdim (ETF1 x) = getNdim x+  getNpar (ETF1 x) = getNpar x+  getNumber (ETF1 x) = getNumber x+  getParNumber (ETF1 x) = getParNumber x+  isLinear (ETF1 x) = isLinear x+  isNormalized (ETF1 x) = isNormalized x+  setNumber (ETF1 x) = setNumber x+  setParameter (ETF1 x) = setParameter x+  setParameters (ETF1 x) = setParameters x+  setParName (ETF1 x) = setParName x+  setParNames (ETF1 x) = setParNames x+  update (ETF1 x) = update x+instance ITAttLine (Exist TF1) where+  getLineColor (ETF1 x) = getLineColor x+  getLineStyle (ETF1 x) = getLineStyle x+  getLineWidth (ETF1 x) = getLineWidth x+  resetAttLine (ETF1 x) = resetAttLine x+  setLineAttributes (ETF1 x) = setLineAttributes x+  setLineColor (ETF1 x) = setLineColor x+  setLineStyle (ETF1 x) = setLineStyle x+  setLineWidth (ETF1 x) = setLineWidth x+instance ITAttFill (Exist TF1) where+  setFillColor (ETF1 x) = setFillColor x+  setFillStyle (ETF1 x) = setFillStyle x+instance ITAttMarker (Exist TF1) where+  getMarkerColor (ETF1 x) = getMarkerColor x+  getMarkerStyle (ETF1 x) = getMarkerStyle x+  getMarkerSize (ETF1 x) = getMarkerSize x+  resetAttMarker (ETF1 x) = resetAttMarker x+  setMarkerAttributes (ETF1 x) = setMarkerAttributes x+  setMarkerColor (ETF1 x) = setMarkerColor x+  setMarkerStyle (ETF1 x) = setMarkerStyle x+  setMarkerSize (ETF1 x) = setMarkerSize x+instance ITNamed (Exist TF1) where+  setName (ETF1 x) = setName x+  setNameTitle (ETF1 x) = setNameTitle x+  setTitle (ETF1 x) = setTitle x+instance ITObject (Exist TF1) where+  draw (ETF1 x) = draw x+  findObject (ETF1 x) = findObject x+  getName (ETF1 x) = getName x+  isA (ETF1 x) = isA x+  paint (ETF1 x) = paint x+  printObj (ETF1 x) = printObj x+  saveAs (ETF1 x) = saveAs x+  write (ETF1 x) = write x+instance IDeletable (Exist TF1) where+  delete (ETF1 x) = delete x+++newTF1 :: CString -> CString -> CDouble -> CDouble -> IO TF1+newTF1 = xform3 c_tf1_newtf1++tF1GetChisquare :: TF1 -> IO CDouble+tF1GetChisquare = xform0 c_tf1_tf1getchisquare++tF1GetHistogram :: TF1 -> IO TH1+tF1GetHistogram = xform0 c_tf1_tf1gethistogram++tF1GetParent :: TF1 -> IO TObject+tF1GetParent = xform0 c_tf1_tf1getparent++tF1GetXaxis :: TF1 -> IO TAxis+tF1GetXaxis = xform0 c_tf1_tf1getxaxis++tF1GetYaxis :: TF1 -> IO TAxis+tF1GetYaxis = xform0 c_tf1_tf1getyaxis++tF1GetZaxis :: TF1 -> IO TAxis+tF1GetZaxis = xform0 c_tf1_tf1getzaxis++tF1DerivativeError :: IO CDouble+tF1DerivativeError = xformnull c_tf1_tf1derivativeerror++tF1InitStandardFunctions :: IO ()+tF1InitStandardFunctions = xformnull c_tf1_tf1initstandardfunctions++tF1GetCurrent :: IO TF1+tF1GetCurrent = xformnull c_tf1_tf1getcurrent++tF1AbsValue :: CInt -> IO ()+tF1AbsValue = xform0 c_tf1_tf1absvalue++tF1RejectPoint :: CInt -> IO ()+tF1RejectPoint = xform0 c_tf1_tf1rejectpoint++tF1RejectedPoint :: IO CInt+tF1RejectedPoint = xformnull c_tf1_tf1rejectedpoint++tF1SetCurrent :: TF1 -> IO ()+tF1SetCurrent = xform0 c_tf1_tf1setcurrent++tF1CalcGaussLegendreSamplingPoints :: CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CDouble -> IO ()+tF1CalcGaussLegendreSamplingPoints = xform3 c_tf1_tf1calcgausslegendresamplingpoints++instance FPtr (Exist TF1) where+  type Raw (Exist TF1) = RawTF1+  get_fptr (ETF1 obj) = castForeignPtr (get_fptr obj)+  cast_fptr_to_obj fptr = ETF1 (cast_fptr_to_obj (fptr :: ForeignPtr RawTF1) :: TF1)
+ src/HROOT/Hist/TF1/Interface.hs view
@@ -0,0 +1,140 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++-- module HROOT.Class.Interface where++module HROOT.Hist.TF1.Interface where+++import Data.Word+import Foreign.C+import Foreign.Ptr+import Foreign.ForeignPtr+import FFICXX.Runtime.Cast++import HROOT.Hist.TF1.RawType+import HROOT.Core.TObject.RawType+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TFormula.Interface+import HROOT.Core.TAttLine.Interface+import HROOT.Core.TAttFill.Interface+import HROOT.Core.TAttMarker.Interface+import HROOT.Core.TObject.Interface+---- ============ ----++++class (ITFormula a,ITAttLine a,ITAttFill a,ITAttMarker a) => ITF1 a where++    derivative :: a -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble ++    derivative2 :: a -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble ++    derivative3 :: a -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble ++    drawCopyTF1 :: a -> CString -> IO a ++    drawDerivative :: a -> CString -> IO TObject ++    drawIntegral :: a -> CString -> IO TObject ++    drawF1 :: a -> CString -> CDouble -> CDouble -> CString -> IO () ++    fixParameter :: a -> CInt -> CDouble -> IO () ++    getMaximumTF1 :: a -> CDouble -> CDouble -> CDouble -> CDouble -> CInt -> IO CDouble ++    getMinimumTF1 :: a -> CDouble -> CDouble -> CDouble -> CDouble -> CInt -> IO CDouble ++    getMaximumX :: a -> CDouble -> CDouble -> CDouble -> CDouble -> CInt -> IO CDouble ++    getMinimumX :: a -> CDouble -> CDouble -> CDouble -> CDouble -> CInt -> IO CDouble ++    getNDF :: a -> IO CInt ++    getNpx :: a -> IO CInt ++    getNumberFreeParameters :: a -> IO CInt ++    getNumberFitPoints :: a -> IO CInt ++    getParError :: a -> CInt -> IO CDouble ++    getProb :: a -> IO CDouble ++    getQuantilesTF1 :: a -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt ++    getRandomTF1 :: a -> CDouble -> CDouble -> IO CDouble ++    getSave :: a -> (Ptr CDouble) -> IO CDouble ++    getX :: a -> CDouble -> CDouble -> CDouble -> CDouble -> CInt -> IO CDouble ++    getXmin :: a -> IO CDouble ++    getXmax :: a -> IO CDouble ++    gradientPar :: a -> CInt -> (Ptr CDouble) -> CDouble -> IO CDouble ++    initArgs :: a -> (Ptr CDouble) -> (Ptr CDouble) -> IO () ++    integralTF1 :: a -> CDouble -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble ++    integralError :: a -> CDouble -> CDouble -> (Ptr CDouble) -> (Ptr CDouble) -> CDouble -> IO CDouble ++    integralFast :: a -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CDouble -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble ++    isInside :: a -> (Ptr CDouble) -> IO CInt ++    releaseParameter :: a -> CInt -> IO () ++    setChisquare :: a -> CDouble -> IO () ++    setMaximumTF1 :: a -> CDouble -> IO () ++    setMinimumTF1 :: a -> CDouble -> IO () ++    setNDF :: a -> CInt -> IO () ++    setNumberFitPoints :: a -> CInt -> IO () ++    setNpx :: a -> CInt -> IO () ++    setParError :: a -> CInt -> CDouble -> IO () ++    setParErrors :: a -> (Ptr CDouble) -> IO () ++    setParLimits :: a -> CInt -> CDouble -> CDouble -> IO () ++    setParent :: (ITObject c0, FPtr c0) => a -> c0 -> IO () ++    setRange1 :: a -> CDouble -> CDouble -> IO () ++    setRange2 :: a -> CDouble -> CDouble -> CDouble -> CDouble -> IO () ++    setRange3 :: a -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> IO () ++    setSavedPoint :: a -> CInt -> CDouble -> IO () ++    moment :: a -> CDouble -> CDouble -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble ++    centralMoment :: a -> CDouble -> CDouble -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble ++    mean :: a -> CDouble -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble ++    variance :: a -> CDouble -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble ++instance Existable TF1 where+  data Exist TF1 = forall a. (FPtr a, ITF1 a) => ETF1 a++upcastTF1 :: (FPtr a, ITF1 a) => a -> TF1+upcastTF1 h = let fh = get_fptr h+                  fh2 :: ForeignPtr RawTF1 = castForeignPtr fh+              in cast_fptr_to_obj fh2++downcastTF1 :: (FPtr a, ITF1 a) => TF1 -> a +downcastTF1 h = let fh = get_fptr h+                    fh2 = castForeignPtr fh+                in cast_fptr_to_obj fh2
+ src/HROOT/Hist/TF1/Interface.hs-boot view
@@ -0,0 +1,3 @@+module HROOT.Hist.TF1.Interface where++class ITF1 a
+ src/HROOT/Hist/TF1/RawType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++module HROOT.Hist.TF1.RawType where+++import Foreign.ForeignPtr+import FFICXX.Runtime.Cast  ++data RawTF1+newtype TF1 = TF1 (ForeignPtr RawTF1) deriving (Eq, Ord, Show)+instance FPtr TF1 where+   type Raw TF1 = RawTF1+   get_fptr (TF1 fptr) = fptr+   cast_fptr_to_obj = TF1
+ src/HROOT/Hist/TFormula.hs view
@@ -0,0 +1,17 @@+module HROOT.Hist.TFormula+  (+    TFormula(..)+  , ITFormula(..)+  , upcastTFormula+  , downcastTFormula+  , newTFormula+  , tFormulaOptimize+  , tFormulaGetParameter+ +  ) where++import HROOT.Hist.TFormula.RawType+import HROOT.Hist.TFormula.Interface+import HROOT.Hist.TFormula.Implementation++
+ src/HROOT/Hist/TFormula/Cast.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeFamilies, +             MultiParamTypeClasses, OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TFormula.Cast where+++import Foreign.Ptr+import Foreign.ForeignPtr (castForeignPtr, newForeignPtr_)+import Foreign.ForeignPtr.Unsafe+import FFICXX.Runtime.Cast+import System.IO.Unsafe++import HROOT.Hist.TFormula.RawType+import HROOT.Hist.TFormula.Interface++instance (ITFormula a, FPtr a) => Castable a (Ptr RawTFormula) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ ++instance Castable TFormula (Ptr RawTFormula) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+ src/HROOT/Hist/TFormula/FFI.hsc view
@@ -0,0 +1,119 @@+{-# LANGUAGE ForeignFunctionInterface #-}++-- module HROOT.Class.FFI where++module HROOT.Hist.TFormula.FFI where+++import Foreign.C            +import Foreign.Ptr++-- import HROOT.Class.Interface++-- #include ""++import HROOT.Hist.TFormula.RawType+import HROOT.Core.TObject.RawType+import HROOT.Core.TClass.RawType++#include "HROOTHistTFormula.h"++foreign import ccall "HROOTHistTFormula.h TFormula_SetName" c_tformula_setname +  :: (Ptr RawTFormula) -> CString -> IO ()++foreign import ccall "HROOTHistTFormula.h TFormula_SetNameTitle" c_tformula_setnametitle +  :: (Ptr RawTFormula) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTFormula.h TFormula_SetTitle" c_tformula_settitle +  :: (Ptr RawTFormula) -> CString -> IO ()++foreign import ccall "HROOTHistTFormula.h TFormula_Draw" c_tformula_draw +  :: (Ptr RawTFormula) -> CString -> IO ()++foreign import ccall "HROOTHistTFormula.h TFormula_FindObject" c_tformula_findobject +  :: (Ptr RawTFormula) -> CString -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTFormula.h TFormula_GetName" c_tformula_getname +  :: (Ptr RawTFormula) -> IO CString++foreign import ccall "HROOTHistTFormula.h TFormula_IsA" c_tformula_isa +  :: (Ptr RawTFormula) -> IO (Ptr RawTClass)++foreign import ccall "HROOTHistTFormula.h TFormula_Paint" c_tformula_paint +  :: (Ptr RawTFormula) -> CString -> IO ()++foreign import ccall "HROOTHistTFormula.h TFormula_printObj" c_tformula_printobj +  :: (Ptr RawTFormula) -> CString -> IO ()++foreign import ccall "HROOTHistTFormula.h TFormula_SaveAs" c_tformula_saveas +  :: (Ptr RawTFormula) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTFormula.h TFormula_Write" c_tformula_write +  :: (Ptr RawTFormula) -> CString -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTFormula.h TFormula_delete" c_tformula_delete +  :: (Ptr RawTFormula) -> IO ()++foreign import ccall "HROOTHistTFormula.h TFormula_newTFormula" c_tformula_newtformula +  :: CString -> CString -> IO (Ptr RawTFormula)++foreign import ccall "HROOTHistTFormula.h TFormula_tFormulaOptimize" c_tformula_tformulaoptimize +  :: (Ptr RawTFormula) -> IO ()++foreign import ccall "HROOTHistTFormula.h TFormula_Compile" c_tformula_compile +  :: (Ptr RawTFormula) -> CString -> IO CInt++foreign import ccall "HROOTHistTFormula.h TFormula_Clear" c_tformula_clear +  :: (Ptr RawTFormula) -> CString -> IO ()++foreign import ccall "HROOTHistTFormula.h TFormula_DefinedValue" c_tformula_definedvalue +  :: (Ptr RawTFormula) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTFormula.h TFormula_Eval" c_tformula_eval +  :: (Ptr RawTFormula) -> CDouble -> CDouble -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTFormula.h TFormula_EvalParOld" c_tformula_evalparold +  :: (Ptr RawTFormula) -> (Ptr CDouble) -> (Ptr CDouble) -> IO CDouble++foreign import ccall "HROOTHistTFormula.h TFormula_EvalPar" c_tformula_evalpar +  :: (Ptr RawTFormula) -> (Ptr CDouble) -> (Ptr CDouble) -> IO CDouble++foreign import ccall "HROOTHistTFormula.h TFormula_GetNdim" c_tformula_getndim +  :: (Ptr RawTFormula) -> IO CInt++foreign import ccall "HROOTHistTFormula.h TFormula_GetNpar" c_tformula_getnpar +  :: (Ptr RawTFormula) -> IO CInt++foreign import ccall "HROOTHistTFormula.h TFormula_GetNumber" c_tformula_getnumber +  :: (Ptr RawTFormula) -> IO CInt++foreign import ccall "HROOTHistTFormula.h TFormula_tFormulaGetParameter" c_tformula_tformulagetparameter +  :: (Ptr RawTFormula) -> CString -> IO CDouble++foreign import ccall "HROOTHistTFormula.h TFormula_GetParNumber" c_tformula_getparnumber +  :: (Ptr RawTFormula) -> CString -> IO CInt++foreign import ccall "HROOTHistTFormula.h TFormula_IsLinear" c_tformula_islinear +  :: (Ptr RawTFormula) -> IO CInt++foreign import ccall "HROOTHistTFormula.h TFormula_IsNormalized" c_tformula_isnormalized +  :: (Ptr RawTFormula) -> IO CInt++foreign import ccall "HROOTHistTFormula.h TFormula_SetNumber" c_tformula_setnumber +  :: (Ptr RawTFormula) -> CInt -> IO ()++foreign import ccall "HROOTHistTFormula.h TFormula_SetParameter" c_tformula_setparameter +  :: (Ptr RawTFormula) -> CString -> CDouble -> IO ()++foreign import ccall "HROOTHistTFormula.h TFormula_SetParameters" c_tformula_setparameters +  :: (Ptr RawTFormula) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTFormula.h TFormula_SetParName" c_tformula_setparname +  :: (Ptr RawTFormula) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTFormula.h TFormula_SetParNames" c_tformula_setparnames +  :: (Ptr RawTFormula) -> CString -> CString -> CString -> CString -> CString -> CString -> CString -> CString -> CString -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTFormula.h TFormula_Update" c_tformula_update +  :: (Ptr RawTFormula) -> IO ()+
+ src/HROOT/Hist/TFormula/Implementation.hs view
@@ -0,0 +1,120 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, +             OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TFormula.Implementation where+++import FFICXX.Runtime.Cast++import HROOT.Hist.TFormula.RawType+import HROOT.Hist.TFormula.FFI+import HROOT.Hist.TFormula.Interface+import HROOT.Hist.TFormula.Cast+import HROOT.Core.TClass.RawType+import HROOT.Core.TClass.Cast+import HROOT.Core.TClass.Interface+import HROOT.Core.TNamed.RawType+import HROOT.Core.TNamed.Cast+import HROOT.Core.TNamed.Interface+import HROOT.Core.TObject.RawType+import HROOT.Core.TObject.Cast+import HROOT.Core.TObject.Interface+import HROOT.Core.Deletable.RawType+import HROOT.Core.Deletable.Cast+import HROOT.Core.Deletable.Interface++import Data.Word+import Foreign.C+import Foreign.Ptr +import Foreign.ForeignPtr++import System.IO.Unsafe+++instance ITFormula TFormula where+  compile = xform1 c_tformula_compile+  clear = xform1 c_tformula_clear+  definedValue = xform1 c_tformula_definedvalue+  eval = xform4 c_tformula_eval+  evalParOld = xform2 c_tformula_evalparold+  evalPar = xform2 c_tformula_evalpar+  getNdim = xform0 c_tformula_getndim+  getNpar = xform0 c_tformula_getnpar+  getNumber = xform0 c_tformula_getnumber+  getParNumber = xform1 c_tformula_getparnumber+  isLinear = xform0 c_tformula_islinear+  isNormalized = xform0 c_tformula_isnormalized+  setNumber = xform1 c_tformula_setnumber+  setParameter = xform2 c_tformula_setparameter+  setParameters = xform1 c_tformula_setparameters+  setParName = xform2 c_tformula_setparname+  setParNames = xform11 c_tformula_setparnames+  update = xform0 c_tformula_update+instance ITNamed TFormula where+  setName = xform1 c_tformula_setname+  setNameTitle = xform2 c_tformula_setnametitle+  setTitle = xform1 c_tformula_settitle+instance ITObject TFormula where+  draw = xform1 c_tformula_draw+  findObject = xform1 c_tformula_findobject+  getName = xform0 c_tformula_getname+  isA = xform0 c_tformula_isa+  paint = xform1 c_tformula_paint+  printObj = xform1 c_tformula_printobj+  saveAs = xform2 c_tformula_saveas+  write = xform3 c_tformula_write+instance IDeletable TFormula where+  delete = xform0 c_tformula_delete++instance ITFormula (Exist TFormula) where+  compile (ETFormula x) = compile x+  clear (ETFormula x) = clear x+  definedValue (ETFormula x) = definedValue x+  eval (ETFormula x) = eval x+  evalParOld (ETFormula x) = evalParOld x+  evalPar (ETFormula x) = evalPar x+  getNdim (ETFormula x) = getNdim x+  getNpar (ETFormula x) = getNpar x+  getNumber (ETFormula x) = getNumber x+  getParNumber (ETFormula x) = getParNumber x+  isLinear (ETFormula x) = isLinear x+  isNormalized (ETFormula x) = isNormalized x+  setNumber (ETFormula x) = setNumber x+  setParameter (ETFormula x) = setParameter x+  setParameters (ETFormula x) = setParameters x+  setParName (ETFormula x) = setParName x+  setParNames (ETFormula x) = setParNames x+  update (ETFormula x) = update x+instance ITNamed (Exist TFormula) where+  setName (ETFormula x) = setName x+  setNameTitle (ETFormula x) = setNameTitle x+  setTitle (ETFormula x) = setTitle x+instance ITObject (Exist TFormula) where+  draw (ETFormula x) = draw x+  findObject (ETFormula x) = findObject x+  getName (ETFormula x) = getName x+  isA (ETFormula x) = isA x+  paint (ETFormula x) = paint x+  printObj (ETFormula x) = printObj x+  saveAs (ETFormula x) = saveAs x+  write (ETFormula x) = write x+instance IDeletable (Exist TFormula) where+  delete (ETFormula x) = delete x+++newTFormula :: CString -> CString -> IO TFormula+newTFormula = xform1 c_tformula_newtformula++tFormulaOptimize :: TFormula -> IO ()+tFormulaOptimize = xform0 c_tformula_tformulaoptimize++tFormulaGetParameter :: TFormula -> CString -> IO CDouble+tFormulaGetParameter = xform1 c_tformula_tformulagetparameter++++instance FPtr (Exist TFormula) where+  type Raw (Exist TFormula) = RawTFormula+  get_fptr (ETFormula obj) = castForeignPtr (get_fptr obj)+  cast_fptr_to_obj fptr = ETFormula (cast_fptr_to_obj (fptr :: ForeignPtr RawTFormula) :: TFormula)
+ src/HROOT/Hist/TFormula/Interface.hs view
@@ -0,0 +1,72 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++-- module HROOT.Class.Interface where++module HROOT.Hist.TFormula.Interface where+++import Data.Word+import Foreign.C+import Foreign.Ptr+import Foreign.ForeignPtr+import FFICXX.Runtime.Cast++import HROOT.Hist.TFormula.RawType++import HROOT.Core.TNamed.Interface+---- ============ ----++++class (ITNamed a) => ITFormula a where++    compile :: a -> CString -> IO CInt ++    clear :: a -> CString -> IO () ++    definedValue :: a -> CInt -> IO CDouble ++    eval :: a -> CDouble -> CDouble -> CDouble -> CDouble -> IO CDouble ++    evalParOld :: a -> (Ptr CDouble) -> (Ptr CDouble) -> IO CDouble ++    evalPar :: a -> (Ptr CDouble) -> (Ptr CDouble) -> IO CDouble ++    getNdim :: a -> IO CInt ++    getNpar :: a -> IO CInt ++    getNumber :: a -> IO CInt ++    getParNumber :: a -> CString -> IO CInt ++    isLinear :: a -> IO CInt ++    isNormalized :: a -> IO CInt ++    setNumber :: a -> CInt -> IO () ++    setParameter :: a -> CString -> CDouble -> IO () ++    setParameters :: a -> (Ptr CDouble) -> IO () ++    setParName :: a -> CInt -> CString -> IO () ++    setParNames :: a -> CString -> CString -> CString -> CString -> CString -> CString -> CString -> CString -> CString -> CString -> CString -> IO () ++    update :: a -> IO () ++instance Existable TFormula where+  data Exist TFormula = forall a. (FPtr a, ITFormula a) => ETFormula a++upcastTFormula :: (FPtr a, ITFormula a) => a -> TFormula+upcastTFormula h = let fh = get_fptr h+                       fh2 :: ForeignPtr RawTFormula = castForeignPtr fh+                   in cast_fptr_to_obj fh2++downcastTFormula :: (FPtr a, ITFormula a) => TFormula -> a +downcastTFormula h = let fh = get_fptr h+                         fh2 = castForeignPtr fh+                     in cast_fptr_to_obj fh2
+ src/HROOT/Hist/TFormula/RawType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++module HROOT.Hist.TFormula.RawType where+++import Foreign.ForeignPtr+import FFICXX.Runtime.Cast  ++data RawTFormula+newtype TFormula = TFormula (ForeignPtr RawTFormula) deriving (Eq, Ord, Show)+instance FPtr TFormula where+   type Raw TFormula = RawTFormula+   get_fptr (TFormula fptr) = fptr+   cast_fptr_to_obj = TFormula
+ src/HROOT/Hist/TGraph.hs view
@@ -0,0 +1,26 @@+module HROOT.Hist.TGraph+  (+    TGraph(..)+  , ITGraph(..)+  , upcastTGraph+  , downcastTGraph+  , newTGraph+  , tGraphGetEditable+  , tGraphGetFunction+  , tGraphGetHistogram+  , tGraphGetMaxSize+  , tGraphGetN+  , tGraphGetMaximum+  , tGraphGetMinimum+  , tGraphGetXaxis+  , tGraphGetYaxis+  , tGraphPaintGraph+  , tGraphPaintGrapHist+ +  ) where++import HROOT.Hist.TGraph.RawType+import HROOT.Hist.TGraph.Interface+import HROOT.Hist.TGraph.Implementation++
+ src/HROOT/Hist/TGraph/Cast.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeFamilies, +             MultiParamTypeClasses, OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TGraph.Cast where+++import Foreign.Ptr+import Foreign.ForeignPtr (castForeignPtr, newForeignPtr_)+import Foreign.ForeignPtr.Unsafe+import FFICXX.Runtime.Cast+import System.IO.Unsafe++import HROOT.Hist.TGraph.RawType+import HROOT.Hist.TGraph.Interface++instance (ITGraph a, FPtr a) => Castable a (Ptr RawTGraph) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ ++instance Castable TGraph (Ptr RawTGraph) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+ src/HROOT/Hist/TGraph/FFI.hsc view
@@ -0,0 +1,245 @@+{-# LANGUAGE ForeignFunctionInterface #-}++-- module HROOT.Class.FFI where++module HROOT.Hist.TGraph.FFI where+++import Foreign.C            +import Foreign.Ptr++-- import HROOT.Class.Interface++-- #include ""++import HROOT.Hist.TGraph.RawType+import HROOT.Core.TObject.RawType+import HROOT.Core.TClass.RawType+import HROOT.Hist.TF1.RawType+import HROOT.Hist.TH1F.RawType+import HROOT.Hist.TAxis.RawType++#include "HROOTHistTGraph.h"++foreign import ccall "HROOTHistTGraph.h TGraph_SetName" c_tgraph_setname +  :: (Ptr RawTGraph) -> CString -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_SetNameTitle" c_tgraph_setnametitle +  :: (Ptr RawTGraph) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_SetTitle" c_tgraph_settitle +  :: (Ptr RawTGraph) -> CString -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_GetLineColor" c_tgraph_getlinecolor +  :: (Ptr RawTGraph) -> IO CInt++foreign import ccall "HROOTHistTGraph.h TGraph_GetLineStyle" c_tgraph_getlinestyle +  :: (Ptr RawTGraph) -> IO CInt++foreign import ccall "HROOTHistTGraph.h TGraph_GetLineWidth" c_tgraph_getlinewidth +  :: (Ptr RawTGraph) -> IO CInt++foreign import ccall "HROOTHistTGraph.h TGraph_ResetAttLine" c_tgraph_resetattline +  :: (Ptr RawTGraph) -> CString -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_SetLineAttributes" c_tgraph_setlineattributes +  :: (Ptr RawTGraph) -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_SetLineColor" c_tgraph_setlinecolor +  :: (Ptr RawTGraph) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_SetLineStyle" c_tgraph_setlinestyle +  :: (Ptr RawTGraph) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_SetLineWidth" c_tgraph_setlinewidth +  :: (Ptr RawTGraph) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_SetFillColor" c_tgraph_setfillcolor +  :: (Ptr RawTGraph) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_SetFillStyle" c_tgraph_setfillstyle +  :: (Ptr RawTGraph) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_GetMarkerColor" c_tgraph_getmarkercolor +  :: (Ptr RawTGraph) -> IO CInt++foreign import ccall "HROOTHistTGraph.h TGraph_GetMarkerStyle" c_tgraph_getmarkerstyle +  :: (Ptr RawTGraph) -> IO CInt++foreign import ccall "HROOTHistTGraph.h TGraph_GetMarkerSize" c_tgraph_getmarkersize +  :: (Ptr RawTGraph) -> IO CDouble++foreign import ccall "HROOTHistTGraph.h TGraph_ResetAttMarker" c_tgraph_resetattmarker +  :: (Ptr RawTGraph) -> CString -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_SetMarkerAttributes" c_tgraph_setmarkerattributes +  :: (Ptr RawTGraph) -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_SetMarkerColor" c_tgraph_setmarkercolor +  :: (Ptr RawTGraph) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_SetMarkerStyle" c_tgraph_setmarkerstyle +  :: (Ptr RawTGraph) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_SetMarkerSize" c_tgraph_setmarkersize +  :: (Ptr RawTGraph) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_Draw" c_tgraph_draw +  :: (Ptr RawTGraph) -> CString -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_FindObject" c_tgraph_findobject +  :: (Ptr RawTGraph) -> CString -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTGraph.h TGraph_GetName" c_tgraph_getname +  :: (Ptr RawTGraph) -> IO CString++foreign import ccall "HROOTHistTGraph.h TGraph_IsA" c_tgraph_isa +  :: (Ptr RawTGraph) -> IO (Ptr RawTClass)++foreign import ccall "HROOTHistTGraph.h TGraph_Paint" c_tgraph_paint +  :: (Ptr RawTGraph) -> CString -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_printObj" c_tgraph_printobj +  :: (Ptr RawTGraph) -> CString -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_SaveAs" c_tgraph_saveas +  :: (Ptr RawTGraph) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_Write" c_tgraph_write +  :: (Ptr RawTGraph) -> CString -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTGraph.h TGraph_delete" c_tgraph_delete +  :: (Ptr RawTGraph) -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_newTGraph" c_tgraph_newtgraph +  :: CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO (Ptr RawTGraph)++foreign import ccall "HROOTHistTGraph.h TGraph_Apply" c_tgraph_apply +  :: (Ptr RawTGraph) -> (Ptr RawTF1) -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_Chisquare" c_tgraph_chisquare +  :: (Ptr RawTGraph) -> (Ptr RawTF1) -> IO CDouble++foreign import ccall "HROOTHistTGraph.h TGraph_DrawGraph" c_tgraph_drawgraph +  :: (Ptr RawTGraph) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CString -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_drawPanelTGraph" c_tgraph_drawpaneltgraph +  :: (Ptr RawTGraph) -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_Expand" c_tgraph_expand +  :: (Ptr RawTGraph) -> CInt -> CInt -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_FitPanelTGraph" c_tgraph_fitpaneltgraph +  :: (Ptr RawTGraph) -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_tGraphGetEditable" c_tgraph_tgraphgeteditable +  :: (Ptr RawTGraph) -> IO CInt++foreign import ccall "HROOTHistTGraph.h TGraph_tGraphGetFunction" c_tgraph_tgraphgetfunction +  :: (Ptr RawTGraph) -> CString -> IO (Ptr RawTF1)++foreign import ccall "HROOTHistTGraph.h TGraph_tGraphGetHistogram" c_tgraph_tgraphgethistogram +  :: (Ptr RawTGraph) -> IO (Ptr RawTH1F)++foreign import ccall "HROOTHistTGraph.h TGraph_getCorrelationFactorTGraph" c_tgraph_getcorrelationfactortgraph +  :: (Ptr RawTGraph) -> IO CDouble++foreign import ccall "HROOTHistTGraph.h TGraph_getCovarianceTGraph" c_tgraph_getcovariancetgraph +  :: (Ptr RawTGraph) -> IO CDouble++foreign import ccall "HROOTHistTGraph.h TGraph_getMeanTGraph" c_tgraph_getmeantgraph +  :: (Ptr RawTGraph) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraph.h TGraph_getRMSTGraph" c_tgraph_getrmstgraph +  :: (Ptr RawTGraph) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraph.h TGraph_tGraphGetMaxSize" c_tgraph_tgraphgetmaxsize +  :: (Ptr RawTGraph) -> IO CInt++foreign import ccall "HROOTHistTGraph.h TGraph_tGraphGetN" c_tgraph_tgraphgetn +  :: (Ptr RawTGraph) -> IO CInt++foreign import ccall "HROOTHistTGraph.h TGraph_GetErrorX" c_tgraph_geterrorx +  :: (Ptr RawTGraph) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraph.h TGraph_GetErrorY" c_tgraph_geterrory +  :: (Ptr RawTGraph) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraph.h TGraph_GetErrorXhigh" c_tgraph_geterrorxhigh +  :: (Ptr RawTGraph) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraph.h TGraph_GetErrorXlow" c_tgraph_geterrorxlow +  :: (Ptr RawTGraph) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraph.h TGraph_GetErrorYhigh" c_tgraph_geterroryhigh +  :: (Ptr RawTGraph) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraph.h TGraph_GetErrorYlow" c_tgraph_geterrorylow +  :: (Ptr RawTGraph) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraph.h TGraph_tGraphGetMaximum" c_tgraph_tgraphgetmaximum +  :: (Ptr RawTGraph) -> IO CDouble++foreign import ccall "HROOTHistTGraph.h TGraph_tGraphGetMinimum" c_tgraph_tgraphgetminimum +  :: (Ptr RawTGraph) -> IO CDouble++foreign import ccall "HROOTHistTGraph.h TGraph_tGraphGetXaxis" c_tgraph_tgraphgetxaxis +  :: (Ptr RawTGraph) -> IO (Ptr RawTAxis)++foreign import ccall "HROOTHistTGraph.h TGraph_tGraphGetYaxis" c_tgraph_tgraphgetyaxis +  :: (Ptr RawTGraph) -> IO (Ptr RawTAxis)++foreign import ccall "HROOTHistTGraph.h TGraph_InitExpo" c_tgraph_initexpo +  :: (Ptr RawTGraph) -> CDouble -> CDouble -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_InitGaus" c_tgraph_initgaus +  :: (Ptr RawTGraph) -> CDouble -> CDouble -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_InitPolynom" c_tgraph_initpolynom +  :: (Ptr RawTGraph) -> CDouble -> CDouble -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_InsertPoint" c_tgraph_insertpoint +  :: (Ptr RawTGraph) -> IO CInt++foreign import ccall "HROOTHistTGraph.h TGraph_integralTGraph" c_tgraph_integraltgraph +  :: (Ptr RawTGraph) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraph.h TGraph_IsEditable" c_tgraph_iseditable +  :: (Ptr RawTGraph) -> IO CInt++foreign import ccall "HROOTHistTGraph.h TGraph_isInsideTGraph" c_tgraph_isinsidetgraph +  :: (Ptr RawTGraph) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTGraph.h TGraph_LeastSquareFit" c_tgraph_leastsquarefit +  :: (Ptr RawTGraph) -> CInt -> (Ptr CDouble) -> CDouble -> CDouble -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_tGraphPaintGraph" c_tgraph_tgraphpaintgraph +  :: (Ptr RawTGraph) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CString -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_tGraphPaintGrapHist" c_tgraph_tgraphpaintgraphist +  :: (Ptr RawTGraph) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CString -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_PaintStats" c_tgraph_paintstats +  :: (Ptr RawTGraph) -> (Ptr RawTF1) -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_RemovePoint" c_tgraph_removepoint +  :: (Ptr RawTGraph) -> CInt -> IO CInt++foreign import ccall "HROOTHistTGraph.h TGraph_SetEditable" c_tgraph_seteditable +  :: (Ptr RawTGraph) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_SetHistogram" c_tgraph_sethistogram +  :: (Ptr RawTGraph) -> (Ptr RawTH1F) -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_setMaximumTGraph" c_tgraph_setmaximumtgraph +  :: (Ptr RawTGraph) -> CDouble -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_setMinimumTGraph" c_tgraph_setminimumtgraph +  :: (Ptr RawTGraph) -> CDouble -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_Set" c_tgraph_set +  :: (Ptr RawTGraph) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraph.h TGraph_SetPoint" c_tgraph_setpoint +  :: (Ptr RawTGraph) -> CInt -> CDouble -> CDouble -> IO ()+
+ src/HROOT/Hist/TGraph/Implementation.hs view
@@ -0,0 +1,235 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, +             OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TGraph.Implementation where+++import FFICXX.Runtime.Cast++import HROOT.Hist.TGraph.RawType+import HROOT.Hist.TGraph.FFI+import HROOT.Hist.TGraph.Interface+import HROOT.Hist.TGraph.Cast+import HROOT.Core.TClass.RawType+import HROOT.Core.TClass.Cast+import HROOT.Core.TClass.Interface+import HROOT.Hist.TF1.RawType+import HROOT.Hist.TF1.Cast+import HROOT.Hist.TF1.Interface+import HROOT.Hist.TH1F.RawType+import HROOT.Hist.TH1F.Cast+import HROOT.Hist.TH1F.Interface+import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.Cast+import HROOT.Hist.TAxis.Interface+import HROOT.Core.TNamed.RawType+import HROOT.Core.TNamed.Cast+import HROOT.Core.TNamed.Interface+import HROOT.Core.TAttLine.RawType+import HROOT.Core.TAttLine.Cast+import HROOT.Core.TAttLine.Interface+import HROOT.Core.TAttFill.RawType+import HROOT.Core.TAttFill.Cast+import HROOT.Core.TAttFill.Interface+import HROOT.Core.TAttMarker.RawType+import HROOT.Core.TAttMarker.Cast+import HROOT.Core.TAttMarker.Interface+import HROOT.Core.TObject.RawType+import HROOT.Core.TObject.Cast+import HROOT.Core.TObject.Interface+import HROOT.Core.Deletable.RawType+import HROOT.Core.Deletable.Cast+import HROOT.Core.Deletable.Interface++import Data.Word+import Foreign.C+import Foreign.Ptr +import Foreign.ForeignPtr++import System.IO.Unsafe+++instance ITGraph TGraph where+  apply = xform1 c_tgraph_apply+  chisquare = xform1 c_tgraph_chisquare+  drawGraph = xform4 c_tgraph_drawgraph+  drawPanelTGraph = xform0 c_tgraph_drawpaneltgraph+  expand = xform2 c_tgraph_expand+  fitPanelTGraph = xform0 c_tgraph_fitpaneltgraph+  getCorrelationFactorTGraph = xform0 c_tgraph_getcorrelationfactortgraph+  getCovarianceTGraph = xform0 c_tgraph_getcovariancetgraph+  getMeanTGraph = xform1 c_tgraph_getmeantgraph+  getRMSTGraph = xform1 c_tgraph_getrmstgraph+  getErrorX = xform1 c_tgraph_geterrorx+  getErrorY = xform1 c_tgraph_geterrory+  getErrorXhigh = xform1 c_tgraph_geterrorxhigh+  getErrorXlow = xform1 c_tgraph_geterrorxlow+  getErrorYhigh = xform1 c_tgraph_geterroryhigh+  getErrorYlow = xform1 c_tgraph_geterrorylow+  initExpo = xform2 c_tgraph_initexpo+  initGaus = xform2 c_tgraph_initgaus+  initPolynom = xform2 c_tgraph_initpolynom+  insertPoint = xform0 c_tgraph_insertpoint+  integralTGraph = xform2 c_tgraph_integraltgraph+  isEditable = xform0 c_tgraph_iseditable+  isInsideTGraph = xform2 c_tgraph_isinsidetgraph+  leastSquareFit = xform4 c_tgraph_leastsquarefit+  paintStats = xform1 c_tgraph_paintstats+  removePoint = xform1 c_tgraph_removepoint+  setEditable = xform1 c_tgraph_seteditable+  setHistogram = xform1 c_tgraph_sethistogram+  setMaximumTGraph = xform1 c_tgraph_setmaximumtgraph+  setMinimumTGraph = xform1 c_tgraph_setminimumtgraph+  set = xform1 c_tgraph_set+  setPoint = xform3 c_tgraph_setpoint+instance ITNamed TGraph where+  setName = xform1 c_tgraph_setname+  setNameTitle = xform2 c_tgraph_setnametitle+  setTitle = xform1 c_tgraph_settitle+instance ITAttLine TGraph where+  getLineColor = xform0 c_tgraph_getlinecolor+  getLineStyle = xform0 c_tgraph_getlinestyle+  getLineWidth = xform0 c_tgraph_getlinewidth+  resetAttLine = xform1 c_tgraph_resetattline+  setLineAttributes = xform0 c_tgraph_setlineattributes+  setLineColor = xform1 c_tgraph_setlinecolor+  setLineStyle = xform1 c_tgraph_setlinestyle+  setLineWidth = xform1 c_tgraph_setlinewidth+instance ITAttFill TGraph where+  setFillColor = xform1 c_tgraph_setfillcolor+  setFillStyle = xform1 c_tgraph_setfillstyle+instance ITAttMarker TGraph where+  getMarkerColor = xform0 c_tgraph_getmarkercolor+  getMarkerStyle = xform0 c_tgraph_getmarkerstyle+  getMarkerSize = xform0 c_tgraph_getmarkersize+  resetAttMarker = xform1 c_tgraph_resetattmarker+  setMarkerAttributes = xform0 c_tgraph_setmarkerattributes+  setMarkerColor = xform1 c_tgraph_setmarkercolor+  setMarkerStyle = xform1 c_tgraph_setmarkerstyle+  setMarkerSize = xform1 c_tgraph_setmarkersize+instance ITObject TGraph where+  draw = xform1 c_tgraph_draw+  findObject = xform1 c_tgraph_findobject+  getName = xform0 c_tgraph_getname+  isA = xform0 c_tgraph_isa+  paint = xform1 c_tgraph_paint+  printObj = xform1 c_tgraph_printobj+  saveAs = xform2 c_tgraph_saveas+  write = xform3 c_tgraph_write+instance IDeletable TGraph where+  delete = xform0 c_tgraph_delete++instance ITGraph (Exist TGraph) where+  apply (ETGraph x) = apply x+  chisquare (ETGraph x) = chisquare x+  drawGraph (ETGraph x) = drawGraph x+  drawPanelTGraph (ETGraph x) = drawPanelTGraph x+  expand (ETGraph x) = expand x+  fitPanelTGraph (ETGraph x) = fitPanelTGraph x+  getCorrelationFactorTGraph (ETGraph x) = getCorrelationFactorTGraph x+  getCovarianceTGraph (ETGraph x) = getCovarianceTGraph x+  getMeanTGraph (ETGraph x) = getMeanTGraph x+  getRMSTGraph (ETGraph x) = getRMSTGraph x+  getErrorX (ETGraph x) = getErrorX x+  getErrorY (ETGraph x) = getErrorY x+  getErrorXhigh (ETGraph x) = getErrorXhigh x+  getErrorXlow (ETGraph x) = getErrorXlow x+  getErrorYhigh (ETGraph x) = getErrorYhigh x+  getErrorYlow (ETGraph x) = getErrorYlow x+  initExpo (ETGraph x) = initExpo x+  initGaus (ETGraph x) = initGaus x+  initPolynom (ETGraph x) = initPolynom x+  insertPoint (ETGraph x) = insertPoint x+  integralTGraph (ETGraph x) = integralTGraph x+  isEditable (ETGraph x) = isEditable x+  isInsideTGraph (ETGraph x) = isInsideTGraph x+  leastSquareFit (ETGraph x) = leastSquareFit x+  paintStats (ETGraph x) = paintStats x+  removePoint (ETGraph x) = removePoint x+  setEditable (ETGraph x) = setEditable x+  setHistogram (ETGraph x) = setHistogram x+  setMaximumTGraph (ETGraph x) = setMaximumTGraph x+  setMinimumTGraph (ETGraph x) = setMinimumTGraph x+  set (ETGraph x) = set x+  setPoint (ETGraph x) = setPoint x+instance ITNamed (Exist TGraph) where+  setName (ETGraph x) = setName x+  setNameTitle (ETGraph x) = setNameTitle x+  setTitle (ETGraph x) = setTitle x+instance ITAttLine (Exist TGraph) where+  getLineColor (ETGraph x) = getLineColor x+  getLineStyle (ETGraph x) = getLineStyle x+  getLineWidth (ETGraph x) = getLineWidth x+  resetAttLine (ETGraph x) = resetAttLine x+  setLineAttributes (ETGraph x) = setLineAttributes x+  setLineColor (ETGraph x) = setLineColor x+  setLineStyle (ETGraph x) = setLineStyle x+  setLineWidth (ETGraph x) = setLineWidth x+instance ITAttFill (Exist TGraph) where+  setFillColor (ETGraph x) = setFillColor x+  setFillStyle (ETGraph x) = setFillStyle x+instance ITAttMarker (Exist TGraph) where+  getMarkerColor (ETGraph x) = getMarkerColor x+  getMarkerStyle (ETGraph x) = getMarkerStyle x+  getMarkerSize (ETGraph x) = getMarkerSize x+  resetAttMarker (ETGraph x) = resetAttMarker x+  setMarkerAttributes (ETGraph x) = setMarkerAttributes x+  setMarkerColor (ETGraph x) = setMarkerColor x+  setMarkerStyle (ETGraph x) = setMarkerStyle x+  setMarkerSize (ETGraph x) = setMarkerSize x+instance ITObject (Exist TGraph) where+  draw (ETGraph x) = draw x+  findObject (ETGraph x) = findObject x+  getName (ETGraph x) = getName x+  isA (ETGraph x) = isA x+  paint (ETGraph x) = paint x+  printObj (ETGraph x) = printObj x+  saveAs (ETGraph x) = saveAs x+  write (ETGraph x) = write x+instance IDeletable (Exist TGraph) where+  delete (ETGraph x) = delete x+++newTGraph :: CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO TGraph+newTGraph = xform2 c_tgraph_newtgraph++tGraphGetEditable :: TGraph -> IO CInt+tGraphGetEditable = xform0 c_tgraph_tgraphgeteditable++tGraphGetFunction :: TGraph -> CString -> IO TF1+tGraphGetFunction = xform1 c_tgraph_tgraphgetfunction++tGraphGetHistogram :: TGraph -> IO TH1F+tGraphGetHistogram = xform0 c_tgraph_tgraphgethistogram++tGraphGetMaxSize :: TGraph -> IO CInt+tGraphGetMaxSize = xform0 c_tgraph_tgraphgetmaxsize++tGraphGetN :: TGraph -> IO CInt+tGraphGetN = xform0 c_tgraph_tgraphgetn++tGraphGetMaximum :: TGraph -> IO CDouble+tGraphGetMaximum = xform0 c_tgraph_tgraphgetmaximum++tGraphGetMinimum :: TGraph -> IO CDouble+tGraphGetMinimum = xform0 c_tgraph_tgraphgetminimum++tGraphGetXaxis :: TGraph -> IO TAxis+tGraphGetXaxis = xform0 c_tgraph_tgraphgetxaxis++tGraphGetYaxis :: TGraph -> IO TAxis+tGraphGetYaxis = xform0 c_tgraph_tgraphgetyaxis++tGraphPaintGraph :: TGraph -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CString -> IO ()+tGraphPaintGraph = xform4 c_tgraph_tgraphpaintgraph++tGraphPaintGrapHist :: TGraph -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CString -> IO ()+tGraphPaintGrapHist = xform4 c_tgraph_tgraphpaintgraphist++++instance FPtr (Exist TGraph) where+  type Raw (Exist TGraph) = RawTGraph+  get_fptr (ETGraph obj) = castForeignPtr (get_fptr obj)+  cast_fptr_to_obj fptr = ETGraph (cast_fptr_to_obj (fptr :: ForeignPtr RawTGraph) :: TGraph)
+ src/HROOT/Hist/TGraph/Interface.hs view
@@ -0,0 +1,106 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++-- module HROOT.Class.Interface where++module HROOT.Hist.TGraph.Interface where+++import Data.Word+import Foreign.C+import Foreign.Ptr+import Foreign.ForeignPtr+import FFICXX.Runtime.Cast++import HROOT.Hist.TGraph.RawType+import HROOT.Hist.TF1.RawType+import HROOT.Hist.TH1F.RawType+import HROOT.Hist.TAxis.RawType+import HROOT.Core.TNamed.Interface+import HROOT.Core.TAttLine.Interface+import HROOT.Core.TAttFill.Interface+import HROOT.Core.TAttMarker.Interface+---- ============ ----+import {-# SOURCE #-} HROOT.Hist.TF1.Interface+import {-# SOURCE #-} HROOT.Hist.TH1F.Interface+++class (ITNamed a,ITAttLine a,ITAttFill a,ITAttMarker a) => ITGraph a where++    apply :: (ITF1 c0, FPtr c0) => a -> c0 -> IO () ++    chisquare :: (ITF1 c0, FPtr c0) => a -> c0 -> IO CDouble ++    drawGraph :: a -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CString -> IO () ++    drawPanelTGraph :: a -> IO () ++    expand :: a -> CInt -> CInt -> IO () ++    fitPanelTGraph :: a -> IO () ++    getCorrelationFactorTGraph :: a -> IO CDouble ++    getCovarianceTGraph :: a -> IO CDouble ++    getMeanTGraph :: a -> CInt -> IO CDouble ++    getRMSTGraph :: a -> CInt -> IO CDouble ++    getErrorX :: a -> CInt -> IO CDouble ++    getErrorY :: a -> CInt -> IO CDouble ++    getErrorXhigh :: a -> CInt -> IO CDouble ++    getErrorXlow :: a -> CInt -> IO CDouble ++    getErrorYhigh :: a -> CInt -> IO CDouble ++    getErrorYlow :: a -> CInt -> IO CDouble ++    initExpo :: a -> CDouble -> CDouble -> IO () ++    initGaus :: a -> CDouble -> CDouble -> IO () ++    initPolynom :: a -> CDouble -> CDouble -> IO () ++    insertPoint :: a -> IO CInt ++    integralTGraph :: a -> CInt -> CInt -> IO CDouble ++    isEditable :: a -> IO CInt ++    isInsideTGraph :: a -> CDouble -> CDouble -> IO CInt ++    leastSquareFit :: a -> CInt -> (Ptr CDouble) -> CDouble -> CDouble -> IO () ++    paintStats :: (ITF1 c0, FPtr c0) => a -> c0 -> IO () ++    removePoint :: a -> CInt -> IO CInt ++    setEditable :: a -> CInt -> IO () ++    setHistogram :: (ITH1F c0, FPtr c0) => a -> c0 -> IO () ++    setMaximumTGraph :: a -> CDouble -> IO () ++    setMinimumTGraph :: a -> CDouble -> IO () ++    set :: a -> CInt -> IO () ++    setPoint :: a -> CInt -> CDouble -> CDouble -> IO () ++instance Existable TGraph where+  data Exist TGraph = forall a. (FPtr a, ITGraph a) => ETGraph a++upcastTGraph :: (FPtr a, ITGraph a) => a -> TGraph+upcastTGraph h = let fh = get_fptr h+                     fh2 :: ForeignPtr RawTGraph = castForeignPtr fh+                 in cast_fptr_to_obj fh2++downcastTGraph :: (FPtr a, ITGraph a) => TGraph -> a +downcastTGraph h = let fh = get_fptr h+                       fh2 = castForeignPtr fh+                   in cast_fptr_to_obj fh2
+ src/HROOT/Hist/TGraph/RawType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++module HROOT.Hist.TGraph.RawType where+++import Foreign.ForeignPtr+import FFICXX.Runtime.Cast  ++data RawTGraph+newtype TGraph = TGraph (ForeignPtr RawTGraph) deriving (Eq, Ord, Show)+instance FPtr TGraph where+   type Raw TGraph = RawTGraph+   get_fptr (TGraph fptr) = fptr+   cast_fptr_to_obj = TGraph
+ src/HROOT/Hist/TGraphAsymmErrors.hs view
@@ -0,0 +1,15 @@+module HROOT.Hist.TGraphAsymmErrors+  (+    TGraphAsymmErrors(..)+  , ITGraphAsymmErrors+  , upcastTGraphAsymmErrors+  , downcastTGraphAsymmErrors+  , newTGraphAsymmErrors+ +  ) where++import HROOT.Hist.TGraphAsymmErrors.RawType+import HROOT.Hist.TGraphAsymmErrors.Interface+import HROOT.Hist.TGraphAsymmErrors.Implementation++
+ src/HROOT/Hist/TGraphAsymmErrors/Cast.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeFamilies, +             MultiParamTypeClasses, OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TGraphAsymmErrors.Cast where+++import Foreign.Ptr+import Foreign.ForeignPtr (castForeignPtr, newForeignPtr_)+import Foreign.ForeignPtr.Unsafe+import FFICXX.Runtime.Cast+import System.IO.Unsafe++import HROOT.Hist.TGraphAsymmErrors.RawType+import HROOT.Hist.TGraphAsymmErrors.Interface++instance (ITGraphAsymmErrors a, FPtr a) => Castable a (Ptr RawTGraphAsymmErrors) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ ++instance Castable TGraphAsymmErrors (Ptr RawTGraphAsymmErrors) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+ src/HROOT/Hist/TGraphAsymmErrors/FFI.hsc view
@@ -0,0 +1,212 @@+{-# LANGUAGE ForeignFunctionInterface #-}++-- module HROOT.Class.FFI where++module HROOT.Hist.TGraphAsymmErrors.FFI where+++import Foreign.C            +import Foreign.Ptr++-- import HROOT.Class.Interface++-- #include ""++import HROOT.Hist.TGraphAsymmErrors.RawType+import HROOT.Hist.TF1.RawType+import HROOT.Hist.TH1F.RawType+import HROOT.Hist.TAxis.RawType+import HROOT.Core.TObject.RawType+import HROOT.Core.TClass.RawType++#include "HROOTHistTGraphAsymmErrors.h"++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_Apply" c_tgraphasymmerrors_apply +  :: (Ptr RawTGraphAsymmErrors) -> (Ptr RawTF1) -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_Chisquare" c_tgraphasymmerrors_chisquare +  :: (Ptr RawTGraphAsymmErrors) -> (Ptr RawTF1) -> IO CDouble++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_DrawGraph" c_tgraphasymmerrors_drawgraph +  :: (Ptr RawTGraphAsymmErrors) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CString -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_drawPanelTGraph" c_tgraphasymmerrors_drawpaneltgraph +  :: (Ptr RawTGraphAsymmErrors) -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_Expand" c_tgraphasymmerrors_expand +  :: (Ptr RawTGraphAsymmErrors) -> CInt -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_FitPanelTGraph" c_tgraphasymmerrors_fitpaneltgraph +  :: (Ptr RawTGraphAsymmErrors) -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_getCorrelationFactorTGraph" c_tgraphasymmerrors_getcorrelationfactortgraph +  :: (Ptr RawTGraphAsymmErrors) -> IO CDouble++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_getCovarianceTGraph" c_tgraphasymmerrors_getcovariancetgraph +  :: (Ptr RawTGraphAsymmErrors) -> IO CDouble++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_getMeanTGraph" c_tgraphasymmerrors_getmeantgraph +  :: (Ptr RawTGraphAsymmErrors) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_getRMSTGraph" c_tgraphasymmerrors_getrmstgraph +  :: (Ptr RawTGraphAsymmErrors) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_GetErrorX" c_tgraphasymmerrors_geterrorx +  :: (Ptr RawTGraphAsymmErrors) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_GetErrorY" c_tgraphasymmerrors_geterrory +  :: (Ptr RawTGraphAsymmErrors) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_GetErrorXhigh" c_tgraphasymmerrors_geterrorxhigh +  :: (Ptr RawTGraphAsymmErrors) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_GetErrorXlow" c_tgraphasymmerrors_geterrorxlow +  :: (Ptr RawTGraphAsymmErrors) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_GetErrorYhigh" c_tgraphasymmerrors_geterroryhigh +  :: (Ptr RawTGraphAsymmErrors) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_GetErrorYlow" c_tgraphasymmerrors_geterrorylow +  :: (Ptr RawTGraphAsymmErrors) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_InitExpo" c_tgraphasymmerrors_initexpo +  :: (Ptr RawTGraphAsymmErrors) -> CDouble -> CDouble -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_InitGaus" c_tgraphasymmerrors_initgaus +  :: (Ptr RawTGraphAsymmErrors) -> CDouble -> CDouble -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_InitPolynom" c_tgraphasymmerrors_initpolynom +  :: (Ptr RawTGraphAsymmErrors) -> CDouble -> CDouble -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_InsertPoint" c_tgraphasymmerrors_insertpoint +  :: (Ptr RawTGraphAsymmErrors) -> IO CInt++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_integralTGraph" c_tgraphasymmerrors_integraltgraph +  :: (Ptr RawTGraphAsymmErrors) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_IsEditable" c_tgraphasymmerrors_iseditable +  :: (Ptr RawTGraphAsymmErrors) -> IO CInt++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_isInsideTGraph" c_tgraphasymmerrors_isinsidetgraph +  :: (Ptr RawTGraphAsymmErrors) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_LeastSquareFit" c_tgraphasymmerrors_leastsquarefit +  :: (Ptr RawTGraphAsymmErrors) -> CInt -> (Ptr CDouble) -> CDouble -> CDouble -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_PaintStats" c_tgraphasymmerrors_paintstats +  :: (Ptr RawTGraphAsymmErrors) -> (Ptr RawTF1) -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_RemovePoint" c_tgraphasymmerrors_removepoint +  :: (Ptr RawTGraphAsymmErrors) -> CInt -> IO CInt++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetEditable" c_tgraphasymmerrors_seteditable +  :: (Ptr RawTGraphAsymmErrors) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetHistogram" c_tgraphasymmerrors_sethistogram +  :: (Ptr RawTGraphAsymmErrors) -> (Ptr RawTH1F) -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_setMaximumTGraph" c_tgraphasymmerrors_setmaximumtgraph +  :: (Ptr RawTGraphAsymmErrors) -> CDouble -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_setMinimumTGraph" c_tgraphasymmerrors_setminimumtgraph +  :: (Ptr RawTGraphAsymmErrors) -> CDouble -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_Set" c_tgraphasymmerrors_set +  :: (Ptr RawTGraphAsymmErrors) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetPoint" c_tgraphasymmerrors_setpoint +  :: (Ptr RawTGraphAsymmErrors) -> CInt -> CDouble -> CDouble -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetName" c_tgraphasymmerrors_setname +  :: (Ptr RawTGraphAsymmErrors) -> CString -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetNameTitle" c_tgraphasymmerrors_setnametitle +  :: (Ptr RawTGraphAsymmErrors) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetTitle" c_tgraphasymmerrors_settitle +  :: (Ptr RawTGraphAsymmErrors) -> CString -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_GetLineColor" c_tgraphasymmerrors_getlinecolor +  :: (Ptr RawTGraphAsymmErrors) -> IO CInt++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_GetLineStyle" c_tgraphasymmerrors_getlinestyle +  :: (Ptr RawTGraphAsymmErrors) -> IO CInt++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_GetLineWidth" c_tgraphasymmerrors_getlinewidth +  :: (Ptr RawTGraphAsymmErrors) -> IO CInt++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_ResetAttLine" c_tgraphasymmerrors_resetattline +  :: (Ptr RawTGraphAsymmErrors) -> CString -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetLineAttributes" c_tgraphasymmerrors_setlineattributes +  :: (Ptr RawTGraphAsymmErrors) -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetLineColor" c_tgraphasymmerrors_setlinecolor +  :: (Ptr RawTGraphAsymmErrors) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetLineStyle" c_tgraphasymmerrors_setlinestyle +  :: (Ptr RawTGraphAsymmErrors) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetLineWidth" c_tgraphasymmerrors_setlinewidth +  :: (Ptr RawTGraphAsymmErrors) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetFillColor" c_tgraphasymmerrors_setfillcolor +  :: (Ptr RawTGraphAsymmErrors) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetFillStyle" c_tgraphasymmerrors_setfillstyle +  :: (Ptr RawTGraphAsymmErrors) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_GetMarkerColor" c_tgraphasymmerrors_getmarkercolor +  :: (Ptr RawTGraphAsymmErrors) -> IO CInt++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_GetMarkerStyle" c_tgraphasymmerrors_getmarkerstyle +  :: (Ptr RawTGraphAsymmErrors) -> IO CInt++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_GetMarkerSize" c_tgraphasymmerrors_getmarkersize +  :: (Ptr RawTGraphAsymmErrors) -> IO CDouble++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_ResetAttMarker" c_tgraphasymmerrors_resetattmarker +  :: (Ptr RawTGraphAsymmErrors) -> CString -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetMarkerAttributes" c_tgraphasymmerrors_setmarkerattributes +  :: (Ptr RawTGraphAsymmErrors) -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetMarkerColor" c_tgraphasymmerrors_setmarkercolor +  :: (Ptr RawTGraphAsymmErrors) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetMarkerStyle" c_tgraphasymmerrors_setmarkerstyle +  :: (Ptr RawTGraphAsymmErrors) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetMarkerSize" c_tgraphasymmerrors_setmarkersize +  :: (Ptr RawTGraphAsymmErrors) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_Draw" c_tgraphasymmerrors_draw +  :: (Ptr RawTGraphAsymmErrors) -> CString -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_FindObject" c_tgraphasymmerrors_findobject +  :: (Ptr RawTGraphAsymmErrors) -> CString -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_GetName" c_tgraphasymmerrors_getname +  :: (Ptr RawTGraphAsymmErrors) -> IO CString++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_IsA" c_tgraphasymmerrors_isa +  :: (Ptr RawTGraphAsymmErrors) -> IO (Ptr RawTClass)++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_Paint" c_tgraphasymmerrors_paint +  :: (Ptr RawTGraphAsymmErrors) -> CString -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_printObj" c_tgraphasymmerrors_printobj +  :: (Ptr RawTGraphAsymmErrors) -> CString -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SaveAs" c_tgraphasymmerrors_saveas +  :: (Ptr RawTGraphAsymmErrors) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_Write" c_tgraphasymmerrors_write +  :: (Ptr RawTGraphAsymmErrors) -> CString -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_delete" c_tgraphasymmerrors_delete +  :: (Ptr RawTGraphAsymmErrors) -> IO ()++foreign import ccall "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_newTGraphAsymmErrors" c_tgraphasymmerrors_newtgraphasymmerrors +  :: CInt -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> IO (Ptr RawTGraphAsymmErrors)+
+ src/HROOT/Hist/TGraphAsymmErrors/Implementation.hs view
@@ -0,0 +1,210 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, +             OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TGraphAsymmErrors.Implementation where+++import FFICXX.Runtime.Cast++import HROOT.Hist.TGraphAsymmErrors.RawType+import HROOT.Hist.TGraphAsymmErrors.FFI+import HROOT.Hist.TGraphAsymmErrors.Interface+import HROOT.Hist.TGraphAsymmErrors.Cast+import HROOT.Hist.TF1.RawType+import HROOT.Hist.TF1.Cast+import HROOT.Hist.TF1.Interface+import HROOT.Hist.TH1F.RawType+import HROOT.Hist.TH1F.Cast+import HROOT.Hist.TH1F.Interface+import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.Cast+import HROOT.Hist.TAxis.Interface+import HROOT.Core.TClass.RawType+import HROOT.Core.TClass.Cast+import HROOT.Core.TClass.Interface+import HROOT.Hist.TGraph.RawType+import HROOT.Hist.TGraph.Cast+import HROOT.Hist.TGraph.Interface+import HROOT.Core.TNamed.RawType+import HROOT.Core.TNamed.Cast+import HROOT.Core.TNamed.Interface+import HROOT.Core.TAttLine.RawType+import HROOT.Core.TAttLine.Cast+import HROOT.Core.TAttLine.Interface+import HROOT.Core.TAttFill.RawType+import HROOT.Core.TAttFill.Cast+import HROOT.Core.TAttFill.Interface+import HROOT.Core.TAttMarker.RawType+import HROOT.Core.TAttMarker.Cast+import HROOT.Core.TAttMarker.Interface+import HROOT.Core.TObject.RawType+import HROOT.Core.TObject.Cast+import HROOT.Core.TObject.Interface+import HROOT.Core.Deletable.RawType+import HROOT.Core.Deletable.Cast+import HROOT.Core.Deletable.Interface++import Data.Word+import Foreign.C+import Foreign.Ptr +import Foreign.ForeignPtr++import System.IO.Unsafe+++instance ITGraphAsymmErrors TGraphAsymmErrors where+instance ITGraph TGraphAsymmErrors where+  apply = xform1 c_tgraphasymmerrors_apply+  chisquare = xform1 c_tgraphasymmerrors_chisquare+  drawGraph = xform4 c_tgraphasymmerrors_drawgraph+  drawPanelTGraph = xform0 c_tgraphasymmerrors_drawpaneltgraph+  expand = xform2 c_tgraphasymmerrors_expand+  fitPanelTGraph = xform0 c_tgraphasymmerrors_fitpaneltgraph+  getCorrelationFactorTGraph = xform0 c_tgraphasymmerrors_getcorrelationfactortgraph+  getCovarianceTGraph = xform0 c_tgraphasymmerrors_getcovariancetgraph+  getMeanTGraph = xform1 c_tgraphasymmerrors_getmeantgraph+  getRMSTGraph = xform1 c_tgraphasymmerrors_getrmstgraph+  getErrorX = xform1 c_tgraphasymmerrors_geterrorx+  getErrorY = xform1 c_tgraphasymmerrors_geterrory+  getErrorXhigh = xform1 c_tgraphasymmerrors_geterrorxhigh+  getErrorXlow = xform1 c_tgraphasymmerrors_geterrorxlow+  getErrorYhigh = xform1 c_tgraphasymmerrors_geterroryhigh+  getErrorYlow = xform1 c_tgraphasymmerrors_geterrorylow+  initExpo = xform2 c_tgraphasymmerrors_initexpo+  initGaus = xform2 c_tgraphasymmerrors_initgaus+  initPolynom = xform2 c_tgraphasymmerrors_initpolynom+  insertPoint = xform0 c_tgraphasymmerrors_insertpoint+  integralTGraph = xform2 c_tgraphasymmerrors_integraltgraph+  isEditable = xform0 c_tgraphasymmerrors_iseditable+  isInsideTGraph = xform2 c_tgraphasymmerrors_isinsidetgraph+  leastSquareFit = xform4 c_tgraphasymmerrors_leastsquarefit+  paintStats = xform1 c_tgraphasymmerrors_paintstats+  removePoint = xform1 c_tgraphasymmerrors_removepoint+  setEditable = xform1 c_tgraphasymmerrors_seteditable+  setHistogram = xform1 c_tgraphasymmerrors_sethistogram+  setMaximumTGraph = xform1 c_tgraphasymmerrors_setmaximumtgraph+  setMinimumTGraph = xform1 c_tgraphasymmerrors_setminimumtgraph+  set = xform1 c_tgraphasymmerrors_set+  setPoint = xform3 c_tgraphasymmerrors_setpoint+instance ITNamed TGraphAsymmErrors where+  setName = xform1 c_tgraphasymmerrors_setname+  setNameTitle = xform2 c_tgraphasymmerrors_setnametitle+  setTitle = xform1 c_tgraphasymmerrors_settitle+instance ITAttLine TGraphAsymmErrors where+  getLineColor = xform0 c_tgraphasymmerrors_getlinecolor+  getLineStyle = xform0 c_tgraphasymmerrors_getlinestyle+  getLineWidth = xform0 c_tgraphasymmerrors_getlinewidth+  resetAttLine = xform1 c_tgraphasymmerrors_resetattline+  setLineAttributes = xform0 c_tgraphasymmerrors_setlineattributes+  setLineColor = xform1 c_tgraphasymmerrors_setlinecolor+  setLineStyle = xform1 c_tgraphasymmerrors_setlinestyle+  setLineWidth = xform1 c_tgraphasymmerrors_setlinewidth+instance ITAttFill TGraphAsymmErrors where+  setFillColor = xform1 c_tgraphasymmerrors_setfillcolor+  setFillStyle = xform1 c_tgraphasymmerrors_setfillstyle+instance ITAttMarker TGraphAsymmErrors where+  getMarkerColor = xform0 c_tgraphasymmerrors_getmarkercolor+  getMarkerStyle = xform0 c_tgraphasymmerrors_getmarkerstyle+  getMarkerSize = xform0 c_tgraphasymmerrors_getmarkersize+  resetAttMarker = xform1 c_tgraphasymmerrors_resetattmarker+  setMarkerAttributes = xform0 c_tgraphasymmerrors_setmarkerattributes+  setMarkerColor = xform1 c_tgraphasymmerrors_setmarkercolor+  setMarkerStyle = xform1 c_tgraphasymmerrors_setmarkerstyle+  setMarkerSize = xform1 c_tgraphasymmerrors_setmarkersize+instance ITObject TGraphAsymmErrors where+  draw = xform1 c_tgraphasymmerrors_draw+  findObject = xform1 c_tgraphasymmerrors_findobject+  getName = xform0 c_tgraphasymmerrors_getname+  isA = xform0 c_tgraphasymmerrors_isa+  paint = xform1 c_tgraphasymmerrors_paint+  printObj = xform1 c_tgraphasymmerrors_printobj+  saveAs = xform2 c_tgraphasymmerrors_saveas+  write = xform3 c_tgraphasymmerrors_write+instance IDeletable TGraphAsymmErrors where+  delete = xform0 c_tgraphasymmerrors_delete++instance ITGraphAsymmErrors (Exist TGraphAsymmErrors) where++instance ITGraph (Exist TGraphAsymmErrors) where+  apply (ETGraphAsymmErrors x) = apply x+  chisquare (ETGraphAsymmErrors x) = chisquare x+  drawGraph (ETGraphAsymmErrors x) = drawGraph x+  drawPanelTGraph (ETGraphAsymmErrors x) = drawPanelTGraph x+  expand (ETGraphAsymmErrors x) = expand x+  fitPanelTGraph (ETGraphAsymmErrors x) = fitPanelTGraph x+  getCorrelationFactorTGraph (ETGraphAsymmErrors x) = getCorrelationFactorTGraph x+  getCovarianceTGraph (ETGraphAsymmErrors x) = getCovarianceTGraph x+  getMeanTGraph (ETGraphAsymmErrors x) = getMeanTGraph x+  getRMSTGraph (ETGraphAsymmErrors x) = getRMSTGraph x+  getErrorX (ETGraphAsymmErrors x) = getErrorX x+  getErrorY (ETGraphAsymmErrors x) = getErrorY x+  getErrorXhigh (ETGraphAsymmErrors x) = getErrorXhigh x+  getErrorXlow (ETGraphAsymmErrors x) = getErrorXlow x+  getErrorYhigh (ETGraphAsymmErrors x) = getErrorYhigh x+  getErrorYlow (ETGraphAsymmErrors x) = getErrorYlow x+  initExpo (ETGraphAsymmErrors x) = initExpo x+  initGaus (ETGraphAsymmErrors x) = initGaus x+  initPolynom (ETGraphAsymmErrors x) = initPolynom x+  insertPoint (ETGraphAsymmErrors x) = insertPoint x+  integralTGraph (ETGraphAsymmErrors x) = integralTGraph x+  isEditable (ETGraphAsymmErrors x) = isEditable x+  isInsideTGraph (ETGraphAsymmErrors x) = isInsideTGraph x+  leastSquareFit (ETGraphAsymmErrors x) = leastSquareFit x+  paintStats (ETGraphAsymmErrors x) = paintStats x+  removePoint (ETGraphAsymmErrors x) = removePoint x+  setEditable (ETGraphAsymmErrors x) = setEditable x+  setHistogram (ETGraphAsymmErrors x) = setHistogram x+  setMaximumTGraph (ETGraphAsymmErrors x) = setMaximumTGraph x+  setMinimumTGraph (ETGraphAsymmErrors x) = setMinimumTGraph x+  set (ETGraphAsymmErrors x) = set x+  setPoint (ETGraphAsymmErrors x) = setPoint x+instance ITNamed (Exist TGraphAsymmErrors) where+  setName (ETGraphAsymmErrors x) = setName x+  setNameTitle (ETGraphAsymmErrors x) = setNameTitle x+  setTitle (ETGraphAsymmErrors x) = setTitle x+instance ITAttLine (Exist TGraphAsymmErrors) where+  getLineColor (ETGraphAsymmErrors x) = getLineColor x+  getLineStyle (ETGraphAsymmErrors x) = getLineStyle x+  getLineWidth (ETGraphAsymmErrors x) = getLineWidth x+  resetAttLine (ETGraphAsymmErrors x) = resetAttLine x+  setLineAttributes (ETGraphAsymmErrors x) = setLineAttributes x+  setLineColor (ETGraphAsymmErrors x) = setLineColor x+  setLineStyle (ETGraphAsymmErrors x) = setLineStyle x+  setLineWidth (ETGraphAsymmErrors x) = setLineWidth x+instance ITAttFill (Exist TGraphAsymmErrors) where+  setFillColor (ETGraphAsymmErrors x) = setFillColor x+  setFillStyle (ETGraphAsymmErrors x) = setFillStyle x+instance ITAttMarker (Exist TGraphAsymmErrors) where+  getMarkerColor (ETGraphAsymmErrors x) = getMarkerColor x+  getMarkerStyle (ETGraphAsymmErrors x) = getMarkerStyle x+  getMarkerSize (ETGraphAsymmErrors x) = getMarkerSize x+  resetAttMarker (ETGraphAsymmErrors x) = resetAttMarker x+  setMarkerAttributes (ETGraphAsymmErrors x) = setMarkerAttributes x+  setMarkerColor (ETGraphAsymmErrors x) = setMarkerColor x+  setMarkerStyle (ETGraphAsymmErrors x) = setMarkerStyle x+  setMarkerSize (ETGraphAsymmErrors x) = setMarkerSize x+instance ITObject (Exist TGraphAsymmErrors) where+  draw (ETGraphAsymmErrors x) = draw x+  findObject (ETGraphAsymmErrors x) = findObject x+  getName (ETGraphAsymmErrors x) = getName x+  isA (ETGraphAsymmErrors x) = isA x+  paint (ETGraphAsymmErrors x) = paint x+  printObj (ETGraphAsymmErrors x) = printObj x+  saveAs (ETGraphAsymmErrors x) = saveAs x+  write (ETGraphAsymmErrors x) = write x+instance IDeletable (Exist TGraphAsymmErrors) where+  delete (ETGraphAsymmErrors x) = delete x+++newTGraphAsymmErrors :: CInt -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> IO TGraphAsymmErrors+newTGraphAsymmErrors = xform6 c_tgraphasymmerrors_newtgraphasymmerrors++++++instance FPtr (Exist TGraphAsymmErrors) where+  type Raw (Exist TGraphAsymmErrors) = RawTGraphAsymmErrors+  get_fptr (ETGraphAsymmErrors obj) = castForeignPtr (get_fptr obj)+  cast_fptr_to_obj fptr = ETGraphAsymmErrors (cast_fptr_to_obj (fptr :: ForeignPtr RawTGraphAsymmErrors) :: TGraphAsymmErrors)
+ src/HROOT/Hist/TGraphAsymmErrors/Interface.hs view
@@ -0,0 +1,36 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++-- module HROOT.Class.Interface where++module HROOT.Hist.TGraphAsymmErrors.Interface where+++import Data.Word+import Foreign.C+import Foreign.Ptr+import Foreign.ForeignPtr+import FFICXX.Runtime.Cast++import HROOT.Hist.TGraphAsymmErrors.RawType++import HROOT.Hist.TGraph.Interface+---- ============ ----++++class (ITGraph a) => ITGraphAsymmErrors a where++instance Existable TGraphAsymmErrors where+  data Exist TGraphAsymmErrors = forall a. (FPtr a, ITGraphAsymmErrors a) => ETGraphAsymmErrors a++upcastTGraphAsymmErrors :: (FPtr a, ITGraphAsymmErrors a) => a -> TGraphAsymmErrors+upcastTGraphAsymmErrors h = let fh = get_fptr h+                                fh2 :: ForeignPtr RawTGraphAsymmErrors = castForeignPtr fh+                            in cast_fptr_to_obj fh2++downcastTGraphAsymmErrors :: (FPtr a, ITGraphAsymmErrors a) => TGraphAsymmErrors -> a +downcastTGraphAsymmErrors h = let fh = get_fptr h+                                  fh2 = castForeignPtr fh+                              in cast_fptr_to_obj fh2
+ src/HROOT/Hist/TGraphAsymmErrors/RawType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++module HROOT.Hist.TGraphAsymmErrors.RawType where+++import Foreign.ForeignPtr+import FFICXX.Runtime.Cast  ++data RawTGraphAsymmErrors+newtype TGraphAsymmErrors = TGraphAsymmErrors (ForeignPtr RawTGraphAsymmErrors) deriving (Eq, Ord, Show)+instance FPtr TGraphAsymmErrors where+   type Raw TGraphAsymmErrors = RawTGraphAsymmErrors+   get_fptr (TGraphAsymmErrors fptr) = fptr+   cast_fptr_to_obj = TGraphAsymmErrors
+ src/HROOT/Hist/TGraphBentErrors.hs view
@@ -0,0 +1,15 @@+module HROOT.Hist.TGraphBentErrors+  (+    TGraphBentErrors(..)+  , ITGraphBentErrors+  , upcastTGraphBentErrors+  , downcastTGraphBentErrors+  , newTGraphBentErrors+ +  ) where++import HROOT.Hist.TGraphBentErrors.RawType+import HROOT.Hist.TGraphBentErrors.Interface+import HROOT.Hist.TGraphBentErrors.Implementation++
+ src/HROOT/Hist/TGraphBentErrors/Cast.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeFamilies, +             MultiParamTypeClasses, OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TGraphBentErrors.Cast where+++import Foreign.Ptr+import Foreign.ForeignPtr (castForeignPtr, newForeignPtr_)+import Foreign.ForeignPtr.Unsafe+import FFICXX.Runtime.Cast+import System.IO.Unsafe++import HROOT.Hist.TGraphBentErrors.RawType+import HROOT.Hist.TGraphBentErrors.Interface++instance (ITGraphBentErrors a, FPtr a) => Castable a (Ptr RawTGraphBentErrors) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ ++instance Castable TGraphBentErrors (Ptr RawTGraphBentErrors) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+ src/HROOT/Hist/TGraphBentErrors/FFI.hsc view
@@ -0,0 +1,212 @@+{-# LANGUAGE ForeignFunctionInterface #-}++-- module HROOT.Class.FFI where++module HROOT.Hist.TGraphBentErrors.FFI where+++import Foreign.C            +import Foreign.Ptr++-- import HROOT.Class.Interface++-- #include ""++import HROOT.Hist.TGraphBentErrors.RawType+import HROOT.Hist.TF1.RawType+import HROOT.Hist.TH1F.RawType+import HROOT.Hist.TAxis.RawType+import HROOT.Core.TObject.RawType+import HROOT.Core.TClass.RawType++#include "HROOTHistTGraphBentErrors.h"++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_Apply" c_tgraphbenterrors_apply +  :: (Ptr RawTGraphBentErrors) -> (Ptr RawTF1) -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_Chisquare" c_tgraphbenterrors_chisquare +  :: (Ptr RawTGraphBentErrors) -> (Ptr RawTF1) -> IO CDouble++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_DrawGraph" c_tgraphbenterrors_drawgraph +  :: (Ptr RawTGraphBentErrors) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CString -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_drawPanelTGraph" c_tgraphbenterrors_drawpaneltgraph +  :: (Ptr RawTGraphBentErrors) -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_Expand" c_tgraphbenterrors_expand +  :: (Ptr RawTGraphBentErrors) -> CInt -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_FitPanelTGraph" c_tgraphbenterrors_fitpaneltgraph +  :: (Ptr RawTGraphBentErrors) -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_getCorrelationFactorTGraph" c_tgraphbenterrors_getcorrelationfactortgraph +  :: (Ptr RawTGraphBentErrors) -> IO CDouble++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_getCovarianceTGraph" c_tgraphbenterrors_getcovariancetgraph +  :: (Ptr RawTGraphBentErrors) -> IO CDouble++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_getMeanTGraph" c_tgraphbenterrors_getmeantgraph +  :: (Ptr RawTGraphBentErrors) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_getRMSTGraph" c_tgraphbenterrors_getrmstgraph +  :: (Ptr RawTGraphBentErrors) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_GetErrorX" c_tgraphbenterrors_geterrorx +  :: (Ptr RawTGraphBentErrors) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_GetErrorY" c_tgraphbenterrors_geterrory +  :: (Ptr RawTGraphBentErrors) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_GetErrorXhigh" c_tgraphbenterrors_geterrorxhigh +  :: (Ptr RawTGraphBentErrors) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_GetErrorXlow" c_tgraphbenterrors_geterrorxlow +  :: (Ptr RawTGraphBentErrors) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_GetErrorYhigh" c_tgraphbenterrors_geterroryhigh +  :: (Ptr RawTGraphBentErrors) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_GetErrorYlow" c_tgraphbenterrors_geterrorylow +  :: (Ptr RawTGraphBentErrors) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_InitExpo" c_tgraphbenterrors_initexpo +  :: (Ptr RawTGraphBentErrors) -> CDouble -> CDouble -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_InitGaus" c_tgraphbenterrors_initgaus +  :: (Ptr RawTGraphBentErrors) -> CDouble -> CDouble -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_InitPolynom" c_tgraphbenterrors_initpolynom +  :: (Ptr RawTGraphBentErrors) -> CDouble -> CDouble -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_InsertPoint" c_tgraphbenterrors_insertpoint +  :: (Ptr RawTGraphBentErrors) -> IO CInt++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_integralTGraph" c_tgraphbenterrors_integraltgraph +  :: (Ptr RawTGraphBentErrors) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_IsEditable" c_tgraphbenterrors_iseditable +  :: (Ptr RawTGraphBentErrors) -> IO CInt++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_isInsideTGraph" c_tgraphbenterrors_isinsidetgraph +  :: (Ptr RawTGraphBentErrors) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_LeastSquareFit" c_tgraphbenterrors_leastsquarefit +  :: (Ptr RawTGraphBentErrors) -> CInt -> (Ptr CDouble) -> CDouble -> CDouble -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_PaintStats" c_tgraphbenterrors_paintstats +  :: (Ptr RawTGraphBentErrors) -> (Ptr RawTF1) -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_RemovePoint" c_tgraphbenterrors_removepoint +  :: (Ptr RawTGraphBentErrors) -> CInt -> IO CInt++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetEditable" c_tgraphbenterrors_seteditable +  :: (Ptr RawTGraphBentErrors) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetHistogram" c_tgraphbenterrors_sethistogram +  :: (Ptr RawTGraphBentErrors) -> (Ptr RawTH1F) -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_setMaximumTGraph" c_tgraphbenterrors_setmaximumtgraph +  :: (Ptr RawTGraphBentErrors) -> CDouble -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_setMinimumTGraph" c_tgraphbenterrors_setminimumtgraph +  :: (Ptr RawTGraphBentErrors) -> CDouble -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_Set" c_tgraphbenterrors_set +  :: (Ptr RawTGraphBentErrors) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetPoint" c_tgraphbenterrors_setpoint +  :: (Ptr RawTGraphBentErrors) -> CInt -> CDouble -> CDouble -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetName" c_tgraphbenterrors_setname +  :: (Ptr RawTGraphBentErrors) -> CString -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetNameTitle" c_tgraphbenterrors_setnametitle +  :: (Ptr RawTGraphBentErrors) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetTitle" c_tgraphbenterrors_settitle +  :: (Ptr RawTGraphBentErrors) -> CString -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_GetLineColor" c_tgraphbenterrors_getlinecolor +  :: (Ptr RawTGraphBentErrors) -> IO CInt++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_GetLineStyle" c_tgraphbenterrors_getlinestyle +  :: (Ptr RawTGraphBentErrors) -> IO CInt++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_GetLineWidth" c_tgraphbenterrors_getlinewidth +  :: (Ptr RawTGraphBentErrors) -> IO CInt++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_ResetAttLine" c_tgraphbenterrors_resetattline +  :: (Ptr RawTGraphBentErrors) -> CString -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetLineAttributes" c_tgraphbenterrors_setlineattributes +  :: (Ptr RawTGraphBentErrors) -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetLineColor" c_tgraphbenterrors_setlinecolor +  :: (Ptr RawTGraphBentErrors) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetLineStyle" c_tgraphbenterrors_setlinestyle +  :: (Ptr RawTGraphBentErrors) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetLineWidth" c_tgraphbenterrors_setlinewidth +  :: (Ptr RawTGraphBentErrors) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetFillColor" c_tgraphbenterrors_setfillcolor +  :: (Ptr RawTGraphBentErrors) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetFillStyle" c_tgraphbenterrors_setfillstyle +  :: (Ptr RawTGraphBentErrors) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_GetMarkerColor" c_tgraphbenterrors_getmarkercolor +  :: (Ptr RawTGraphBentErrors) -> IO CInt++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_GetMarkerStyle" c_tgraphbenterrors_getmarkerstyle +  :: (Ptr RawTGraphBentErrors) -> IO CInt++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_GetMarkerSize" c_tgraphbenterrors_getmarkersize +  :: (Ptr RawTGraphBentErrors) -> IO CDouble++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_ResetAttMarker" c_tgraphbenterrors_resetattmarker +  :: (Ptr RawTGraphBentErrors) -> CString -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetMarkerAttributes" c_tgraphbenterrors_setmarkerattributes +  :: (Ptr RawTGraphBentErrors) -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetMarkerColor" c_tgraphbenterrors_setmarkercolor +  :: (Ptr RawTGraphBentErrors) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetMarkerStyle" c_tgraphbenterrors_setmarkerstyle +  :: (Ptr RawTGraphBentErrors) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetMarkerSize" c_tgraphbenterrors_setmarkersize +  :: (Ptr RawTGraphBentErrors) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_Draw" c_tgraphbenterrors_draw +  :: (Ptr RawTGraphBentErrors) -> CString -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_FindObject" c_tgraphbenterrors_findobject +  :: (Ptr RawTGraphBentErrors) -> CString -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_GetName" c_tgraphbenterrors_getname +  :: (Ptr RawTGraphBentErrors) -> IO CString++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_IsA" c_tgraphbenterrors_isa +  :: (Ptr RawTGraphBentErrors) -> IO (Ptr RawTClass)++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_Paint" c_tgraphbenterrors_paint +  :: (Ptr RawTGraphBentErrors) -> CString -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_printObj" c_tgraphbenterrors_printobj +  :: (Ptr RawTGraphBentErrors) -> CString -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_SaveAs" c_tgraphbenterrors_saveas +  :: (Ptr RawTGraphBentErrors) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_Write" c_tgraphbenterrors_write +  :: (Ptr RawTGraphBentErrors) -> CString -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_delete" c_tgraphbenterrors_delete +  :: (Ptr RawTGraphBentErrors) -> IO ()++foreign import ccall "HROOTHistTGraphBentErrors.h TGraphBentErrors_newTGraphBentErrors" c_tgraphbenterrors_newtgraphbenterrors +  :: CInt -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> IO (Ptr RawTGraphBentErrors)+
+ src/HROOT/Hist/TGraphBentErrors/Implementation.hs view
@@ -0,0 +1,210 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, +             OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TGraphBentErrors.Implementation where+++import FFICXX.Runtime.Cast++import HROOT.Hist.TGraphBentErrors.RawType+import HROOT.Hist.TGraphBentErrors.FFI+import HROOT.Hist.TGraphBentErrors.Interface+import HROOT.Hist.TGraphBentErrors.Cast+import HROOT.Hist.TF1.RawType+import HROOT.Hist.TF1.Cast+import HROOT.Hist.TF1.Interface+import HROOT.Hist.TH1F.RawType+import HROOT.Hist.TH1F.Cast+import HROOT.Hist.TH1F.Interface+import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.Cast+import HROOT.Hist.TAxis.Interface+import HROOT.Core.TClass.RawType+import HROOT.Core.TClass.Cast+import HROOT.Core.TClass.Interface+import HROOT.Hist.TGraph.RawType+import HROOT.Hist.TGraph.Cast+import HROOT.Hist.TGraph.Interface+import HROOT.Core.TNamed.RawType+import HROOT.Core.TNamed.Cast+import HROOT.Core.TNamed.Interface+import HROOT.Core.TAttLine.RawType+import HROOT.Core.TAttLine.Cast+import HROOT.Core.TAttLine.Interface+import HROOT.Core.TAttFill.RawType+import HROOT.Core.TAttFill.Cast+import HROOT.Core.TAttFill.Interface+import HROOT.Core.TAttMarker.RawType+import HROOT.Core.TAttMarker.Cast+import HROOT.Core.TAttMarker.Interface+import HROOT.Core.TObject.RawType+import HROOT.Core.TObject.Cast+import HROOT.Core.TObject.Interface+import HROOT.Core.Deletable.RawType+import HROOT.Core.Deletable.Cast+import HROOT.Core.Deletable.Interface++import Data.Word+import Foreign.C+import Foreign.Ptr +import Foreign.ForeignPtr++import System.IO.Unsafe+++instance ITGraphBentErrors TGraphBentErrors where+instance ITGraph TGraphBentErrors where+  apply = xform1 c_tgraphbenterrors_apply+  chisquare = xform1 c_tgraphbenterrors_chisquare+  drawGraph = xform4 c_tgraphbenterrors_drawgraph+  drawPanelTGraph = xform0 c_tgraphbenterrors_drawpaneltgraph+  expand = xform2 c_tgraphbenterrors_expand+  fitPanelTGraph = xform0 c_tgraphbenterrors_fitpaneltgraph+  getCorrelationFactorTGraph = xform0 c_tgraphbenterrors_getcorrelationfactortgraph+  getCovarianceTGraph = xform0 c_tgraphbenterrors_getcovariancetgraph+  getMeanTGraph = xform1 c_tgraphbenterrors_getmeantgraph+  getRMSTGraph = xform1 c_tgraphbenterrors_getrmstgraph+  getErrorX = xform1 c_tgraphbenterrors_geterrorx+  getErrorY = xform1 c_tgraphbenterrors_geterrory+  getErrorXhigh = xform1 c_tgraphbenterrors_geterrorxhigh+  getErrorXlow = xform1 c_tgraphbenterrors_geterrorxlow+  getErrorYhigh = xform1 c_tgraphbenterrors_geterroryhigh+  getErrorYlow = xform1 c_tgraphbenterrors_geterrorylow+  initExpo = xform2 c_tgraphbenterrors_initexpo+  initGaus = xform2 c_tgraphbenterrors_initgaus+  initPolynom = xform2 c_tgraphbenterrors_initpolynom+  insertPoint = xform0 c_tgraphbenterrors_insertpoint+  integralTGraph = xform2 c_tgraphbenterrors_integraltgraph+  isEditable = xform0 c_tgraphbenterrors_iseditable+  isInsideTGraph = xform2 c_tgraphbenterrors_isinsidetgraph+  leastSquareFit = xform4 c_tgraphbenterrors_leastsquarefit+  paintStats = xform1 c_tgraphbenterrors_paintstats+  removePoint = xform1 c_tgraphbenterrors_removepoint+  setEditable = xform1 c_tgraphbenterrors_seteditable+  setHistogram = xform1 c_tgraphbenterrors_sethistogram+  setMaximumTGraph = xform1 c_tgraphbenterrors_setmaximumtgraph+  setMinimumTGraph = xform1 c_tgraphbenterrors_setminimumtgraph+  set = xform1 c_tgraphbenterrors_set+  setPoint = xform3 c_tgraphbenterrors_setpoint+instance ITNamed TGraphBentErrors where+  setName = xform1 c_tgraphbenterrors_setname+  setNameTitle = xform2 c_tgraphbenterrors_setnametitle+  setTitle = xform1 c_tgraphbenterrors_settitle+instance ITAttLine TGraphBentErrors where+  getLineColor = xform0 c_tgraphbenterrors_getlinecolor+  getLineStyle = xform0 c_tgraphbenterrors_getlinestyle+  getLineWidth = xform0 c_tgraphbenterrors_getlinewidth+  resetAttLine = xform1 c_tgraphbenterrors_resetattline+  setLineAttributes = xform0 c_tgraphbenterrors_setlineattributes+  setLineColor = xform1 c_tgraphbenterrors_setlinecolor+  setLineStyle = xform1 c_tgraphbenterrors_setlinestyle+  setLineWidth = xform1 c_tgraphbenterrors_setlinewidth+instance ITAttFill TGraphBentErrors where+  setFillColor = xform1 c_tgraphbenterrors_setfillcolor+  setFillStyle = xform1 c_tgraphbenterrors_setfillstyle+instance ITAttMarker TGraphBentErrors where+  getMarkerColor = xform0 c_tgraphbenterrors_getmarkercolor+  getMarkerStyle = xform0 c_tgraphbenterrors_getmarkerstyle+  getMarkerSize = xform0 c_tgraphbenterrors_getmarkersize+  resetAttMarker = xform1 c_tgraphbenterrors_resetattmarker+  setMarkerAttributes = xform0 c_tgraphbenterrors_setmarkerattributes+  setMarkerColor = xform1 c_tgraphbenterrors_setmarkercolor+  setMarkerStyle = xform1 c_tgraphbenterrors_setmarkerstyle+  setMarkerSize = xform1 c_tgraphbenterrors_setmarkersize+instance ITObject TGraphBentErrors where+  draw = xform1 c_tgraphbenterrors_draw+  findObject = xform1 c_tgraphbenterrors_findobject+  getName = xform0 c_tgraphbenterrors_getname+  isA = xform0 c_tgraphbenterrors_isa+  paint = xform1 c_tgraphbenterrors_paint+  printObj = xform1 c_tgraphbenterrors_printobj+  saveAs = xform2 c_tgraphbenterrors_saveas+  write = xform3 c_tgraphbenterrors_write+instance IDeletable TGraphBentErrors where+  delete = xform0 c_tgraphbenterrors_delete++instance ITGraphBentErrors (Exist TGraphBentErrors) where++instance ITGraph (Exist TGraphBentErrors) where+  apply (ETGraphBentErrors x) = apply x+  chisquare (ETGraphBentErrors x) = chisquare x+  drawGraph (ETGraphBentErrors x) = drawGraph x+  drawPanelTGraph (ETGraphBentErrors x) = drawPanelTGraph x+  expand (ETGraphBentErrors x) = expand x+  fitPanelTGraph (ETGraphBentErrors x) = fitPanelTGraph x+  getCorrelationFactorTGraph (ETGraphBentErrors x) = getCorrelationFactorTGraph x+  getCovarianceTGraph (ETGraphBentErrors x) = getCovarianceTGraph x+  getMeanTGraph (ETGraphBentErrors x) = getMeanTGraph x+  getRMSTGraph (ETGraphBentErrors x) = getRMSTGraph x+  getErrorX (ETGraphBentErrors x) = getErrorX x+  getErrorY (ETGraphBentErrors x) = getErrorY x+  getErrorXhigh (ETGraphBentErrors x) = getErrorXhigh x+  getErrorXlow (ETGraphBentErrors x) = getErrorXlow x+  getErrorYhigh (ETGraphBentErrors x) = getErrorYhigh x+  getErrorYlow (ETGraphBentErrors x) = getErrorYlow x+  initExpo (ETGraphBentErrors x) = initExpo x+  initGaus (ETGraphBentErrors x) = initGaus x+  initPolynom (ETGraphBentErrors x) = initPolynom x+  insertPoint (ETGraphBentErrors x) = insertPoint x+  integralTGraph (ETGraphBentErrors x) = integralTGraph x+  isEditable (ETGraphBentErrors x) = isEditable x+  isInsideTGraph (ETGraphBentErrors x) = isInsideTGraph x+  leastSquareFit (ETGraphBentErrors x) = leastSquareFit x+  paintStats (ETGraphBentErrors x) = paintStats x+  removePoint (ETGraphBentErrors x) = removePoint x+  setEditable (ETGraphBentErrors x) = setEditable x+  setHistogram (ETGraphBentErrors x) = setHistogram x+  setMaximumTGraph (ETGraphBentErrors x) = setMaximumTGraph x+  setMinimumTGraph (ETGraphBentErrors x) = setMinimumTGraph x+  set (ETGraphBentErrors x) = set x+  setPoint (ETGraphBentErrors x) = setPoint x+instance ITNamed (Exist TGraphBentErrors) where+  setName (ETGraphBentErrors x) = setName x+  setNameTitle (ETGraphBentErrors x) = setNameTitle x+  setTitle (ETGraphBentErrors x) = setTitle x+instance ITAttLine (Exist TGraphBentErrors) where+  getLineColor (ETGraphBentErrors x) = getLineColor x+  getLineStyle (ETGraphBentErrors x) = getLineStyle x+  getLineWidth (ETGraphBentErrors x) = getLineWidth x+  resetAttLine (ETGraphBentErrors x) = resetAttLine x+  setLineAttributes (ETGraphBentErrors x) = setLineAttributes x+  setLineColor (ETGraphBentErrors x) = setLineColor x+  setLineStyle (ETGraphBentErrors x) = setLineStyle x+  setLineWidth (ETGraphBentErrors x) = setLineWidth x+instance ITAttFill (Exist TGraphBentErrors) where+  setFillColor (ETGraphBentErrors x) = setFillColor x+  setFillStyle (ETGraphBentErrors x) = setFillStyle x+instance ITAttMarker (Exist TGraphBentErrors) where+  getMarkerColor (ETGraphBentErrors x) = getMarkerColor x+  getMarkerStyle (ETGraphBentErrors x) = getMarkerStyle x+  getMarkerSize (ETGraphBentErrors x) = getMarkerSize x+  resetAttMarker (ETGraphBentErrors x) = resetAttMarker x+  setMarkerAttributes (ETGraphBentErrors x) = setMarkerAttributes x+  setMarkerColor (ETGraphBentErrors x) = setMarkerColor x+  setMarkerStyle (ETGraphBentErrors x) = setMarkerStyle x+  setMarkerSize (ETGraphBentErrors x) = setMarkerSize x+instance ITObject (Exist TGraphBentErrors) where+  draw (ETGraphBentErrors x) = draw x+  findObject (ETGraphBentErrors x) = findObject x+  getName (ETGraphBentErrors x) = getName x+  isA (ETGraphBentErrors x) = isA x+  paint (ETGraphBentErrors x) = paint x+  printObj (ETGraphBentErrors x) = printObj x+  saveAs (ETGraphBentErrors x) = saveAs x+  write (ETGraphBentErrors x) = write x+instance IDeletable (Exist TGraphBentErrors) where+  delete (ETGraphBentErrors x) = delete x+++newTGraphBentErrors :: CInt -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> IO TGraphBentErrors+newTGraphBentErrors = xform10 c_tgraphbenterrors_newtgraphbenterrors++++++instance FPtr (Exist TGraphBentErrors) where+  type Raw (Exist TGraphBentErrors) = RawTGraphBentErrors+  get_fptr (ETGraphBentErrors obj) = castForeignPtr (get_fptr obj)+  cast_fptr_to_obj fptr = ETGraphBentErrors (cast_fptr_to_obj (fptr :: ForeignPtr RawTGraphBentErrors) :: TGraphBentErrors)
+ src/HROOT/Hist/TGraphBentErrors/Interface.hs view
@@ -0,0 +1,36 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++-- module HROOT.Class.Interface where++module HROOT.Hist.TGraphBentErrors.Interface where+++import Data.Word+import Foreign.C+import Foreign.Ptr+import Foreign.ForeignPtr+import FFICXX.Runtime.Cast++import HROOT.Hist.TGraphBentErrors.RawType++import HROOT.Hist.TGraph.Interface+---- ============ ----++++class (ITGraph a) => ITGraphBentErrors a where++instance Existable TGraphBentErrors where+  data Exist TGraphBentErrors = forall a. (FPtr a, ITGraphBentErrors a) => ETGraphBentErrors a++upcastTGraphBentErrors :: (FPtr a, ITGraphBentErrors a) => a -> TGraphBentErrors+upcastTGraphBentErrors h = let fh = get_fptr h+                               fh2 :: ForeignPtr RawTGraphBentErrors = castForeignPtr fh+                           in cast_fptr_to_obj fh2++downcastTGraphBentErrors :: (FPtr a, ITGraphBentErrors a) => TGraphBentErrors -> a +downcastTGraphBentErrors h = let fh = get_fptr h+                                 fh2 = castForeignPtr fh+                             in cast_fptr_to_obj fh2
+ src/HROOT/Hist/TGraphBentErrors/RawType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++module HROOT.Hist.TGraphBentErrors.RawType where+++import Foreign.ForeignPtr+import FFICXX.Runtime.Cast  ++data RawTGraphBentErrors+newtype TGraphBentErrors = TGraphBentErrors (ForeignPtr RawTGraphBentErrors) deriving (Eq, Ord, Show)+instance FPtr TGraphBentErrors where+   type Raw TGraphBentErrors = RawTGraphBentErrors+   get_fptr (TGraphBentErrors fptr) = fptr+   cast_fptr_to_obj = TGraphBentErrors
+ src/HROOT/Hist/TGraphErrors.hs view
@@ -0,0 +1,15 @@+module HROOT.Hist.TGraphErrors+  (+    TGraphErrors(..)+  , ITGraphErrors+  , upcastTGraphErrors+  , downcastTGraphErrors+  , newTGraphErrors+ +  ) where++import HROOT.Hist.TGraphErrors.RawType+import HROOT.Hist.TGraphErrors.Interface+import HROOT.Hist.TGraphErrors.Implementation++
+ src/HROOT/Hist/TGraphErrors/Cast.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeFamilies, +             MultiParamTypeClasses, OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TGraphErrors.Cast where+++import Foreign.Ptr+import Foreign.ForeignPtr (castForeignPtr, newForeignPtr_)+import Foreign.ForeignPtr.Unsafe+import FFICXX.Runtime.Cast+import System.IO.Unsafe++import HROOT.Hist.TGraphErrors.RawType+import HROOT.Hist.TGraphErrors.Interface++instance (ITGraphErrors a, FPtr a) => Castable a (Ptr RawTGraphErrors) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ ++instance Castable TGraphErrors (Ptr RawTGraphErrors) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+ src/HROOT/Hist/TGraphErrors/FFI.hsc view
@@ -0,0 +1,212 @@+{-# LANGUAGE ForeignFunctionInterface #-}++-- module HROOT.Class.FFI where++module HROOT.Hist.TGraphErrors.FFI where+++import Foreign.C            +import Foreign.Ptr++-- import HROOT.Class.Interface++-- #include ""++import HROOT.Hist.TGraphErrors.RawType+import HROOT.Hist.TF1.RawType+import HROOT.Hist.TH1F.RawType+import HROOT.Hist.TAxis.RawType+import HROOT.Core.TObject.RawType+import HROOT.Core.TClass.RawType++#include "HROOTHistTGraphErrors.h"++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_Apply" c_tgrapherrors_apply +  :: (Ptr RawTGraphErrors) -> (Ptr RawTF1) -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_Chisquare" c_tgrapherrors_chisquare +  :: (Ptr RawTGraphErrors) -> (Ptr RawTF1) -> IO CDouble++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_DrawGraph" c_tgrapherrors_drawgraph +  :: (Ptr RawTGraphErrors) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CString -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_drawPanelTGraph" c_tgrapherrors_drawpaneltgraph +  :: (Ptr RawTGraphErrors) -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_Expand" c_tgrapherrors_expand +  :: (Ptr RawTGraphErrors) -> CInt -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_FitPanelTGraph" c_tgrapherrors_fitpaneltgraph +  :: (Ptr RawTGraphErrors) -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_getCorrelationFactorTGraph" c_tgrapherrors_getcorrelationfactortgraph +  :: (Ptr RawTGraphErrors) -> IO CDouble++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_getCovarianceTGraph" c_tgrapherrors_getcovariancetgraph +  :: (Ptr RawTGraphErrors) -> IO CDouble++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_getMeanTGraph" c_tgrapherrors_getmeantgraph +  :: (Ptr RawTGraphErrors) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_getRMSTGraph" c_tgrapherrors_getrmstgraph +  :: (Ptr RawTGraphErrors) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_GetErrorX" c_tgrapherrors_geterrorx +  :: (Ptr RawTGraphErrors) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_GetErrorY" c_tgrapherrors_geterrory +  :: (Ptr RawTGraphErrors) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_GetErrorXhigh" c_tgrapherrors_geterrorxhigh +  :: (Ptr RawTGraphErrors) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_GetErrorXlow" c_tgrapherrors_geterrorxlow +  :: (Ptr RawTGraphErrors) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_GetErrorYhigh" c_tgrapherrors_geterroryhigh +  :: (Ptr RawTGraphErrors) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_GetErrorYlow" c_tgrapherrors_geterrorylow +  :: (Ptr RawTGraphErrors) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_InitExpo" c_tgrapherrors_initexpo +  :: (Ptr RawTGraphErrors) -> CDouble -> CDouble -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_InitGaus" c_tgrapherrors_initgaus +  :: (Ptr RawTGraphErrors) -> CDouble -> CDouble -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_InitPolynom" c_tgrapherrors_initpolynom +  :: (Ptr RawTGraphErrors) -> CDouble -> CDouble -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_InsertPoint" c_tgrapherrors_insertpoint +  :: (Ptr RawTGraphErrors) -> IO CInt++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_integralTGraph" c_tgrapherrors_integraltgraph +  :: (Ptr RawTGraphErrors) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_IsEditable" c_tgrapherrors_iseditable +  :: (Ptr RawTGraphErrors) -> IO CInt++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_isInsideTGraph" c_tgrapherrors_isinsidetgraph +  :: (Ptr RawTGraphErrors) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_LeastSquareFit" c_tgrapherrors_leastsquarefit +  :: (Ptr RawTGraphErrors) -> CInt -> (Ptr CDouble) -> CDouble -> CDouble -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_PaintStats" c_tgrapherrors_paintstats +  :: (Ptr RawTGraphErrors) -> (Ptr RawTF1) -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_RemovePoint" c_tgrapherrors_removepoint +  :: (Ptr RawTGraphErrors) -> CInt -> IO CInt++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_SetEditable" c_tgrapherrors_seteditable +  :: (Ptr RawTGraphErrors) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_SetHistogram" c_tgrapherrors_sethistogram +  :: (Ptr RawTGraphErrors) -> (Ptr RawTH1F) -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_setMaximumTGraph" c_tgrapherrors_setmaximumtgraph +  :: (Ptr RawTGraphErrors) -> CDouble -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_setMinimumTGraph" c_tgrapherrors_setminimumtgraph +  :: (Ptr RawTGraphErrors) -> CDouble -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_Set" c_tgrapherrors_set +  :: (Ptr RawTGraphErrors) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_SetPoint" c_tgrapherrors_setpoint +  :: (Ptr RawTGraphErrors) -> CInt -> CDouble -> CDouble -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_SetName" c_tgrapherrors_setname +  :: (Ptr RawTGraphErrors) -> CString -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_SetNameTitle" c_tgrapherrors_setnametitle +  :: (Ptr RawTGraphErrors) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_SetTitle" c_tgrapherrors_settitle +  :: (Ptr RawTGraphErrors) -> CString -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_GetLineColor" c_tgrapherrors_getlinecolor +  :: (Ptr RawTGraphErrors) -> IO CInt++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_GetLineStyle" c_tgrapherrors_getlinestyle +  :: (Ptr RawTGraphErrors) -> IO CInt++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_GetLineWidth" c_tgrapherrors_getlinewidth +  :: (Ptr RawTGraphErrors) -> IO CInt++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_ResetAttLine" c_tgrapherrors_resetattline +  :: (Ptr RawTGraphErrors) -> CString -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_SetLineAttributes" c_tgrapherrors_setlineattributes +  :: (Ptr RawTGraphErrors) -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_SetLineColor" c_tgrapherrors_setlinecolor +  :: (Ptr RawTGraphErrors) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_SetLineStyle" c_tgrapherrors_setlinestyle +  :: (Ptr RawTGraphErrors) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_SetLineWidth" c_tgrapherrors_setlinewidth +  :: (Ptr RawTGraphErrors) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_SetFillColor" c_tgrapherrors_setfillcolor +  :: (Ptr RawTGraphErrors) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_SetFillStyle" c_tgrapherrors_setfillstyle +  :: (Ptr RawTGraphErrors) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_GetMarkerColor" c_tgrapherrors_getmarkercolor +  :: (Ptr RawTGraphErrors) -> IO CInt++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_GetMarkerStyle" c_tgrapherrors_getmarkerstyle +  :: (Ptr RawTGraphErrors) -> IO CInt++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_GetMarkerSize" c_tgrapherrors_getmarkersize +  :: (Ptr RawTGraphErrors) -> IO CDouble++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_ResetAttMarker" c_tgrapherrors_resetattmarker +  :: (Ptr RawTGraphErrors) -> CString -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_SetMarkerAttributes" c_tgrapherrors_setmarkerattributes +  :: (Ptr RawTGraphErrors) -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_SetMarkerColor" c_tgrapherrors_setmarkercolor +  :: (Ptr RawTGraphErrors) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_SetMarkerStyle" c_tgrapherrors_setmarkerstyle +  :: (Ptr RawTGraphErrors) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_SetMarkerSize" c_tgrapherrors_setmarkersize +  :: (Ptr RawTGraphErrors) -> CInt -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_Draw" c_tgrapherrors_draw +  :: (Ptr RawTGraphErrors) -> CString -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_FindObject" c_tgrapherrors_findobject +  :: (Ptr RawTGraphErrors) -> CString -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_GetName" c_tgrapherrors_getname +  :: (Ptr RawTGraphErrors) -> IO CString++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_IsA" c_tgrapherrors_isa +  :: (Ptr RawTGraphErrors) -> IO (Ptr RawTClass)++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_Paint" c_tgrapherrors_paint +  :: (Ptr RawTGraphErrors) -> CString -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_printObj" c_tgrapherrors_printobj +  :: (Ptr RawTGraphErrors) -> CString -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_SaveAs" c_tgrapherrors_saveas +  :: (Ptr RawTGraphErrors) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_Write" c_tgrapherrors_write +  :: (Ptr RawTGraphErrors) -> CString -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_delete" c_tgrapherrors_delete +  :: (Ptr RawTGraphErrors) -> IO ()++foreign import ccall "HROOTHistTGraphErrors.h TGraphErrors_newTGraphErrors" c_tgrapherrors_newtgrapherrors +  :: CInt -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> IO (Ptr RawTGraphErrors)+
+ src/HROOT/Hist/TGraphErrors/Implementation.hs view
@@ -0,0 +1,210 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, +             OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TGraphErrors.Implementation where+++import FFICXX.Runtime.Cast++import HROOT.Hist.TGraphErrors.RawType+import HROOT.Hist.TGraphErrors.FFI+import HROOT.Hist.TGraphErrors.Interface+import HROOT.Hist.TGraphErrors.Cast+import HROOT.Hist.TF1.RawType+import HROOT.Hist.TF1.Cast+import HROOT.Hist.TF1.Interface+import HROOT.Hist.TH1F.RawType+import HROOT.Hist.TH1F.Cast+import HROOT.Hist.TH1F.Interface+import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.Cast+import HROOT.Hist.TAxis.Interface+import HROOT.Core.TClass.RawType+import HROOT.Core.TClass.Cast+import HROOT.Core.TClass.Interface+import HROOT.Hist.TGraph.RawType+import HROOT.Hist.TGraph.Cast+import HROOT.Hist.TGraph.Interface+import HROOT.Core.TNamed.RawType+import HROOT.Core.TNamed.Cast+import HROOT.Core.TNamed.Interface+import HROOT.Core.TAttLine.RawType+import HROOT.Core.TAttLine.Cast+import HROOT.Core.TAttLine.Interface+import HROOT.Core.TAttFill.RawType+import HROOT.Core.TAttFill.Cast+import HROOT.Core.TAttFill.Interface+import HROOT.Core.TAttMarker.RawType+import HROOT.Core.TAttMarker.Cast+import HROOT.Core.TAttMarker.Interface+import HROOT.Core.TObject.RawType+import HROOT.Core.TObject.Cast+import HROOT.Core.TObject.Interface+import HROOT.Core.Deletable.RawType+import HROOT.Core.Deletable.Cast+import HROOT.Core.Deletable.Interface++import Data.Word+import Foreign.C+import Foreign.Ptr +import Foreign.ForeignPtr++import System.IO.Unsafe+++instance ITGraphErrors TGraphErrors where+instance ITGraph TGraphErrors where+  apply = xform1 c_tgrapherrors_apply+  chisquare = xform1 c_tgrapherrors_chisquare+  drawGraph = xform4 c_tgrapherrors_drawgraph+  drawPanelTGraph = xform0 c_tgrapherrors_drawpaneltgraph+  expand = xform2 c_tgrapherrors_expand+  fitPanelTGraph = xform0 c_tgrapherrors_fitpaneltgraph+  getCorrelationFactorTGraph = xform0 c_tgrapherrors_getcorrelationfactortgraph+  getCovarianceTGraph = xform0 c_tgrapherrors_getcovariancetgraph+  getMeanTGraph = xform1 c_tgrapherrors_getmeantgraph+  getRMSTGraph = xform1 c_tgrapherrors_getrmstgraph+  getErrorX = xform1 c_tgrapherrors_geterrorx+  getErrorY = xform1 c_tgrapherrors_geterrory+  getErrorXhigh = xform1 c_tgrapherrors_geterrorxhigh+  getErrorXlow = xform1 c_tgrapherrors_geterrorxlow+  getErrorYhigh = xform1 c_tgrapherrors_geterroryhigh+  getErrorYlow = xform1 c_tgrapherrors_geterrorylow+  initExpo = xform2 c_tgrapherrors_initexpo+  initGaus = xform2 c_tgrapherrors_initgaus+  initPolynom = xform2 c_tgrapherrors_initpolynom+  insertPoint = xform0 c_tgrapherrors_insertpoint+  integralTGraph = xform2 c_tgrapherrors_integraltgraph+  isEditable = xform0 c_tgrapherrors_iseditable+  isInsideTGraph = xform2 c_tgrapherrors_isinsidetgraph+  leastSquareFit = xform4 c_tgrapherrors_leastsquarefit+  paintStats = xform1 c_tgrapherrors_paintstats+  removePoint = xform1 c_tgrapherrors_removepoint+  setEditable = xform1 c_tgrapherrors_seteditable+  setHistogram = xform1 c_tgrapherrors_sethistogram+  setMaximumTGraph = xform1 c_tgrapherrors_setmaximumtgraph+  setMinimumTGraph = xform1 c_tgrapherrors_setminimumtgraph+  set = xform1 c_tgrapherrors_set+  setPoint = xform3 c_tgrapherrors_setpoint+instance ITNamed TGraphErrors where+  setName = xform1 c_tgrapherrors_setname+  setNameTitle = xform2 c_tgrapherrors_setnametitle+  setTitle = xform1 c_tgrapherrors_settitle+instance ITAttLine TGraphErrors where+  getLineColor = xform0 c_tgrapherrors_getlinecolor+  getLineStyle = xform0 c_tgrapherrors_getlinestyle+  getLineWidth = xform0 c_tgrapherrors_getlinewidth+  resetAttLine = xform1 c_tgrapherrors_resetattline+  setLineAttributes = xform0 c_tgrapherrors_setlineattributes+  setLineColor = xform1 c_tgrapherrors_setlinecolor+  setLineStyle = xform1 c_tgrapherrors_setlinestyle+  setLineWidth = xform1 c_tgrapherrors_setlinewidth+instance ITAttFill TGraphErrors where+  setFillColor = xform1 c_tgrapherrors_setfillcolor+  setFillStyle = xform1 c_tgrapherrors_setfillstyle+instance ITAttMarker TGraphErrors where+  getMarkerColor = xform0 c_tgrapherrors_getmarkercolor+  getMarkerStyle = xform0 c_tgrapherrors_getmarkerstyle+  getMarkerSize = xform0 c_tgrapherrors_getmarkersize+  resetAttMarker = xform1 c_tgrapherrors_resetattmarker+  setMarkerAttributes = xform0 c_tgrapherrors_setmarkerattributes+  setMarkerColor = xform1 c_tgrapherrors_setmarkercolor+  setMarkerStyle = xform1 c_tgrapherrors_setmarkerstyle+  setMarkerSize = xform1 c_tgrapherrors_setmarkersize+instance ITObject TGraphErrors where+  draw = xform1 c_tgrapherrors_draw+  findObject = xform1 c_tgrapherrors_findobject+  getName = xform0 c_tgrapherrors_getname+  isA = xform0 c_tgrapherrors_isa+  paint = xform1 c_tgrapherrors_paint+  printObj = xform1 c_tgrapherrors_printobj+  saveAs = xform2 c_tgrapherrors_saveas+  write = xform3 c_tgrapherrors_write+instance IDeletable TGraphErrors where+  delete = xform0 c_tgrapherrors_delete++instance ITGraphErrors (Exist TGraphErrors) where++instance ITGraph (Exist TGraphErrors) where+  apply (ETGraphErrors x) = apply x+  chisquare (ETGraphErrors x) = chisquare x+  drawGraph (ETGraphErrors x) = drawGraph x+  drawPanelTGraph (ETGraphErrors x) = drawPanelTGraph x+  expand (ETGraphErrors x) = expand x+  fitPanelTGraph (ETGraphErrors x) = fitPanelTGraph x+  getCorrelationFactorTGraph (ETGraphErrors x) = getCorrelationFactorTGraph x+  getCovarianceTGraph (ETGraphErrors x) = getCovarianceTGraph x+  getMeanTGraph (ETGraphErrors x) = getMeanTGraph x+  getRMSTGraph (ETGraphErrors x) = getRMSTGraph x+  getErrorX (ETGraphErrors x) = getErrorX x+  getErrorY (ETGraphErrors x) = getErrorY x+  getErrorXhigh (ETGraphErrors x) = getErrorXhigh x+  getErrorXlow (ETGraphErrors x) = getErrorXlow x+  getErrorYhigh (ETGraphErrors x) = getErrorYhigh x+  getErrorYlow (ETGraphErrors x) = getErrorYlow x+  initExpo (ETGraphErrors x) = initExpo x+  initGaus (ETGraphErrors x) = initGaus x+  initPolynom (ETGraphErrors x) = initPolynom x+  insertPoint (ETGraphErrors x) = insertPoint x+  integralTGraph (ETGraphErrors x) = integralTGraph x+  isEditable (ETGraphErrors x) = isEditable x+  isInsideTGraph (ETGraphErrors x) = isInsideTGraph x+  leastSquareFit (ETGraphErrors x) = leastSquareFit x+  paintStats (ETGraphErrors x) = paintStats x+  removePoint (ETGraphErrors x) = removePoint x+  setEditable (ETGraphErrors x) = setEditable x+  setHistogram (ETGraphErrors x) = setHistogram x+  setMaximumTGraph (ETGraphErrors x) = setMaximumTGraph x+  setMinimumTGraph (ETGraphErrors x) = setMinimumTGraph x+  set (ETGraphErrors x) = set x+  setPoint (ETGraphErrors x) = setPoint x+instance ITNamed (Exist TGraphErrors) where+  setName (ETGraphErrors x) = setName x+  setNameTitle (ETGraphErrors x) = setNameTitle x+  setTitle (ETGraphErrors x) = setTitle x+instance ITAttLine (Exist TGraphErrors) where+  getLineColor (ETGraphErrors x) = getLineColor x+  getLineStyle (ETGraphErrors x) = getLineStyle x+  getLineWidth (ETGraphErrors x) = getLineWidth x+  resetAttLine (ETGraphErrors x) = resetAttLine x+  setLineAttributes (ETGraphErrors x) = setLineAttributes x+  setLineColor (ETGraphErrors x) = setLineColor x+  setLineStyle (ETGraphErrors x) = setLineStyle x+  setLineWidth (ETGraphErrors x) = setLineWidth x+instance ITAttFill (Exist TGraphErrors) where+  setFillColor (ETGraphErrors x) = setFillColor x+  setFillStyle (ETGraphErrors x) = setFillStyle x+instance ITAttMarker (Exist TGraphErrors) where+  getMarkerColor (ETGraphErrors x) = getMarkerColor x+  getMarkerStyle (ETGraphErrors x) = getMarkerStyle x+  getMarkerSize (ETGraphErrors x) = getMarkerSize x+  resetAttMarker (ETGraphErrors x) = resetAttMarker x+  setMarkerAttributes (ETGraphErrors x) = setMarkerAttributes x+  setMarkerColor (ETGraphErrors x) = setMarkerColor x+  setMarkerStyle (ETGraphErrors x) = setMarkerStyle x+  setMarkerSize (ETGraphErrors x) = setMarkerSize x+instance ITObject (Exist TGraphErrors) where+  draw (ETGraphErrors x) = draw x+  findObject (ETGraphErrors x) = findObject x+  getName (ETGraphErrors x) = getName x+  isA (ETGraphErrors x) = isA x+  paint (ETGraphErrors x) = paint x+  printObj (ETGraphErrors x) = printObj x+  saveAs (ETGraphErrors x) = saveAs x+  write (ETGraphErrors x) = write x+instance IDeletable (Exist TGraphErrors) where+  delete (ETGraphErrors x) = delete x+++newTGraphErrors :: CInt -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> IO TGraphErrors+newTGraphErrors = xform4 c_tgrapherrors_newtgrapherrors++++++instance FPtr (Exist TGraphErrors) where+  type Raw (Exist TGraphErrors) = RawTGraphErrors+  get_fptr (ETGraphErrors obj) = castForeignPtr (get_fptr obj)+  cast_fptr_to_obj fptr = ETGraphErrors (cast_fptr_to_obj (fptr :: ForeignPtr RawTGraphErrors) :: TGraphErrors)
+ src/HROOT/Hist/TGraphErrors/Interface.hs view
@@ -0,0 +1,36 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++-- module HROOT.Class.Interface where++module HROOT.Hist.TGraphErrors.Interface where+++import Data.Word+import Foreign.C+import Foreign.Ptr+import Foreign.ForeignPtr+import FFICXX.Runtime.Cast++import HROOT.Hist.TGraphErrors.RawType++import HROOT.Hist.TGraph.Interface+---- ============ ----++++class (ITGraph a) => ITGraphErrors a where++instance Existable TGraphErrors where+  data Exist TGraphErrors = forall a. (FPtr a, ITGraphErrors a) => ETGraphErrors a++upcastTGraphErrors :: (FPtr a, ITGraphErrors a) => a -> TGraphErrors+upcastTGraphErrors h = let fh = get_fptr h+                           fh2 :: ForeignPtr RawTGraphErrors = castForeignPtr fh+                       in cast_fptr_to_obj fh2++downcastTGraphErrors :: (FPtr a, ITGraphErrors a) => TGraphErrors -> a +downcastTGraphErrors h = let fh = get_fptr h+                             fh2 = castForeignPtr fh+                         in cast_fptr_to_obj fh2
+ src/HROOT/Hist/TGraphErrors/RawType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++module HROOT.Hist.TGraphErrors.RawType where+++import Foreign.ForeignPtr+import FFICXX.Runtime.Cast  ++data RawTGraphErrors+newtype TGraphErrors = TGraphErrors (ForeignPtr RawTGraphErrors) deriving (Eq, Ord, Show)+instance FPtr TGraphErrors where+   type Raw TGraphErrors = RawTGraphErrors+   get_fptr (TGraphErrors fptr) = fptr+   cast_fptr_to_obj = TGraphErrors
+ src/HROOT/Hist/TH1.hs view
@@ -0,0 +1,26 @@+module HROOT.Hist.TH1+  (+    TH1(..)+  , ITH1(..)+  , upcastTH1+  , downcastTH1+  , tH1GetAsymmetry+  , tH1GetBufferLength+  , tH1GetBufferSize+  , tH1GetDirectory+  , tH1IsBinOverflow+  , tH1IsBinUnderflow+  , tH1UseCurrentStyle+  , tH1GetDefaultBufferSize+  , tH1GetDefaultSumw2+  , tH1SetDefaultBufferSize+  , tH1SetDefaultSumw2+  , tH1SmoothArray+  , tH1StatOverflows +  ) where++import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH1.Interface+import HROOT.Hist.TH1.Implementation++
+ src/HROOT/Hist/TH1/Cast.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeFamilies, +             MultiParamTypeClasses, OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH1.Cast where+++import Foreign.Ptr+import Foreign.ForeignPtr (castForeignPtr, newForeignPtr_)+import Foreign.ForeignPtr.Unsafe+import FFICXX.Runtime.Cast+import System.IO.Unsafe++import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH1.Interface++instance (ITH1 a, FPtr a) => Castable a (Ptr RawTH1) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ ++instance Castable TH1 (Ptr RawTH1) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+ src/HROOT/Hist/TH1/FFI.hsc view
@@ -0,0 +1,534 @@+{-# LANGUAGE ForeignFunctionInterface #-}++-- module HROOT.Class.FFI where++module HROOT.Hist.TH1.FFI where+++import Foreign.C            +import Foreign.Ptr++-- import HROOT.Class.Interface++-- #include ""++import HROOT.Hist.TH1.RawType+import HROOT.Core.TObject.RawType+import HROOT.Core.TClass.RawType+import HROOT.Core.TDirectory.RawType+import HROOT.Hist.TF1.RawType+import HROOT.Core.TArrayD.RawType+import HROOT.Hist.TAxis.RawType++#include "HROOTHistTH1.h"++foreign import ccall "HROOTHistTH1.h TH1_Draw" c_th1_draw +  :: (Ptr RawTH1) -> CString -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_FindObject" c_th1_findobject +  :: (Ptr RawTH1) -> CString -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTH1.h TH1_GetName" c_th1_getname +  :: (Ptr RawTH1) -> IO CString++foreign import ccall "HROOTHistTH1.h TH1_IsA" c_th1_isa +  :: (Ptr RawTH1) -> IO (Ptr RawTClass)++foreign import ccall "HROOTHistTH1.h TH1_Paint" c_th1_paint +  :: (Ptr RawTH1) -> CString -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_printObj" c_th1_printobj +  :: (Ptr RawTH1) -> CString -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SaveAs" c_th1_saveas +  :: (Ptr RawTH1) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_Write" c_th1_write +  :: (Ptr RawTH1) -> CString -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1.h TH1_GetLineColor" c_th1_getlinecolor +  :: (Ptr RawTH1) -> IO CInt++foreign import ccall "HROOTHistTH1.h TH1_GetLineStyle" c_th1_getlinestyle +  :: (Ptr RawTH1) -> IO CInt++foreign import ccall "HROOTHistTH1.h TH1_GetLineWidth" c_th1_getlinewidth +  :: (Ptr RawTH1) -> IO CInt++foreign import ccall "HROOTHistTH1.h TH1_ResetAttLine" c_th1_resetattline +  :: (Ptr RawTH1) -> CString -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SetLineAttributes" c_th1_setlineattributes +  :: (Ptr RawTH1) -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SetLineColor" c_th1_setlinecolor +  :: (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SetLineStyle" c_th1_setlinestyle +  :: (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SetLineWidth" c_th1_setlinewidth +  :: (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SetFillColor" c_th1_setfillcolor +  :: (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SetFillStyle" c_th1_setfillstyle +  :: (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_GetMarkerColor" c_th1_getmarkercolor +  :: (Ptr RawTH1) -> IO CInt++foreign import ccall "HROOTHistTH1.h TH1_GetMarkerStyle" c_th1_getmarkerstyle +  :: (Ptr RawTH1) -> IO CInt++foreign import ccall "HROOTHistTH1.h TH1_GetMarkerSize" c_th1_getmarkersize +  :: (Ptr RawTH1) -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_ResetAttMarker" c_th1_resetattmarker +  :: (Ptr RawTH1) -> CString -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SetMarkerAttributes" c_th1_setmarkerattributes +  :: (Ptr RawTH1) -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SetMarkerColor" c_th1_setmarkercolor +  :: (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SetMarkerStyle" c_th1_setmarkerstyle +  :: (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SetMarkerSize" c_th1_setmarkersize +  :: (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_delete" c_th1_delete +  :: (Ptr RawTH1) -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_Add" c_th1_add +  :: (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_AddBinContent" c_th1_addbincontent +  :: (Ptr RawTH1) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_Chi2Test" c_th1_chi2test +  :: (Ptr RawTH1) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_ComputeIntegral" c_th1_computeintegral +  :: (Ptr RawTH1) -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_DirectoryAutoAdd" c_th1_directoryautoadd +  :: (Ptr RawTH1) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_Divide" c_th1_divide +  :: (Ptr RawTH1) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_drawCopyTH1" c_th1_drawcopyth1 +  :: (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH1.h TH1_DrawNormalized" c_th1_drawnormalized +  :: (Ptr RawTH1) -> CString -> CDouble -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH1.h TH1_drawPanelTH1" c_th1_drawpanelth1 +  :: (Ptr RawTH1) -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_BufferEmpty" c_th1_bufferempty +  :: (Ptr RawTH1) -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1.h TH1_evalF" c_th1_evalf +  :: (Ptr RawTH1) -> (Ptr RawTF1) -> CString -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_FFT" c_th1_fft +  :: (Ptr RawTH1) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH1.h TH1_fill1" c_th1_fill1 +  :: (Ptr RawTH1) -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1.h TH1_fill1w" c_th1_fill1w +  :: (Ptr RawTH1) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1.h TH1_fillN1" c_th1_filln1 +  :: (Ptr RawTH1) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_FillRandom" c_th1_fillrandom +  :: (Ptr RawTH1) -> (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_FindBin" c_th1_findbin +  :: (Ptr RawTH1) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1.h TH1_FindFixBin" c_th1_findfixbin +  :: (Ptr RawTH1) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1.h TH1_FindFirstBinAbove" c_th1_findfirstbinabove +  :: (Ptr RawTH1) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1.h TH1_FindLastBinAbove" c_th1_findlastbinabove +  :: (Ptr RawTH1) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1.h TH1_FitPanelTH1" c_th1_fitpanelth1 +  :: (Ptr RawTH1) -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_tH1GetAsymmetry" c_th1_th1getasymmetry +  :: (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH1.h TH1_tH1GetBufferLength" c_th1_th1getbufferlength +  :: (Ptr RawTH1) -> IO CInt++foreign import ccall "HROOTHistTH1.h TH1_tH1GetBufferSize" c_th1_th1getbuffersize +  :: (Ptr RawTH1) -> IO CInt++foreign import ccall "HROOTHistTH1.h TH1_tH1GetDefaultBufferSize" c_th1_th1getdefaultbuffersize +  :: IO CInt++foreign import ccall "HROOTHistTH1.h TH1_getNdivisionA" c_th1_getndivisiona +  :: (Ptr RawTH1) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1.h TH1_getAxisColorA" c_th1_getaxiscolora +  :: (Ptr RawTH1) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1.h TH1_getLabelColorA" c_th1_getlabelcolora +  :: (Ptr RawTH1) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1.h TH1_getLabelFontA" c_th1_getlabelfonta +  :: (Ptr RawTH1) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1.h TH1_getLabelOffsetA" c_th1_getlabeloffseta +  :: (Ptr RawTH1) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_getLabelSizeA" c_th1_getlabelsizea +  :: (Ptr RawTH1) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_getTitleFontA" c_th1_gettitlefonta +  :: (Ptr RawTH1) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1.h TH1_getTitleOffsetA" c_th1_gettitleoffseta +  :: (Ptr RawTH1) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_getTitleSizeA" c_th1_gettitlesizea +  :: (Ptr RawTH1) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_getTickLengthA" c_th1_getticklengtha +  :: (Ptr RawTH1) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_GetBarOffset" c_th1_getbaroffset +  :: (Ptr RawTH1) -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_GetBarWidth" c_th1_getbarwidth +  :: (Ptr RawTH1) -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_GetContour" c_th1_getcontour +  :: (Ptr RawTH1) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH1.h TH1_GetContourLevel" c_th1_getcontourlevel +  :: (Ptr RawTH1) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_GetContourLevelPad" c_th1_getcontourlevelpad +  :: (Ptr RawTH1) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_GetBin" c_th1_getbin +  :: (Ptr RawTH1) -> CInt -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1.h TH1_GetBinCenter" c_th1_getbincenter +  :: (Ptr RawTH1) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_GetBinContent1" c_th1_getbincontent1 +  :: (Ptr RawTH1) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_GetBinContent2" c_th1_getbincontent2 +  :: (Ptr RawTH1) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_GetBinContent3" c_th1_getbincontent3 +  :: (Ptr RawTH1) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_GetBinError1" c_th1_getbinerror1 +  :: (Ptr RawTH1) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_GetBinError2" c_th1_getbinerror2 +  :: (Ptr RawTH1) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_GetBinError3" c_th1_getbinerror3 +  :: (Ptr RawTH1) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_GetBinLowEdge" c_th1_getbinlowedge +  :: (Ptr RawTH1) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_GetBinWidth" c_th1_getbinwidth +  :: (Ptr RawTH1) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_GetCellContent" c_th1_getcellcontent +  :: (Ptr RawTH1) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_GetCellError" c_th1_getcellerror +  :: (Ptr RawTH1) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_tH1GetDefaultSumw2" c_th1_th1getdefaultsumw2 +  :: IO CInt++foreign import ccall "HROOTHistTH1.h TH1_tH1GetDirectory" c_th1_th1getdirectory +  :: (Ptr RawTH1) -> IO (Ptr RawTDirectory)++foreign import ccall "HROOTHistTH1.h TH1_GetEntries" c_th1_getentries +  :: (Ptr RawTH1) -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_GetEffectiveEntries" c_th1_geteffectiveentries +  :: (Ptr RawTH1) -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_GetFunction" c_th1_getfunction +  :: (Ptr RawTH1) -> CString -> IO (Ptr RawTF1)++foreign import ccall "HROOTHistTH1.h TH1_GetDimension" c_th1_getdimension +  :: (Ptr RawTH1) -> IO CInt++foreign import ccall "HROOTHistTH1.h TH1_GetKurtosis" c_th1_getkurtosis +  :: (Ptr RawTH1) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_GetLowEdge" c_th1_getlowedge +  :: (Ptr RawTH1) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_getMaximumTH1" c_th1_getmaximumth1 +  :: (Ptr RawTH1) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_GetMaximumBin" c_th1_getmaximumbin +  :: (Ptr RawTH1) -> IO CInt++foreign import ccall "HROOTHistTH1.h TH1_GetMaximumStored" c_th1_getmaximumstored +  :: (Ptr RawTH1) -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_getMinimumTH1" c_th1_getminimumth1 +  :: (Ptr RawTH1) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_GetMinimumBin" c_th1_getminimumbin +  :: (Ptr RawTH1) -> IO CInt++foreign import ccall "HROOTHistTH1.h TH1_GetMinimumStored" c_th1_getminimumstored +  :: (Ptr RawTH1) -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_GetMean" c_th1_getmean +  :: (Ptr RawTH1) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_GetMeanError" c_th1_getmeanerror +  :: (Ptr RawTH1) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_GetNbinsX" c_th1_getnbinsx +  :: (Ptr RawTH1) -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_GetNbinsY" c_th1_getnbinsy +  :: (Ptr RawTH1) -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_GetNbinsZ" c_th1_getnbinsz +  :: (Ptr RawTH1) -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_getQuantilesTH1" c_th1_getquantilesth1 +  :: (Ptr RawTH1) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH1.h TH1_GetRandom" c_th1_getrandom +  :: (Ptr RawTH1) -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_GetStats" c_th1_getstats +  :: (Ptr RawTH1) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_GetSumOfWeights" c_th1_getsumofweights +  :: (Ptr RawTH1) -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_GetSumw2" c_th1_getsumw2 +  :: (Ptr RawTH1) -> IO (Ptr RawTArrayD)++foreign import ccall "HROOTHistTH1.h TH1_GetSumw2N" c_th1_getsumw2n +  :: (Ptr RawTH1) -> IO CInt++foreign import ccall "HROOTHistTH1.h TH1_GetRMS" c_th1_getrms +  :: (Ptr RawTH1) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_GetRMSError" c_th1_getrmserror +  :: (Ptr RawTH1) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_GetSkewness" c_th1_getskewness +  :: (Ptr RawTH1) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_integral1" c_th1_integral1 +  :: (Ptr RawTH1) -> CInt -> CInt -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_interpolate1" c_th1_interpolate1 +  :: (Ptr RawTH1) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_interpolate2" c_th1_interpolate2 +  :: (Ptr RawTH1) -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_interpolate3" c_th1_interpolate3 +  :: (Ptr RawTH1) -> CDouble -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_tH1IsBinOverflow" c_th1_th1isbinoverflow +  :: (Ptr RawTH1) -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1.h TH1_tH1IsBinUnderflow" c_th1_th1isbinunderflow +  :: (Ptr RawTH1) -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1.h TH1_KolmogorovTest" c_th1_kolmogorovtest +  :: (Ptr RawTH1) -> (Ptr RawTH1) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1.h TH1_LabelsDeflate" c_th1_labelsdeflate +  :: (Ptr RawTH1) -> CString -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_LabelsInflate" c_th1_labelsinflate +  :: (Ptr RawTH1) -> CString -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_LabelsOption" c_th1_labelsoption +  :: (Ptr RawTH1) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_multiflyF" c_th1_multiflyf +  :: (Ptr RawTH1) -> (Ptr RawTF1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_Multiply" c_th1_multiply +  :: (Ptr RawTH1) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_PutStats" c_th1_putstats +  :: (Ptr RawTH1) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_Rebin" c_th1_rebin +  :: (Ptr RawTH1) -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH1.h TH1_RebinAxis" c_th1_rebinaxis +  :: (Ptr RawTH1) -> CDouble -> (Ptr RawTAxis) -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_Rebuild" c_th1_rebuild +  :: (Ptr RawTH1) -> CString -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_RecursiveRemove" c_th1_recursiveremove +  :: (Ptr RawTH1) -> (Ptr RawTObject) -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_Reset" c_th1_reset +  :: (Ptr RawTH1) -> CString -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_ResetStats" c_th1_resetstats +  :: (Ptr RawTH1) -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_Scale" c_th1_scale +  :: (Ptr RawTH1) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_setAxisColorA" c_th1_setaxiscolora +  :: (Ptr RawTH1) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SetAxisRange" c_th1_setaxisrange +  :: (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SetBarOffset" c_th1_setbaroffset +  :: (Ptr RawTH1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SetBarWidth" c_th1_setbarwidth +  :: (Ptr RawTH1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_setBinContent1" c_th1_setbincontent1 +  :: (Ptr RawTH1) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_setBinContent2" c_th1_setbincontent2 +  :: (Ptr RawTH1) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_setBinContent3" c_th1_setbincontent3 +  :: (Ptr RawTH1) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_setBinError1" c_th1_setbinerror1 +  :: (Ptr RawTH1) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_setBinError2" c_th1_setbinerror2 +  :: (Ptr RawTH1) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_setBinError3" c_th1_setbinerror3 +  :: (Ptr RawTH1) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_setBins1" c_th1_setbins1 +  :: (Ptr RawTH1) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_setBins2" c_th1_setbins2 +  :: (Ptr RawTH1) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_setBins3" c_th1_setbins3 +  :: (Ptr RawTH1) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SetBinsLength" c_th1_setbinslength +  :: (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SetBuffer" c_th1_setbuffer +  :: (Ptr RawTH1) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SetCellContent" c_th1_setcellcontent +  :: (Ptr RawTH1) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SetContent" c_th1_setcontent +  :: (Ptr RawTH1) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SetContour" c_th1_setcontour +  :: (Ptr RawTH1) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SetContourLevel" c_th1_setcontourlevel +  :: (Ptr RawTH1) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_tH1SetDefaultBufferSize" c_th1_th1setdefaultbuffersize +  :: CInt -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_tH1SetDefaultSumw2" c_th1_th1setdefaultsumw2 +  :: CInt -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SetDirectory" c_th1_setdirectory +  :: (Ptr RawTH1) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SetEntries" c_th1_setentries +  :: (Ptr RawTH1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SetError" c_th1_seterror +  :: (Ptr RawTH1) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_setLabelColorA" c_th1_setlabelcolora +  :: (Ptr RawTH1) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_setLabelSizeA" c_th1_setlabelsizea +  :: (Ptr RawTH1) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_setLabelFontA" c_th1_setlabelfonta +  :: (Ptr RawTH1) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_setLabelOffsetA" c_th1_setlabeloffseta +  :: (Ptr RawTH1) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SetMaximum" c_th1_setmaximum +  :: (Ptr RawTH1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SetMinimum" c_th1_setminimum +  :: (Ptr RawTH1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SetNormFactor" c_th1_setnormfactor +  :: (Ptr RawTH1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SetStats" c_th1_setstats +  :: (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SetOption" c_th1_setoption +  :: (Ptr RawTH1) -> CString -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SetXTitle" c_th1_setxtitle +  :: (Ptr RawTH1) -> CString -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SetYTitle" c_th1_setytitle +  :: (Ptr RawTH1) -> CString -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_SetZTitle" c_th1_setztitle +  :: (Ptr RawTH1) -> CString -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_ShowBackground" c_th1_showbackground +  :: (Ptr RawTH1) -> CInt -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH1.h TH1_ShowPeaks" c_th1_showpeaks +  :: (Ptr RawTH1) -> CDouble -> CString -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1.h TH1_Smooth" c_th1_smooth +  :: (Ptr RawTH1) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_tH1SmoothArray" c_th1_th1smootharray +  :: CInt -> (Ptr CDouble) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_tH1StatOverflows" c_th1_th1statoverflows +  :: CInt -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_Sumw2" c_th1_sumw2 +  :: (Ptr RawTH1) -> IO ()++foreign import ccall "HROOTHistTH1.h TH1_tH1UseCurrentStyle" c_th1_th1usecurrentstyle +  :: (Ptr RawTH1) -> IO ()+
+ src/HROOT/Hist/TH1/Implementation.hs view
@@ -0,0 +1,425 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, +             OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH1.Implementation where+++import FFICXX.Runtime.Cast++import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH1.FFI+import HROOT.Hist.TH1.Interface+import HROOT.Hist.TH1.Cast+import HROOT.Core.TClass.RawType+import HROOT.Core.TClass.Cast+import HROOT.Core.TClass.Interface+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TDirectory.Cast+import HROOT.Core.TDirectory.Interface+import HROOT.Hist.TF1.RawType+import HROOT.Hist.TF1.Cast+import HROOT.Hist.TF1.Interface+import HROOT.Core.TArrayD.RawType+import HROOT.Core.TArrayD.Cast+import HROOT.Core.TArrayD.Interface+import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.Cast+import HROOT.Hist.TAxis.Interface+import HROOT.Core.TObject.RawType+import HROOT.Core.TObject.Cast+import HROOT.Core.TObject.Interface+import HROOT.Core.TAttLine.RawType+import HROOT.Core.TAttLine.Cast+import HROOT.Core.TAttLine.Interface+import HROOT.Core.TAttFill.RawType+import HROOT.Core.TAttFill.Cast+import HROOT.Core.TAttFill.Interface+import HROOT.Core.TAttMarker.RawType+import HROOT.Core.TAttMarker.Cast+import HROOT.Core.TAttMarker.Interface+import HROOT.Core.Deletable.RawType+import HROOT.Core.Deletable.Cast+import HROOT.Core.Deletable.Interface++import Data.Word+import Foreign.C+import Foreign.Ptr +import Foreign.ForeignPtr++import System.IO.Unsafe+++instance ITH1 TH1 where+  add = xform2 c_th1_add+  addBinContent = xform2 c_th1_addbincontent+  chi2Test = xform3 c_th1_chi2test+  computeIntegral = xform0 c_th1_computeintegral+  directoryAutoAdd = xform1 c_th1_directoryautoadd+  divide = xform5 c_th1_divide+  drawCopyTH1 = xform1 c_th1_drawcopyth1+  drawNormalized = xform2 c_th1_drawnormalized+  drawPanelTH1 = xform0 c_th1_drawpanelth1+  bufferEmpty = xform1 c_th1_bufferempty+  evalF = xform2 c_th1_evalf+  fFT = xform2 c_th1_fft+  fill1 = xform1 c_th1_fill1+  fill1w = xform2 c_th1_fill1w+  fillN1 = xform4 c_th1_filln1+  fillRandom = xform2 c_th1_fillrandom+  findBin = xform3 c_th1_findbin+  findFixBin = xform3 c_th1_findfixbin+  findFirstBinAbove = xform2 c_th1_findfirstbinabove+  findLastBinAbove = xform2 c_th1_findlastbinabove+  fitPanelTH1 = xform0 c_th1_fitpanelth1+  getNdivisionA = xform1 c_th1_getndivisiona+  getAxisColorA = xform1 c_th1_getaxiscolora+  getLabelColorA = xform1 c_th1_getlabelcolora+  getLabelFontA = xform1 c_th1_getlabelfonta+  getLabelOffsetA = xform1 c_th1_getlabeloffseta+  getLabelSizeA = xform1 c_th1_getlabelsizea+  getTitleFontA = xform1 c_th1_gettitlefonta+  getTitleOffsetA = xform1 c_th1_gettitleoffseta+  getTitleSizeA = xform1 c_th1_gettitlesizea+  getTickLengthA = xform1 c_th1_getticklengtha+  getBarOffset = xform0 c_th1_getbaroffset+  getBarWidth = xform0 c_th1_getbarwidth+  getContour = xform1 c_th1_getcontour+  getContourLevel = xform1 c_th1_getcontourlevel+  getContourLevelPad = xform1 c_th1_getcontourlevelpad+  getBin = xform3 c_th1_getbin+  getBinCenter = xform1 c_th1_getbincenter+  getBinContent1 = xform1 c_th1_getbincontent1+  getBinContent2 = xform2 c_th1_getbincontent2+  getBinContent3 = xform3 c_th1_getbincontent3+  getBinError1 = xform1 c_th1_getbinerror1+  getBinError2 = xform2 c_th1_getbinerror2+  getBinError3 = xform3 c_th1_getbinerror3+  getBinLowEdge = xform1 c_th1_getbinlowedge+  getBinWidth = xform1 c_th1_getbinwidth+  getCellContent = xform2 c_th1_getcellcontent+  getCellError = xform2 c_th1_getcellerror+  getEntries = xform0 c_th1_getentries+  getEffectiveEntries = xform0 c_th1_geteffectiveentries+  getFunction = xform1 c_th1_getfunction+  getDimension = xform0 c_th1_getdimension+  getKurtosis = xform1 c_th1_getkurtosis+  getLowEdge = xform1 c_th1_getlowedge+  getMaximumTH1 = xform1 c_th1_getmaximumth1+  getMaximumBin = xform0 c_th1_getmaximumbin+  getMaximumStored = xform0 c_th1_getmaximumstored+  getMinimumTH1 = xform1 c_th1_getminimumth1+  getMinimumBin = xform0 c_th1_getminimumbin+  getMinimumStored = xform0 c_th1_getminimumstored+  getMean = xform1 c_th1_getmean+  getMeanError = xform1 c_th1_getmeanerror+  getNbinsX = xform0 c_th1_getnbinsx+  getNbinsY = xform0 c_th1_getnbinsy+  getNbinsZ = xform0 c_th1_getnbinsz+  getQuantilesTH1 = xform3 c_th1_getquantilesth1+  getRandom = xform0 c_th1_getrandom+  getStats = xform1 c_th1_getstats+  getSumOfWeights = xform0 c_th1_getsumofweights+  getSumw2 = xform0 c_th1_getsumw2+  getSumw2N = xform0 c_th1_getsumw2n+  getRMS = xform1 c_th1_getrms+  getRMSError = xform1 c_th1_getrmserror+  getSkewness = xform1 c_th1_getskewness+  integral1 = xform3 c_th1_integral1+  interpolate1 = xform1 c_th1_interpolate1+  interpolate2 = xform2 c_th1_interpolate2+  interpolate3 = xform3 c_th1_interpolate3+  kolmogorovTest = xform2 c_th1_kolmogorovtest+  labelsDeflate = xform1 c_th1_labelsdeflate+  labelsInflate = xform1 c_th1_labelsinflate+  labelsOption = xform2 c_th1_labelsoption+  multiflyF = xform2 c_th1_multiflyf+  multiply = xform5 c_th1_multiply+  putStats = xform1 c_th1_putstats+  rebin = xform3 c_th1_rebin+  rebinAxis = xform2 c_th1_rebinaxis+  rebuild = xform1 c_th1_rebuild+  recursiveRemove = xform1 c_th1_recursiveremove+  reset = xform1 c_th1_reset+  resetStats = xform0 c_th1_resetstats+  scale = xform2 c_th1_scale+  setAxisColorA = xform2 c_th1_setaxiscolora+  setAxisRange = xform3 c_th1_setaxisrange+  setBarOffset = xform1 c_th1_setbaroffset+  setBarWidth = xform1 c_th1_setbarwidth+  setBinContent1 = xform2 c_th1_setbincontent1+  setBinContent2 = xform3 c_th1_setbincontent2+  setBinContent3 = xform4 c_th1_setbincontent3+  setBinError1 = xform2 c_th1_setbinerror1+  setBinError2 = xform3 c_th1_setbinerror2+  setBinError3 = xform4 c_th1_setbinerror3+  setBins1 = xform2 c_th1_setbins1+  setBins2 = xform4 c_th1_setbins2+  setBins3 = xform6 c_th1_setbins3+  setBinsLength = xform1 c_th1_setbinslength+  setBuffer = xform2 c_th1_setbuffer+  setCellContent = xform3 c_th1_setcellcontent+  setContent = xform1 c_th1_setcontent+  setContour = xform2 c_th1_setcontour+  setContourLevel = xform2 c_th1_setcontourlevel+  setDirectory = xform1 c_th1_setdirectory+  setEntries = xform1 c_th1_setentries+  setError = xform1 c_th1_seterror+  setLabelColorA = xform2 c_th1_setlabelcolora+  setLabelSizeA = xform2 c_th1_setlabelsizea+  setLabelFontA = xform2 c_th1_setlabelfonta+  setLabelOffsetA = xform2 c_th1_setlabeloffseta+  setMaximum = xform1 c_th1_setmaximum+  setMinimum = xform1 c_th1_setminimum+  setNormFactor = xform1 c_th1_setnormfactor+  setStats = xform1 c_th1_setstats+  setOption = xform1 c_th1_setoption+  setXTitle = xform1 c_th1_setxtitle+  setYTitle = xform1 c_th1_setytitle+  setZTitle = xform1 c_th1_setztitle+  showBackground = xform2 c_th1_showbackground+  showPeaks = xform3 c_th1_showpeaks+  smooth = xform2 c_th1_smooth+  sumw2 = xform0 c_th1_sumw2+instance ITObject TH1 where+  draw = xform1 c_th1_draw+  findObject = xform1 c_th1_findobject+  getName = xform0 c_th1_getname+  isA = xform0 c_th1_isa+  paint = xform1 c_th1_paint+  printObj = xform1 c_th1_printobj+  saveAs = xform2 c_th1_saveas+  write = xform3 c_th1_write+instance ITAttLine TH1 where+  getLineColor = xform0 c_th1_getlinecolor+  getLineStyle = xform0 c_th1_getlinestyle+  getLineWidth = xform0 c_th1_getlinewidth+  resetAttLine = xform1 c_th1_resetattline+  setLineAttributes = xform0 c_th1_setlineattributes+  setLineColor = xform1 c_th1_setlinecolor+  setLineStyle = xform1 c_th1_setlinestyle+  setLineWidth = xform1 c_th1_setlinewidth+instance ITAttFill TH1 where+  setFillColor = xform1 c_th1_setfillcolor+  setFillStyle = xform1 c_th1_setfillstyle+instance ITAttMarker TH1 where+  getMarkerColor = xform0 c_th1_getmarkercolor+  getMarkerStyle = xform0 c_th1_getmarkerstyle+  getMarkerSize = xform0 c_th1_getmarkersize+  resetAttMarker = xform1 c_th1_resetattmarker+  setMarkerAttributes = xform0 c_th1_setmarkerattributes+  setMarkerColor = xform1 c_th1_setmarkercolor+  setMarkerStyle = xform1 c_th1_setmarkerstyle+  setMarkerSize = xform1 c_th1_setmarkersize+instance IDeletable TH1 where+  delete = xform0 c_th1_delete++instance ITH1 (Exist TH1) where+  add (ETH1 x) = add x+  addBinContent (ETH1 x) = addBinContent x+  chi2Test (ETH1 x) = chi2Test x+  computeIntegral (ETH1 x) = computeIntegral x+  directoryAutoAdd (ETH1 x) = directoryAutoAdd x+  divide (ETH1 x) = divide x+  drawCopyTH1 (ETH1 x) a1 = return . ETH1 =<< drawCopyTH1 x a1+  drawNormalized (ETH1 x) = drawNormalized x+  drawPanelTH1 (ETH1 x) = drawPanelTH1 x+  bufferEmpty (ETH1 x) = bufferEmpty x+  evalF (ETH1 x) = evalF x+  fFT (ETH1 x) = fFT x+  fill1 (ETH1 x) = fill1 x+  fill1w (ETH1 x) = fill1w x+  fillN1 (ETH1 x) = fillN1 x+  fillRandom (ETH1 x) = fillRandom x+  findBin (ETH1 x) = findBin x+  findFixBin (ETH1 x) = findFixBin x+  findFirstBinAbove (ETH1 x) = findFirstBinAbove x+  findLastBinAbove (ETH1 x) = findLastBinAbove x+  fitPanelTH1 (ETH1 x) = fitPanelTH1 x+  getNdivisionA (ETH1 x) = getNdivisionA x+  getAxisColorA (ETH1 x) = getAxisColorA x+  getLabelColorA (ETH1 x) = getLabelColorA x+  getLabelFontA (ETH1 x) = getLabelFontA x+  getLabelOffsetA (ETH1 x) = getLabelOffsetA x+  getLabelSizeA (ETH1 x) = getLabelSizeA x+  getTitleFontA (ETH1 x) = getTitleFontA x+  getTitleOffsetA (ETH1 x) = getTitleOffsetA x+  getTitleSizeA (ETH1 x) = getTitleSizeA x+  getTickLengthA (ETH1 x) = getTickLengthA x+  getBarOffset (ETH1 x) = getBarOffset x+  getBarWidth (ETH1 x) = getBarWidth x+  getContour (ETH1 x) = getContour x+  getContourLevel (ETH1 x) = getContourLevel x+  getContourLevelPad (ETH1 x) = getContourLevelPad x+  getBin (ETH1 x) = getBin x+  getBinCenter (ETH1 x) = getBinCenter x+  getBinContent1 (ETH1 x) = getBinContent1 x+  getBinContent2 (ETH1 x) = getBinContent2 x+  getBinContent3 (ETH1 x) = getBinContent3 x+  getBinError1 (ETH1 x) = getBinError1 x+  getBinError2 (ETH1 x) = getBinError2 x+  getBinError3 (ETH1 x) = getBinError3 x+  getBinLowEdge (ETH1 x) = getBinLowEdge x+  getBinWidth (ETH1 x) = getBinWidth x+  getCellContent (ETH1 x) = getCellContent x+  getCellError (ETH1 x) = getCellError x+  getEntries (ETH1 x) = getEntries x+  getEffectiveEntries (ETH1 x) = getEffectiveEntries x+  getFunction (ETH1 x) = getFunction x+  getDimension (ETH1 x) = getDimension x+  getKurtosis (ETH1 x) = getKurtosis x+  getLowEdge (ETH1 x) = getLowEdge x+  getMaximumTH1 (ETH1 x) = getMaximumTH1 x+  getMaximumBin (ETH1 x) = getMaximumBin x+  getMaximumStored (ETH1 x) = getMaximumStored x+  getMinimumTH1 (ETH1 x) = getMinimumTH1 x+  getMinimumBin (ETH1 x) = getMinimumBin x+  getMinimumStored (ETH1 x) = getMinimumStored x+  getMean (ETH1 x) = getMean x+  getMeanError (ETH1 x) = getMeanError x+  getNbinsX (ETH1 x) = getNbinsX x+  getNbinsY (ETH1 x) = getNbinsY x+  getNbinsZ (ETH1 x) = getNbinsZ x+  getQuantilesTH1 (ETH1 x) = getQuantilesTH1 x+  getRandom (ETH1 x) = getRandom x+  getStats (ETH1 x) = getStats x+  getSumOfWeights (ETH1 x) = getSumOfWeights x+  getSumw2 (ETH1 x) = getSumw2 x+  getSumw2N (ETH1 x) = getSumw2N x+  getRMS (ETH1 x) = getRMS x+  getRMSError (ETH1 x) = getRMSError x+  getSkewness (ETH1 x) = getSkewness x+  integral1 (ETH1 x) = integral1 x+  interpolate1 (ETH1 x) = interpolate1 x+  interpolate2 (ETH1 x) = interpolate2 x+  interpolate3 (ETH1 x) = interpolate3 x+  kolmogorovTest (ETH1 x) = kolmogorovTest x+  labelsDeflate (ETH1 x) = labelsDeflate x+  labelsInflate (ETH1 x) = labelsInflate x+  labelsOption (ETH1 x) = labelsOption x+  multiflyF (ETH1 x) = multiflyF x+  multiply (ETH1 x) = multiply x+  putStats (ETH1 x) = putStats x+  rebin (ETH1 x) = rebin x+  rebinAxis (ETH1 x) = rebinAxis x+  rebuild (ETH1 x) = rebuild x+  recursiveRemove (ETH1 x) = recursiveRemove x+  reset (ETH1 x) = reset x+  resetStats (ETH1 x) = resetStats x+  scale (ETH1 x) = scale x+  setAxisColorA (ETH1 x) = setAxisColorA x+  setAxisRange (ETH1 x) = setAxisRange x+  setBarOffset (ETH1 x) = setBarOffset x+  setBarWidth (ETH1 x) = setBarWidth x+  setBinContent1 (ETH1 x) = setBinContent1 x+  setBinContent2 (ETH1 x) = setBinContent2 x+  setBinContent3 (ETH1 x) = setBinContent3 x+  setBinError1 (ETH1 x) = setBinError1 x+  setBinError2 (ETH1 x) = setBinError2 x+  setBinError3 (ETH1 x) = setBinError3 x+  setBins1 (ETH1 x) = setBins1 x+  setBins2 (ETH1 x) = setBins2 x+  setBins3 (ETH1 x) = setBins3 x+  setBinsLength (ETH1 x) = setBinsLength x+  setBuffer (ETH1 x) = setBuffer x+  setCellContent (ETH1 x) = setCellContent x+  setContent (ETH1 x) = setContent x+  setContour (ETH1 x) = setContour x+  setContourLevel (ETH1 x) = setContourLevel x+  setDirectory (ETH1 x) = setDirectory x+  setEntries (ETH1 x) = setEntries x+  setError (ETH1 x) = setError x+  setLabelColorA (ETH1 x) = setLabelColorA x+  setLabelSizeA (ETH1 x) = setLabelSizeA x+  setLabelFontA (ETH1 x) = setLabelFontA x+  setLabelOffsetA (ETH1 x) = setLabelOffsetA x+  setMaximum (ETH1 x) = setMaximum x+  setMinimum (ETH1 x) = setMinimum x+  setNormFactor (ETH1 x) = setNormFactor x+  setStats (ETH1 x) = setStats x+  setOption (ETH1 x) = setOption x+  setXTitle (ETH1 x) = setXTitle x+  setYTitle (ETH1 x) = setYTitle x+  setZTitle (ETH1 x) = setZTitle x+  showBackground (ETH1 x) = showBackground x+  showPeaks (ETH1 x) = showPeaks x+  smooth (ETH1 x) = smooth x+  sumw2 (ETH1 x) = sumw2 x+instance ITObject (Exist TH1) where+  draw (ETH1 x) = draw x+  findObject (ETH1 x) = findObject x+  getName (ETH1 x) = getName x+  isA (ETH1 x) = isA x+  paint (ETH1 x) = paint x+  printObj (ETH1 x) = printObj x+  saveAs (ETH1 x) = saveAs x+  write (ETH1 x) = write x+instance ITAttLine (Exist TH1) where+  getLineColor (ETH1 x) = getLineColor x+  getLineStyle (ETH1 x) = getLineStyle x+  getLineWidth (ETH1 x) = getLineWidth x+  resetAttLine (ETH1 x) = resetAttLine x+  setLineAttributes (ETH1 x) = setLineAttributes x+  setLineColor (ETH1 x) = setLineColor x+  setLineStyle (ETH1 x) = setLineStyle x+  setLineWidth (ETH1 x) = setLineWidth x+instance ITAttFill (Exist TH1) where+  setFillColor (ETH1 x) = setFillColor x+  setFillStyle (ETH1 x) = setFillStyle x+instance ITAttMarker (Exist TH1) where+  getMarkerColor (ETH1 x) = getMarkerColor x+  getMarkerStyle (ETH1 x) = getMarkerStyle x+  getMarkerSize (ETH1 x) = getMarkerSize x+  resetAttMarker (ETH1 x) = resetAttMarker x+  setMarkerAttributes (ETH1 x) = setMarkerAttributes x+  setMarkerColor (ETH1 x) = setMarkerColor x+  setMarkerStyle (ETH1 x) = setMarkerStyle x+  setMarkerSize (ETH1 x) = setMarkerSize x+instance IDeletable (Exist TH1) where+  delete (ETH1 x) = delete x++++tH1GetAsymmetry :: TH1 -> TH1 -> CDouble -> CDouble -> IO TH1+tH1GetAsymmetry = xform3 c_th1_th1getasymmetry++tH1GetBufferLength :: TH1 -> IO CInt+tH1GetBufferLength = xform0 c_th1_th1getbufferlength++tH1GetBufferSize :: TH1 -> IO CInt+tH1GetBufferSize = xform0 c_th1_th1getbuffersize++tH1GetDirectory :: TH1 -> IO TDirectory+tH1GetDirectory = xform0 c_th1_th1getdirectory++tH1IsBinOverflow :: TH1 -> CInt -> IO CInt+tH1IsBinOverflow = xform1 c_th1_th1isbinoverflow++tH1IsBinUnderflow :: TH1 -> CInt -> IO CInt+tH1IsBinUnderflow = xform1 c_th1_th1isbinunderflow++tH1UseCurrentStyle :: TH1 -> IO ()+tH1UseCurrentStyle = xform0 c_th1_th1usecurrentstyle++tH1GetDefaultBufferSize :: IO CInt+tH1GetDefaultBufferSize = xformnull c_th1_th1getdefaultbuffersize++tH1GetDefaultSumw2 :: IO CInt+tH1GetDefaultSumw2 = xformnull c_th1_th1getdefaultsumw2++tH1SetDefaultBufferSize :: CInt -> IO ()+tH1SetDefaultBufferSize = xform0 c_th1_th1setdefaultbuffersize++tH1SetDefaultSumw2 :: CInt -> IO ()+tH1SetDefaultSumw2 = xform0 c_th1_th1setdefaultsumw2++tH1SmoothArray :: CInt -> (Ptr CDouble) -> CInt -> IO ()+tH1SmoothArray = xform2 c_th1_th1smootharray++tH1StatOverflows :: CInt -> IO ()+tH1StatOverflows = xform0 c_th1_th1statoverflows++instance FPtr (Exist TH1) where+  type Raw (Exist TH1) = RawTH1+  get_fptr (ETH1 obj) = castForeignPtr (get_fptr obj)+  cast_fptr_to_obj fptr = ETH1 (cast_fptr_to_obj (fptr :: ForeignPtr RawTH1) :: TH1)
+ src/HROOT/Hist/TH1/Interface.hs view
@@ -0,0 +1,409 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++-- module HROOT.Class.Interface where++module HROOT.Hist.TH1.Interface where+++import Data.Word+import Foreign.C+import Foreign.Ptr+import Foreign.ForeignPtr+import FFICXX.Runtime.Cast++import HROOT.Hist.TH1.RawType+import HROOT.Core.TDirectory.RawType+import HROOT.Hist.TF1.RawType+import HROOT.Core.TArrayD.RawType+import HROOT.Core.TObject.Interface+import HROOT.Core.TAttLine.Interface+import HROOT.Core.TAttFill.Interface+import HROOT.Core.TAttMarker.Interface+import HROOT.Core.TDirectory.Interface+---- ============ ----+import {-# SOURCE #-} HROOT.Hist.TF1.Interface+import {-# SOURCE #-} HROOT.Hist.TAxis.Interface++-- |  the TH1 class : the mother class of all histogram classes +--   +--   > class TH1 : TNamed, TAttLine, TAttFill, TAttMarker+--   ++class (ITObject a,ITAttLine a,ITAttFill a,ITAttMarker a) => ITH1 a where+    -- |  +    --   > void TH1::Add( TH1* h1, Double_t c1 ) +    --   ++    add :: (ITH1 c0, FPtr c0) => a -> c0 -> CDouble -> IO () +    -- | +    --   > void TH1::AddBinContent( Int_t bin, Double_t w )+    --   ++    addBinContent :: a -> CInt -> CDouble -> IO () +    -- | +    --   > Double_t TH1::Chi2Test( const TH1* h2, Option_t* option="UU", Double_t* res=0 ) const+    --   ++    chi2Test :: (ITH1 c0, FPtr c0) => a -> c0 -> CString -> (Ptr CDouble) -> IO CDouble +    -- | +    --   > Double_t TH1::ComputeIntegral ()+    --   ++    computeIntegral :: a -> IO CDouble +    -- | +    --   > void TH1::DirectoryAutoAdd(TDirectory* )+    --   ++    directoryAutoAdd :: (ITDirectory c0, FPtr c0) => a -> c0 -> IO () +    -- | +    --   > void TH1::Divide(const TH1* h1, const TH1* h2, Double_t c1=1, Double_t c2=1, Option_t* option="")+    --   ++    divide :: (ITH1 c1, FPtr c1, ITH1 c0, FPtr c0) => a -> c0 -> c1 -> CDouble -> CDouble -> CString -> IO () ++    drawCopyTH1 :: a -> CString -> IO a +    -- | +    --   > TH1* TH1::DrawNormalized (Option_t* option="", Double_t norm=1) const+    --   ++    drawNormalized :: a -> CString -> CDouble -> IO TH1 ++    drawPanelTH1 :: a -> IO () ++    bufferEmpty :: a -> CInt -> IO CInt ++    evalF :: (ITF1 c0, FPtr c0) => a -> c0 -> CString -> IO () ++    fFT :: (ITH1 c0, FPtr c0) => a -> c0 -> CString -> IO TH1 ++    fill1 :: a -> CDouble -> IO CInt ++    fill1w :: a -> CDouble -> CDouble -> IO CInt ++    fillN1 :: a -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO () ++    fillRandom :: (ITH1 c0, FPtr c0) => a -> c0 -> CInt -> IO () ++    findBin :: a -> CDouble -> CDouble -> CDouble -> IO CInt ++    findFixBin :: a -> CDouble -> CDouble -> CDouble -> IO CInt ++    findFirstBinAbove :: a -> CDouble -> CInt -> IO CInt ++    findLastBinAbove :: a -> CDouble -> CInt -> IO CInt ++    fitPanelTH1 :: a -> IO () ++    getNdivisionA :: a -> CString -> IO CInt ++    getAxisColorA :: a -> CString -> IO CInt ++    getLabelColorA :: a -> CString -> IO CInt ++    getLabelFontA :: a -> CString -> IO CInt ++    getLabelOffsetA :: a -> CString -> IO CDouble ++    getLabelSizeA :: a -> CString -> IO CDouble ++    getTitleFontA :: a -> CString -> IO CInt ++    getTitleOffsetA :: a -> CString -> IO CDouble ++    getTitleSizeA :: a -> CString -> IO CDouble ++    getTickLengthA :: a -> CString -> IO CDouble ++    getBarOffset :: a -> IO CDouble ++    getBarWidth :: a -> IO CDouble ++    getContour :: a -> (Ptr CDouble) -> IO CInt ++    getContourLevel :: a -> CInt -> IO CDouble ++    getContourLevelPad :: a -> CInt -> IO CDouble ++    getBin :: a -> CInt -> CInt -> CInt -> IO CInt ++    getBinCenter :: a -> CInt -> IO CDouble ++    getBinContent1 :: a -> CInt -> IO CDouble ++    getBinContent2 :: a -> CInt -> CInt -> IO CDouble ++    getBinContent3 :: a -> CInt -> CInt -> CInt -> IO CDouble ++    getBinError1 :: a -> CInt -> IO CDouble ++    getBinError2 :: a -> CInt -> CInt -> IO CDouble ++    getBinError3 :: a -> CInt -> CInt -> CInt -> IO CDouble ++    getBinLowEdge :: a -> CInt -> IO CDouble ++    getBinWidth :: a -> CInt -> IO CDouble ++    getCellContent :: a -> CInt -> CInt -> IO CDouble ++    getCellError :: a -> CInt -> CInt -> IO CDouble ++    getEntries :: a -> IO CDouble ++    getEffectiveEntries :: a -> IO CDouble ++    getFunction :: a -> CString -> IO TF1 ++    getDimension :: a -> IO CInt ++    getKurtosis :: a -> CInt -> IO CDouble ++    getLowEdge :: a -> (Ptr CDouble) -> IO () ++    getMaximumTH1 :: a -> CDouble -> IO CDouble ++    getMaximumBin :: a -> IO CInt ++    getMaximumStored :: a -> IO CDouble ++    getMinimumTH1 :: a -> CDouble -> IO CDouble ++    getMinimumBin :: a -> IO CInt ++    getMinimumStored :: a -> IO CDouble ++    getMean :: a -> CInt -> IO CDouble ++    getMeanError :: a -> CInt -> IO CDouble ++    getNbinsX :: a -> IO CDouble ++    getNbinsY :: a -> IO CDouble ++    getNbinsZ :: a -> IO CDouble ++    getQuantilesTH1 :: a -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt ++    getRandom :: a -> IO CDouble +    -- | +    --   > void     GetStats(Double_t *stats) const;+    --   ++    getStats :: a -> (Ptr CDouble) -> IO () ++    getSumOfWeights :: a -> IO CDouble ++    getSumw2 :: a -> IO TArrayD ++    getSumw2N :: a -> IO CInt ++    getRMS :: a -> CInt -> IO CDouble ++    getRMSError :: a -> CInt -> IO CDouble ++    getSkewness :: a -> CInt -> IO CDouble ++    integral1 :: a -> CInt -> CInt -> CString -> IO CDouble +    -- | +    --   > Double_t Interpolate(Double_t x)+    --   ++    interpolate1 :: a -> CDouble -> IO CDouble +    -- | +    --   > Double_t Interpolate(Double_t x, Double_t y)+    --   ++    interpolate2 :: a -> CDouble -> CDouble -> IO CDouble +    -- | +    --   > Double_t Interpolate(Double_t x, Double_t y, Double_t z)+    --   ++    interpolate3 :: a -> CDouble -> CDouble -> CDouble -> IO CDouble +    -- | +    --   > Double_t KolmogorovTest(const TH1 *h2, Option_t *option="") const+    --   ++    kolmogorovTest :: (ITH1 c0, FPtr c0) => a -> c0 -> CString -> IO CDouble +    -- | +    --   > void     LabelsDeflate(Option_t *axis="X")+    --   ++    labelsDeflate :: a -> CString -> IO () +    -- | +    --   > void     LabelsInflate(Option_t *axis="X")+    --   ++    labelsInflate :: a -> CString -> IO () +    -- | +    --   > void     LabelsOption(Option_t *option="h", Option_t *axis="X")+    --   ++    labelsOption :: a -> CString -> CString -> IO () ++    multiflyF :: (ITF1 c0, FPtr c0) => a -> c0 -> CDouble -> IO () +    -- | +    --   > void     Multiply(const TH1 *h1, const TH1 *h2, Double_t c1=1, Double_t c2=1, Option_t *option=""); // *MENU*+    --   ++    multiply :: (ITH1 c1, FPtr c1, ITH1 c0, FPtr c0) => a -> c0 -> c1 -> CDouble -> CDouble -> CString -> IO () +    -- | +    --   > void     PutStats(Double_t *stats)+    --   ++    putStats :: a -> (Ptr CDouble) -> IO () +    -- | +    --   > TH1     *Rebin(Int_t ngroup=2, const char*newname="", const Double_t *xbins=0);  // *MENU*+    --   ++    rebin :: a -> CInt -> CString -> (Ptr CDouble) -> IO TH1 +    -- | +    --   > void     RebinAxis(Double_t x, TAxis *axis)+    --   ++    rebinAxis :: (ITAxis c0, FPtr c0) => a -> CDouble -> c0 -> IO () +    -- | +    --   > void     Rebuild(Option_t *option="")+    --   ++    rebuild :: a -> CString -> IO () +    -- | +    --   > void     RecursiveRemove(TObject *obj)+    --   ++    recursiveRemove :: (ITObject c0, FPtr c0) => a -> c0 -> IO () +    -- | +    --   > void     Reset(Option_t *option="")+    --   ++    reset :: a -> CString -> IO () +    -- | +    --   > void     ResetStats()+    --   ++    resetStats :: a -> IO () +    -- | +    --   > void     Scale(Double_t c1=1, Option_t *option="")+    --   ++    scale :: a -> CDouble -> CString -> IO () +    -- | +    --   > void     SetAxisColor(Color_t color=1, Option_t *axis="X")+    --   ++    setAxisColorA :: a -> CInt -> CString -> IO () +    -- | +    --   > void     SetAxisRange(Double_t xmin, Double_t xmax, Option_t *axis="X")+    --   ++    setAxisRange :: a -> CDouble -> CDouble -> CString -> IO () +    -- | +    --   > void     SetBarOffset(Float_t offset=0.25)+    --   ++    setBarOffset :: a -> CDouble -> IO () +    -- | +    --   > void     SetBarWidth(Float_t width=0.5) +    --   ++    setBarWidth :: a -> CDouble -> IO () +    -- | +    --   > void     SetBinContent(Int_t bin, Double_t content)+    --   ++    setBinContent1 :: a -> CInt -> CDouble -> IO () +    -- | +    --   > void     SetBinContent(Int_t binx, Int_t biny, Double_t content)+    --   ++    setBinContent2 :: a -> CInt -> CInt -> CDouble -> IO () +    -- | +    --   > void     SetBinContent(Int_t binx, Int_t biny, Int_t binz, Double_t content)+    --   ++    setBinContent3 :: a -> CInt -> CInt -> CInt -> CDouble -> IO () ++    setBinError1 :: a -> CInt -> CDouble -> IO () ++    setBinError2 :: a -> CInt -> CInt -> CDouble -> IO () ++    setBinError3 :: a -> CInt -> CInt -> CInt -> CDouble -> IO () ++    setBins1 :: a -> CInt -> (Ptr CDouble) -> IO () ++    setBins2 :: a -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO () ++    setBins3 :: a -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO () ++    setBinsLength :: a -> CInt -> IO () ++    setBuffer :: a -> CInt -> CString -> IO () ++    setCellContent :: a -> CInt -> CInt -> CDouble -> IO () ++    setContent :: a -> (Ptr CDouble) -> IO () ++    setContour :: a -> CInt -> (Ptr CDouble) -> IO () ++    setContourLevel :: a -> CInt -> CDouble -> IO () ++    setDirectory :: (ITDirectory c0, FPtr c0) => a -> c0 -> IO () ++    setEntries :: a -> CDouble -> IO () ++    setError :: a -> (Ptr CDouble) -> IO () ++    setLabelColorA :: a -> CInt -> CString -> IO () ++    setLabelSizeA :: a -> CDouble -> CString -> IO () ++    setLabelFontA :: a -> CInt -> CString -> IO () ++    setLabelOffsetA :: a -> CDouble -> CString -> IO () ++    setMaximum :: a -> CDouble -> IO () ++    setMinimum :: a -> CDouble -> IO () ++    setNormFactor :: a -> CDouble -> IO () ++    setStats :: a -> CInt -> IO () ++    setOption :: a -> CString -> IO () ++    setXTitle :: a -> CString -> IO () ++    setYTitle :: a -> CString -> IO () ++    setZTitle :: a -> CString -> IO () +    -- | +    --   > TH1     *ShowBackground(Int_t niter=20, Option_t *option="same");+    --   ++    showBackground :: a -> CInt -> CString -> IO TH1 +    -- | +    --   > Int_t    ShowPeaks(Double_t sigma=2, Option_t *option="", Double_t threshold=0.05); // *MENU*+    --   ++    showPeaks :: a -> CDouble -> CString -> CDouble -> IO CInt +    -- | +    --   > void     Smooth(Int_t ntimes=1, Option_t *option=""); // *MENU*+    --   ++    smooth :: a -> CInt -> CString -> IO () ++    sumw2 :: a -> IO () ++instance Existable TH1 where+  data Exist TH1 = forall a. (FPtr a, ITH1 a) => ETH1 a++upcastTH1 :: (FPtr a, ITH1 a) => a -> TH1+upcastTH1 h = let fh = get_fptr h+                  fh2 :: ForeignPtr RawTH1 = castForeignPtr fh+              in cast_fptr_to_obj fh2++downcastTH1 :: (FPtr a, ITH1 a) => TH1 -> a +downcastTH1 h = let fh = get_fptr h+                    fh2 = castForeignPtr fh+                in cast_fptr_to_obj fh2
+ src/HROOT/Hist/TH1/RawType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++module HROOT.Hist.TH1.RawType where+++import Foreign.ForeignPtr+import FFICXX.Runtime.Cast  ++data RawTH1+newtype TH1 = TH1 (ForeignPtr RawTH1) deriving (Eq, Ord, Show)+instance FPtr TH1 where+   type Raw TH1 = RawTH1+   get_fptr (TH1 fptr) = fptr+   cast_fptr_to_obj = TH1
+ src/HROOT/Hist/TH1C.hs view
@@ -0,0 +1,15 @@+module HROOT.Hist.TH1C+  (+    TH1C(..)+  , ITH1C+  , upcastTH1C+  , downcastTH1C++ +  ) where++import HROOT.Hist.TH1C.RawType+import HROOT.Hist.TH1C.Interface+import HROOT.Hist.TH1C.Implementation++
+ src/HROOT/Hist/TH1C/Cast.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeFamilies, +             MultiParamTypeClasses, OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH1C.Cast where+++import Foreign.Ptr+import Foreign.ForeignPtr (castForeignPtr, newForeignPtr_)+import Foreign.ForeignPtr.Unsafe+import FFICXX.Runtime.Cast+import System.IO.Unsafe++import HROOT.Hist.TH1C.RawType+import HROOT.Hist.TH1C.Interface++instance (ITH1C a, FPtr a) => Castable a (Ptr RawTH1C) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ ++instance Castable TH1C (Ptr RawTH1C) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+ src/HROOT/Hist/TH1C/FFI.hsc view
@@ -0,0 +1,496 @@+{-# LANGUAGE ForeignFunctionInterface #-}++-- module HROOT.Class.FFI where++module HROOT.Hist.TH1C.FFI where+++import Foreign.C            +import Foreign.Ptr++-- import HROOT.Class.Interface++-- #include ""++import HROOT.Hist.TH1C.RawType+import HROOT.Hist.TH1.RawType+import HROOT.Core.TDirectory.RawType+import HROOT.Hist.TF1.RawType+import HROOT.Core.TArrayD.RawType+import HROOT.Hist.TAxis.RawType+import HROOT.Core.TObject.RawType+import HROOT.Core.TClass.RawType++#include "HROOTHistTH1C.h"++foreign import ccall "HROOTHistTH1C.h TH1C_Add" c_th1c_add +  :: (Ptr RawTH1C) -> (Ptr RawTH1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_AddBinContent" c_th1c_addbincontent +  :: (Ptr RawTH1C) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_Chi2Test" c_th1c_chi2test +  :: (Ptr RawTH1C) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_ComputeIntegral" c_th1c_computeintegral +  :: (Ptr RawTH1C) -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_DirectoryAutoAdd" c_th1c_directoryautoadd +  :: (Ptr RawTH1C) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_Divide" c_th1c_divide +  :: (Ptr RawTH1C) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_drawCopyTH1" c_th1c_drawcopyth1 +  :: (Ptr RawTH1C) -> CString -> IO (Ptr RawTH1C)++foreign import ccall "HROOTHistTH1C.h TH1C_DrawNormalized" c_th1c_drawnormalized +  :: (Ptr RawTH1C) -> CString -> CDouble -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH1C.h TH1C_drawPanelTH1" c_th1c_drawpanelth1 +  :: (Ptr RawTH1C) -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_BufferEmpty" c_th1c_bufferempty +  :: (Ptr RawTH1C) -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1C.h TH1C_evalF" c_th1c_evalf +  :: (Ptr RawTH1C) -> (Ptr RawTF1) -> CString -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_FFT" c_th1c_fft +  :: (Ptr RawTH1C) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH1C.h TH1C_fill1" c_th1c_fill1 +  :: (Ptr RawTH1C) -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1C.h TH1C_fill1w" c_th1c_fill1w +  :: (Ptr RawTH1C) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1C.h TH1C_fillN1" c_th1c_filln1 +  :: (Ptr RawTH1C) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_FillRandom" c_th1c_fillrandom +  :: (Ptr RawTH1C) -> (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_FindBin" c_th1c_findbin +  :: (Ptr RawTH1C) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1C.h TH1C_FindFixBin" c_th1c_findfixbin +  :: (Ptr RawTH1C) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1C.h TH1C_FindFirstBinAbove" c_th1c_findfirstbinabove +  :: (Ptr RawTH1C) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1C.h TH1C_FindLastBinAbove" c_th1c_findlastbinabove +  :: (Ptr RawTH1C) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1C.h TH1C_FitPanelTH1" c_th1c_fitpanelth1 +  :: (Ptr RawTH1C) -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_getNdivisionA" c_th1c_getndivisiona +  :: (Ptr RawTH1C) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1C.h TH1C_getAxisColorA" c_th1c_getaxiscolora +  :: (Ptr RawTH1C) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1C.h TH1C_getLabelColorA" c_th1c_getlabelcolora +  :: (Ptr RawTH1C) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1C.h TH1C_getLabelFontA" c_th1c_getlabelfonta +  :: (Ptr RawTH1C) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1C.h TH1C_getLabelOffsetA" c_th1c_getlabeloffseta +  :: (Ptr RawTH1C) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_getLabelSizeA" c_th1c_getlabelsizea +  :: (Ptr RawTH1C) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_getTitleFontA" c_th1c_gettitlefonta +  :: (Ptr RawTH1C) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1C.h TH1C_getTitleOffsetA" c_th1c_gettitleoffseta +  :: (Ptr RawTH1C) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_getTitleSizeA" c_th1c_gettitlesizea +  :: (Ptr RawTH1C) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_getTickLengthA" c_th1c_getticklengtha +  :: (Ptr RawTH1C) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_GetBarOffset" c_th1c_getbaroffset +  :: (Ptr RawTH1C) -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_GetBarWidth" c_th1c_getbarwidth +  :: (Ptr RawTH1C) -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_GetContour" c_th1c_getcontour +  :: (Ptr RawTH1C) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH1C.h TH1C_GetContourLevel" c_th1c_getcontourlevel +  :: (Ptr RawTH1C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_GetContourLevelPad" c_th1c_getcontourlevelpad +  :: (Ptr RawTH1C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_GetBin" c_th1c_getbin +  :: (Ptr RawTH1C) -> CInt -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1C.h TH1C_GetBinCenter" c_th1c_getbincenter +  :: (Ptr RawTH1C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_GetBinContent1" c_th1c_getbincontent1 +  :: (Ptr RawTH1C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_GetBinContent2" c_th1c_getbincontent2 +  :: (Ptr RawTH1C) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_GetBinContent3" c_th1c_getbincontent3 +  :: (Ptr RawTH1C) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_GetBinError1" c_th1c_getbinerror1 +  :: (Ptr RawTH1C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_GetBinError2" c_th1c_getbinerror2 +  :: (Ptr RawTH1C) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_GetBinError3" c_th1c_getbinerror3 +  :: (Ptr RawTH1C) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_GetBinLowEdge" c_th1c_getbinlowedge +  :: (Ptr RawTH1C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_GetBinWidth" c_th1c_getbinwidth +  :: (Ptr RawTH1C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_GetCellContent" c_th1c_getcellcontent +  :: (Ptr RawTH1C) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_GetCellError" c_th1c_getcellerror +  :: (Ptr RawTH1C) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_GetEntries" c_th1c_getentries +  :: (Ptr RawTH1C) -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_GetEffectiveEntries" c_th1c_geteffectiveentries +  :: (Ptr RawTH1C) -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_GetFunction" c_th1c_getfunction +  :: (Ptr RawTH1C) -> CString -> IO (Ptr RawTF1)++foreign import ccall "HROOTHistTH1C.h TH1C_GetDimension" c_th1c_getdimension +  :: (Ptr RawTH1C) -> IO CInt++foreign import ccall "HROOTHistTH1C.h TH1C_GetKurtosis" c_th1c_getkurtosis +  :: (Ptr RawTH1C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_GetLowEdge" c_th1c_getlowedge +  :: (Ptr RawTH1C) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_getMaximumTH1" c_th1c_getmaximumth1 +  :: (Ptr RawTH1C) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_GetMaximumBin" c_th1c_getmaximumbin +  :: (Ptr RawTH1C) -> IO CInt++foreign import ccall "HROOTHistTH1C.h TH1C_GetMaximumStored" c_th1c_getmaximumstored +  :: (Ptr RawTH1C) -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_getMinimumTH1" c_th1c_getminimumth1 +  :: (Ptr RawTH1C) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_GetMinimumBin" c_th1c_getminimumbin +  :: (Ptr RawTH1C) -> IO CInt++foreign import ccall "HROOTHistTH1C.h TH1C_GetMinimumStored" c_th1c_getminimumstored +  :: (Ptr RawTH1C) -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_GetMean" c_th1c_getmean +  :: (Ptr RawTH1C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_GetMeanError" c_th1c_getmeanerror +  :: (Ptr RawTH1C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_GetNbinsX" c_th1c_getnbinsx +  :: (Ptr RawTH1C) -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_GetNbinsY" c_th1c_getnbinsy +  :: (Ptr RawTH1C) -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_GetNbinsZ" c_th1c_getnbinsz +  :: (Ptr RawTH1C) -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_getQuantilesTH1" c_th1c_getquantilesth1 +  :: (Ptr RawTH1C) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH1C.h TH1C_GetRandom" c_th1c_getrandom +  :: (Ptr RawTH1C) -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_GetStats" c_th1c_getstats +  :: (Ptr RawTH1C) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_GetSumOfWeights" c_th1c_getsumofweights +  :: (Ptr RawTH1C) -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_GetSumw2" c_th1c_getsumw2 +  :: (Ptr RawTH1C) -> IO (Ptr RawTArrayD)++foreign import ccall "HROOTHistTH1C.h TH1C_GetSumw2N" c_th1c_getsumw2n +  :: (Ptr RawTH1C) -> IO CInt++foreign import ccall "HROOTHistTH1C.h TH1C_GetRMS" c_th1c_getrms +  :: (Ptr RawTH1C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_GetRMSError" c_th1c_getrmserror +  :: (Ptr RawTH1C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_GetSkewness" c_th1c_getskewness +  :: (Ptr RawTH1C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_integral1" c_th1c_integral1 +  :: (Ptr RawTH1C) -> CInt -> CInt -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_interpolate1" c_th1c_interpolate1 +  :: (Ptr RawTH1C) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_interpolate2" c_th1c_interpolate2 +  :: (Ptr RawTH1C) -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_interpolate3" c_th1c_interpolate3 +  :: (Ptr RawTH1C) -> CDouble -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_KolmogorovTest" c_th1c_kolmogorovtest +  :: (Ptr RawTH1C) -> (Ptr RawTH1) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_LabelsDeflate" c_th1c_labelsdeflate +  :: (Ptr RawTH1C) -> CString -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_LabelsInflate" c_th1c_labelsinflate +  :: (Ptr RawTH1C) -> CString -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_LabelsOption" c_th1c_labelsoption +  :: (Ptr RawTH1C) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_multiflyF" c_th1c_multiflyf +  :: (Ptr RawTH1C) -> (Ptr RawTF1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_Multiply" c_th1c_multiply +  :: (Ptr RawTH1C) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_PutStats" c_th1c_putstats +  :: (Ptr RawTH1C) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_Rebin" c_th1c_rebin +  :: (Ptr RawTH1C) -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH1C.h TH1C_RebinAxis" c_th1c_rebinaxis +  :: (Ptr RawTH1C) -> CDouble -> (Ptr RawTAxis) -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_Rebuild" c_th1c_rebuild +  :: (Ptr RawTH1C) -> CString -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_RecursiveRemove" c_th1c_recursiveremove +  :: (Ptr RawTH1C) -> (Ptr RawTObject) -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_Reset" c_th1c_reset +  :: (Ptr RawTH1C) -> CString -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_ResetStats" c_th1c_resetstats +  :: (Ptr RawTH1C) -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_Scale" c_th1c_scale +  :: (Ptr RawTH1C) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_setAxisColorA" c_th1c_setaxiscolora +  :: (Ptr RawTH1C) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SetAxisRange" c_th1c_setaxisrange +  :: (Ptr RawTH1C) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SetBarOffset" c_th1c_setbaroffset +  :: (Ptr RawTH1C) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SetBarWidth" c_th1c_setbarwidth +  :: (Ptr RawTH1C) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_setBinContent1" c_th1c_setbincontent1 +  :: (Ptr RawTH1C) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_setBinContent2" c_th1c_setbincontent2 +  :: (Ptr RawTH1C) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_setBinContent3" c_th1c_setbincontent3 +  :: (Ptr RawTH1C) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_setBinError1" c_th1c_setbinerror1 +  :: (Ptr RawTH1C) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_setBinError2" c_th1c_setbinerror2 +  :: (Ptr RawTH1C) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_setBinError3" c_th1c_setbinerror3 +  :: (Ptr RawTH1C) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_setBins1" c_th1c_setbins1 +  :: (Ptr RawTH1C) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_setBins2" c_th1c_setbins2 +  :: (Ptr RawTH1C) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_setBins3" c_th1c_setbins3 +  :: (Ptr RawTH1C) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SetBinsLength" c_th1c_setbinslength +  :: (Ptr RawTH1C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SetBuffer" c_th1c_setbuffer +  :: (Ptr RawTH1C) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SetCellContent" c_th1c_setcellcontent +  :: (Ptr RawTH1C) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SetContent" c_th1c_setcontent +  :: (Ptr RawTH1C) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SetContour" c_th1c_setcontour +  :: (Ptr RawTH1C) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SetContourLevel" c_th1c_setcontourlevel +  :: (Ptr RawTH1C) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SetDirectory" c_th1c_setdirectory +  :: (Ptr RawTH1C) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SetEntries" c_th1c_setentries +  :: (Ptr RawTH1C) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SetError" c_th1c_seterror +  :: (Ptr RawTH1C) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_setLabelColorA" c_th1c_setlabelcolora +  :: (Ptr RawTH1C) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_setLabelSizeA" c_th1c_setlabelsizea +  :: (Ptr RawTH1C) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_setLabelFontA" c_th1c_setlabelfonta +  :: (Ptr RawTH1C) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_setLabelOffsetA" c_th1c_setlabeloffseta +  :: (Ptr RawTH1C) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SetMaximum" c_th1c_setmaximum +  :: (Ptr RawTH1C) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SetMinimum" c_th1c_setminimum +  :: (Ptr RawTH1C) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SetNormFactor" c_th1c_setnormfactor +  :: (Ptr RawTH1C) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SetStats" c_th1c_setstats +  :: (Ptr RawTH1C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SetOption" c_th1c_setoption +  :: (Ptr RawTH1C) -> CString -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SetXTitle" c_th1c_setxtitle +  :: (Ptr RawTH1C) -> CString -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SetYTitle" c_th1c_setytitle +  :: (Ptr RawTH1C) -> CString -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SetZTitle" c_th1c_setztitle +  :: (Ptr RawTH1C) -> CString -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_ShowBackground" c_th1c_showbackground +  :: (Ptr RawTH1C) -> CInt -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH1C.h TH1C_ShowPeaks" c_th1c_showpeaks +  :: (Ptr RawTH1C) -> CDouble -> CString -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1C.h TH1C_Smooth" c_th1c_smooth +  :: (Ptr RawTH1C) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_Sumw2" c_th1c_sumw2 +  :: (Ptr RawTH1C) -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_Draw" c_th1c_draw +  :: (Ptr RawTH1C) -> CString -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_FindObject" c_th1c_findobject +  :: (Ptr RawTH1C) -> CString -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTH1C.h TH1C_GetName" c_th1c_getname +  :: (Ptr RawTH1C) -> IO CString++foreign import ccall "HROOTHistTH1C.h TH1C_IsA" c_th1c_isa +  :: (Ptr RawTH1C) -> IO (Ptr RawTClass)++foreign import ccall "HROOTHistTH1C.h TH1C_Paint" c_th1c_paint +  :: (Ptr RawTH1C) -> CString -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_printObj" c_th1c_printobj +  :: (Ptr RawTH1C) -> CString -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SaveAs" c_th1c_saveas +  :: (Ptr RawTH1C) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_Write" c_th1c_write +  :: (Ptr RawTH1C) -> CString -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1C.h TH1C_GetLineColor" c_th1c_getlinecolor +  :: (Ptr RawTH1C) -> IO CInt++foreign import ccall "HROOTHistTH1C.h TH1C_GetLineStyle" c_th1c_getlinestyle +  :: (Ptr RawTH1C) -> IO CInt++foreign import ccall "HROOTHistTH1C.h TH1C_GetLineWidth" c_th1c_getlinewidth +  :: (Ptr RawTH1C) -> IO CInt++foreign import ccall "HROOTHistTH1C.h TH1C_ResetAttLine" c_th1c_resetattline +  :: (Ptr RawTH1C) -> CString -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SetLineAttributes" c_th1c_setlineattributes +  :: (Ptr RawTH1C) -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SetLineColor" c_th1c_setlinecolor +  :: (Ptr RawTH1C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SetLineStyle" c_th1c_setlinestyle +  :: (Ptr RawTH1C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SetLineWidth" c_th1c_setlinewidth +  :: (Ptr RawTH1C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SetFillColor" c_th1c_setfillcolor +  :: (Ptr RawTH1C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SetFillStyle" c_th1c_setfillstyle +  :: (Ptr RawTH1C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_GetMarkerColor" c_th1c_getmarkercolor +  :: (Ptr RawTH1C) -> IO CInt++foreign import ccall "HROOTHistTH1C.h TH1C_GetMarkerStyle" c_th1c_getmarkerstyle +  :: (Ptr RawTH1C) -> IO CInt++foreign import ccall "HROOTHistTH1C.h TH1C_GetMarkerSize" c_th1c_getmarkersize +  :: (Ptr RawTH1C) -> IO CDouble++foreign import ccall "HROOTHistTH1C.h TH1C_ResetAttMarker" c_th1c_resetattmarker +  :: (Ptr RawTH1C) -> CString -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SetMarkerAttributes" c_th1c_setmarkerattributes +  :: (Ptr RawTH1C) -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SetMarkerColor" c_th1c_setmarkercolor +  :: (Ptr RawTH1C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SetMarkerStyle" c_th1c_setmarkerstyle +  :: (Ptr RawTH1C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_SetMarkerSize" c_th1c_setmarkersize +  :: (Ptr RawTH1C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1C.h TH1C_delete" c_th1c_delete +  :: (Ptr RawTH1C) -> IO ()+
+ src/HROOT/Hist/TH1C/Implementation.hs view
@@ -0,0 +1,408 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, +             OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH1C.Implementation where+++import FFICXX.Runtime.Cast++import HROOT.Hist.TH1C.RawType+import HROOT.Hist.TH1C.FFI+import HROOT.Hist.TH1C.Interface+import HROOT.Hist.TH1C.Cast+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TDirectory.Cast+import HROOT.Core.TDirectory.Interface+import HROOT.Hist.TF1.RawType+import HROOT.Hist.TF1.Cast+import HROOT.Hist.TF1.Interface+import HROOT.Core.TArrayD.RawType+import HROOT.Core.TArrayD.Cast+import HROOT.Core.TArrayD.Interface+import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.Cast+import HROOT.Hist.TAxis.Interface+import HROOT.Core.TClass.RawType+import HROOT.Core.TClass.Cast+import HROOT.Core.TClass.Interface+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH1.Cast+import HROOT.Hist.TH1.Interface+import HROOT.Core.TArrayC.RawType+import HROOT.Core.TArrayC.Cast+import HROOT.Core.TArrayC.Interface+import HROOT.Core.TObject.RawType+import HROOT.Core.TObject.Cast+import HROOT.Core.TObject.Interface+import HROOT.Core.TAttLine.RawType+import HROOT.Core.TAttLine.Cast+import HROOT.Core.TAttLine.Interface+import HROOT.Core.TAttFill.RawType+import HROOT.Core.TAttFill.Cast+import HROOT.Core.TAttFill.Interface+import HROOT.Core.TAttMarker.RawType+import HROOT.Core.TAttMarker.Cast+import HROOT.Core.TAttMarker.Interface+import HROOT.Core.Deletable.RawType+import HROOT.Core.Deletable.Cast+import HROOT.Core.Deletable.Interface+import HROOT.Core.TArray.RawType+import HROOT.Core.TArray.Cast+import HROOT.Core.TArray.Interface++import Data.Word+import Foreign.C+import Foreign.Ptr +import Foreign.ForeignPtr++import System.IO.Unsafe+++instance ITH1C TH1C where+instance ITH1 TH1C where+  add = xform2 c_th1c_add+  addBinContent = xform2 c_th1c_addbincontent+  chi2Test = xform3 c_th1c_chi2test+  computeIntegral = xform0 c_th1c_computeintegral+  directoryAutoAdd = xform1 c_th1c_directoryautoadd+  divide = xform5 c_th1c_divide+  drawCopyTH1 = xform1 c_th1c_drawcopyth1+  drawNormalized = xform2 c_th1c_drawnormalized+  drawPanelTH1 = xform0 c_th1c_drawpanelth1+  bufferEmpty = xform1 c_th1c_bufferempty+  evalF = xform2 c_th1c_evalf+  fFT = xform2 c_th1c_fft+  fill1 = xform1 c_th1c_fill1+  fill1w = xform2 c_th1c_fill1w+  fillN1 = xform4 c_th1c_filln1+  fillRandom = xform2 c_th1c_fillrandom+  findBin = xform3 c_th1c_findbin+  findFixBin = xform3 c_th1c_findfixbin+  findFirstBinAbove = xform2 c_th1c_findfirstbinabove+  findLastBinAbove = xform2 c_th1c_findlastbinabove+  fitPanelTH1 = xform0 c_th1c_fitpanelth1+  getNdivisionA = xform1 c_th1c_getndivisiona+  getAxisColorA = xform1 c_th1c_getaxiscolora+  getLabelColorA = xform1 c_th1c_getlabelcolora+  getLabelFontA = xform1 c_th1c_getlabelfonta+  getLabelOffsetA = xform1 c_th1c_getlabeloffseta+  getLabelSizeA = xform1 c_th1c_getlabelsizea+  getTitleFontA = xform1 c_th1c_gettitlefonta+  getTitleOffsetA = xform1 c_th1c_gettitleoffseta+  getTitleSizeA = xform1 c_th1c_gettitlesizea+  getTickLengthA = xform1 c_th1c_getticklengtha+  getBarOffset = xform0 c_th1c_getbaroffset+  getBarWidth = xform0 c_th1c_getbarwidth+  getContour = xform1 c_th1c_getcontour+  getContourLevel = xform1 c_th1c_getcontourlevel+  getContourLevelPad = xform1 c_th1c_getcontourlevelpad+  getBin = xform3 c_th1c_getbin+  getBinCenter = xform1 c_th1c_getbincenter+  getBinContent1 = xform1 c_th1c_getbincontent1+  getBinContent2 = xform2 c_th1c_getbincontent2+  getBinContent3 = xform3 c_th1c_getbincontent3+  getBinError1 = xform1 c_th1c_getbinerror1+  getBinError2 = xform2 c_th1c_getbinerror2+  getBinError3 = xform3 c_th1c_getbinerror3+  getBinLowEdge = xform1 c_th1c_getbinlowedge+  getBinWidth = xform1 c_th1c_getbinwidth+  getCellContent = xform2 c_th1c_getcellcontent+  getCellError = xform2 c_th1c_getcellerror+  getEntries = xform0 c_th1c_getentries+  getEffectiveEntries = xform0 c_th1c_geteffectiveentries+  getFunction = xform1 c_th1c_getfunction+  getDimension = xform0 c_th1c_getdimension+  getKurtosis = xform1 c_th1c_getkurtosis+  getLowEdge = xform1 c_th1c_getlowedge+  getMaximumTH1 = xform1 c_th1c_getmaximumth1+  getMaximumBin = xform0 c_th1c_getmaximumbin+  getMaximumStored = xform0 c_th1c_getmaximumstored+  getMinimumTH1 = xform1 c_th1c_getminimumth1+  getMinimumBin = xform0 c_th1c_getminimumbin+  getMinimumStored = xform0 c_th1c_getminimumstored+  getMean = xform1 c_th1c_getmean+  getMeanError = xform1 c_th1c_getmeanerror+  getNbinsX = xform0 c_th1c_getnbinsx+  getNbinsY = xform0 c_th1c_getnbinsy+  getNbinsZ = xform0 c_th1c_getnbinsz+  getQuantilesTH1 = xform3 c_th1c_getquantilesth1+  getRandom = xform0 c_th1c_getrandom+  getStats = xform1 c_th1c_getstats+  getSumOfWeights = xform0 c_th1c_getsumofweights+  getSumw2 = xform0 c_th1c_getsumw2+  getSumw2N = xform0 c_th1c_getsumw2n+  getRMS = xform1 c_th1c_getrms+  getRMSError = xform1 c_th1c_getrmserror+  getSkewness = xform1 c_th1c_getskewness+  integral1 = xform3 c_th1c_integral1+  interpolate1 = xform1 c_th1c_interpolate1+  interpolate2 = xform2 c_th1c_interpolate2+  interpolate3 = xform3 c_th1c_interpolate3+  kolmogorovTest = xform2 c_th1c_kolmogorovtest+  labelsDeflate = xform1 c_th1c_labelsdeflate+  labelsInflate = xform1 c_th1c_labelsinflate+  labelsOption = xform2 c_th1c_labelsoption+  multiflyF = xform2 c_th1c_multiflyf+  multiply = xform5 c_th1c_multiply+  putStats = xform1 c_th1c_putstats+  rebin = xform3 c_th1c_rebin+  rebinAxis = xform2 c_th1c_rebinaxis+  rebuild = xform1 c_th1c_rebuild+  recursiveRemove = xform1 c_th1c_recursiveremove+  reset = xform1 c_th1c_reset+  resetStats = xform0 c_th1c_resetstats+  scale = xform2 c_th1c_scale+  setAxisColorA = xform2 c_th1c_setaxiscolora+  setAxisRange = xform3 c_th1c_setaxisrange+  setBarOffset = xform1 c_th1c_setbaroffset+  setBarWidth = xform1 c_th1c_setbarwidth+  setBinContent1 = xform2 c_th1c_setbincontent1+  setBinContent2 = xform3 c_th1c_setbincontent2+  setBinContent3 = xform4 c_th1c_setbincontent3+  setBinError1 = xform2 c_th1c_setbinerror1+  setBinError2 = xform3 c_th1c_setbinerror2+  setBinError3 = xform4 c_th1c_setbinerror3+  setBins1 = xform2 c_th1c_setbins1+  setBins2 = xform4 c_th1c_setbins2+  setBins3 = xform6 c_th1c_setbins3+  setBinsLength = xform1 c_th1c_setbinslength+  setBuffer = xform2 c_th1c_setbuffer+  setCellContent = xform3 c_th1c_setcellcontent+  setContent = xform1 c_th1c_setcontent+  setContour = xform2 c_th1c_setcontour+  setContourLevel = xform2 c_th1c_setcontourlevel+  setDirectory = xform1 c_th1c_setdirectory+  setEntries = xform1 c_th1c_setentries+  setError = xform1 c_th1c_seterror+  setLabelColorA = xform2 c_th1c_setlabelcolora+  setLabelSizeA = xform2 c_th1c_setlabelsizea+  setLabelFontA = xform2 c_th1c_setlabelfonta+  setLabelOffsetA = xform2 c_th1c_setlabeloffseta+  setMaximum = xform1 c_th1c_setmaximum+  setMinimum = xform1 c_th1c_setminimum+  setNormFactor = xform1 c_th1c_setnormfactor+  setStats = xform1 c_th1c_setstats+  setOption = xform1 c_th1c_setoption+  setXTitle = xform1 c_th1c_setxtitle+  setYTitle = xform1 c_th1c_setytitle+  setZTitle = xform1 c_th1c_setztitle+  showBackground = xform2 c_th1c_showbackground+  showPeaks = xform3 c_th1c_showpeaks+  smooth = xform2 c_th1c_smooth+  sumw2 = xform0 c_th1c_sumw2+instance ITArrayC TH1C where+instance ITObject TH1C where+  draw = xform1 c_th1c_draw+  findObject = xform1 c_th1c_findobject+  getName = xform0 c_th1c_getname+  isA = xform0 c_th1c_isa+  paint = xform1 c_th1c_paint+  printObj = xform1 c_th1c_printobj+  saveAs = xform2 c_th1c_saveas+  write = xform3 c_th1c_write+instance ITAttLine TH1C where+  getLineColor = xform0 c_th1c_getlinecolor+  getLineStyle = xform0 c_th1c_getlinestyle+  getLineWidth = xform0 c_th1c_getlinewidth+  resetAttLine = xform1 c_th1c_resetattline+  setLineAttributes = xform0 c_th1c_setlineattributes+  setLineColor = xform1 c_th1c_setlinecolor+  setLineStyle = xform1 c_th1c_setlinestyle+  setLineWidth = xform1 c_th1c_setlinewidth+instance ITAttFill TH1C where+  setFillColor = xform1 c_th1c_setfillcolor+  setFillStyle = xform1 c_th1c_setfillstyle+instance ITAttMarker TH1C where+  getMarkerColor = xform0 c_th1c_getmarkercolor+  getMarkerStyle = xform0 c_th1c_getmarkerstyle+  getMarkerSize = xform0 c_th1c_getmarkersize+  resetAttMarker = xform1 c_th1c_resetattmarker+  setMarkerAttributes = xform0 c_th1c_setmarkerattributes+  setMarkerColor = xform1 c_th1c_setmarkercolor+  setMarkerStyle = xform1 c_th1c_setmarkerstyle+  setMarkerSize = xform1 c_th1c_setmarkersize+instance IDeletable TH1C where+  delete = xform0 c_th1c_delete+instance ITArray TH1C where++instance ITH1C (Exist TH1C) where++instance ITH1 (Exist TH1C) where+  add (ETH1C x) = add x+  addBinContent (ETH1C x) = addBinContent x+  chi2Test (ETH1C x) = chi2Test x+  computeIntegral (ETH1C x) = computeIntegral x+  directoryAutoAdd (ETH1C x) = directoryAutoAdd x+  divide (ETH1C x) = divide x+  drawCopyTH1 (ETH1C x) a1 = return . ETH1C =<< drawCopyTH1 x a1+  drawNormalized (ETH1C x) = drawNormalized x+  drawPanelTH1 (ETH1C x) = drawPanelTH1 x+  bufferEmpty (ETH1C x) = bufferEmpty x+  evalF (ETH1C x) = evalF x+  fFT (ETH1C x) = fFT x+  fill1 (ETH1C x) = fill1 x+  fill1w (ETH1C x) = fill1w x+  fillN1 (ETH1C x) = fillN1 x+  fillRandom (ETH1C x) = fillRandom x+  findBin (ETH1C x) = findBin x+  findFixBin (ETH1C x) = findFixBin x+  findFirstBinAbove (ETH1C x) = findFirstBinAbove x+  findLastBinAbove (ETH1C x) = findLastBinAbove x+  fitPanelTH1 (ETH1C x) = fitPanelTH1 x+  getNdivisionA (ETH1C x) = getNdivisionA x+  getAxisColorA (ETH1C x) = getAxisColorA x+  getLabelColorA (ETH1C x) = getLabelColorA x+  getLabelFontA (ETH1C x) = getLabelFontA x+  getLabelOffsetA (ETH1C x) = getLabelOffsetA x+  getLabelSizeA (ETH1C x) = getLabelSizeA x+  getTitleFontA (ETH1C x) = getTitleFontA x+  getTitleOffsetA (ETH1C x) = getTitleOffsetA x+  getTitleSizeA (ETH1C x) = getTitleSizeA x+  getTickLengthA (ETH1C x) = getTickLengthA x+  getBarOffset (ETH1C x) = getBarOffset x+  getBarWidth (ETH1C x) = getBarWidth x+  getContour (ETH1C x) = getContour x+  getContourLevel (ETH1C x) = getContourLevel x+  getContourLevelPad (ETH1C x) = getContourLevelPad x+  getBin (ETH1C x) = getBin x+  getBinCenter (ETH1C x) = getBinCenter x+  getBinContent1 (ETH1C x) = getBinContent1 x+  getBinContent2 (ETH1C x) = getBinContent2 x+  getBinContent3 (ETH1C x) = getBinContent3 x+  getBinError1 (ETH1C x) = getBinError1 x+  getBinError2 (ETH1C x) = getBinError2 x+  getBinError3 (ETH1C x) = getBinError3 x+  getBinLowEdge (ETH1C x) = getBinLowEdge x+  getBinWidth (ETH1C x) = getBinWidth x+  getCellContent (ETH1C x) = getCellContent x+  getCellError (ETH1C x) = getCellError x+  getEntries (ETH1C x) = getEntries x+  getEffectiveEntries (ETH1C x) = getEffectiveEntries x+  getFunction (ETH1C x) = getFunction x+  getDimension (ETH1C x) = getDimension x+  getKurtosis (ETH1C x) = getKurtosis x+  getLowEdge (ETH1C x) = getLowEdge x+  getMaximumTH1 (ETH1C x) = getMaximumTH1 x+  getMaximumBin (ETH1C x) = getMaximumBin x+  getMaximumStored (ETH1C x) = getMaximumStored x+  getMinimumTH1 (ETH1C x) = getMinimumTH1 x+  getMinimumBin (ETH1C x) = getMinimumBin x+  getMinimumStored (ETH1C x) = getMinimumStored x+  getMean (ETH1C x) = getMean x+  getMeanError (ETH1C x) = getMeanError x+  getNbinsX (ETH1C x) = getNbinsX x+  getNbinsY (ETH1C x) = getNbinsY x+  getNbinsZ (ETH1C x) = getNbinsZ x+  getQuantilesTH1 (ETH1C x) = getQuantilesTH1 x+  getRandom (ETH1C x) = getRandom x+  getStats (ETH1C x) = getStats x+  getSumOfWeights (ETH1C x) = getSumOfWeights x+  getSumw2 (ETH1C x) = getSumw2 x+  getSumw2N (ETH1C x) = getSumw2N x+  getRMS (ETH1C x) = getRMS x+  getRMSError (ETH1C x) = getRMSError x+  getSkewness (ETH1C x) = getSkewness x+  integral1 (ETH1C x) = integral1 x+  interpolate1 (ETH1C x) = interpolate1 x+  interpolate2 (ETH1C x) = interpolate2 x+  interpolate3 (ETH1C x) = interpolate3 x+  kolmogorovTest (ETH1C x) = kolmogorovTest x+  labelsDeflate (ETH1C x) = labelsDeflate x+  labelsInflate (ETH1C x) = labelsInflate x+  labelsOption (ETH1C x) = labelsOption x+  multiflyF (ETH1C x) = multiflyF x+  multiply (ETH1C x) = multiply x+  putStats (ETH1C x) = putStats x+  rebin (ETH1C x) = rebin x+  rebinAxis (ETH1C x) = rebinAxis x+  rebuild (ETH1C x) = rebuild x+  recursiveRemove (ETH1C x) = recursiveRemove x+  reset (ETH1C x) = reset x+  resetStats (ETH1C x) = resetStats x+  scale (ETH1C x) = scale x+  setAxisColorA (ETH1C x) = setAxisColorA x+  setAxisRange (ETH1C x) = setAxisRange x+  setBarOffset (ETH1C x) = setBarOffset x+  setBarWidth (ETH1C x) = setBarWidth x+  setBinContent1 (ETH1C x) = setBinContent1 x+  setBinContent2 (ETH1C x) = setBinContent2 x+  setBinContent3 (ETH1C x) = setBinContent3 x+  setBinError1 (ETH1C x) = setBinError1 x+  setBinError2 (ETH1C x) = setBinError2 x+  setBinError3 (ETH1C x) = setBinError3 x+  setBins1 (ETH1C x) = setBins1 x+  setBins2 (ETH1C x) = setBins2 x+  setBins3 (ETH1C x) = setBins3 x+  setBinsLength (ETH1C x) = setBinsLength x+  setBuffer (ETH1C x) = setBuffer x+  setCellContent (ETH1C x) = setCellContent x+  setContent (ETH1C x) = setContent x+  setContour (ETH1C x) = setContour x+  setContourLevel (ETH1C x) = setContourLevel x+  setDirectory (ETH1C x) = setDirectory x+  setEntries (ETH1C x) = setEntries x+  setError (ETH1C x) = setError x+  setLabelColorA (ETH1C x) = setLabelColorA x+  setLabelSizeA (ETH1C x) = setLabelSizeA x+  setLabelFontA (ETH1C x) = setLabelFontA x+  setLabelOffsetA (ETH1C x) = setLabelOffsetA x+  setMaximum (ETH1C x) = setMaximum x+  setMinimum (ETH1C x) = setMinimum x+  setNormFactor (ETH1C x) = setNormFactor x+  setStats (ETH1C x) = setStats x+  setOption (ETH1C x) = setOption x+  setXTitle (ETH1C x) = setXTitle x+  setYTitle (ETH1C x) = setYTitle x+  setZTitle (ETH1C x) = setZTitle x+  showBackground (ETH1C x) = showBackground x+  showPeaks (ETH1C x) = showPeaks x+  smooth (ETH1C x) = smooth x+  sumw2 (ETH1C x) = sumw2 x+instance ITArrayC (Exist TH1C) where++instance ITObject (Exist TH1C) where+  draw (ETH1C x) = draw x+  findObject (ETH1C x) = findObject x+  getName (ETH1C x) = getName x+  isA (ETH1C x) = isA x+  paint (ETH1C x) = paint x+  printObj (ETH1C x) = printObj x+  saveAs (ETH1C x) = saveAs x+  write (ETH1C x) = write x+instance ITAttLine (Exist TH1C) where+  getLineColor (ETH1C x) = getLineColor x+  getLineStyle (ETH1C x) = getLineStyle x+  getLineWidth (ETH1C x) = getLineWidth x+  resetAttLine (ETH1C x) = resetAttLine x+  setLineAttributes (ETH1C x) = setLineAttributes x+  setLineColor (ETH1C x) = setLineColor x+  setLineStyle (ETH1C x) = setLineStyle x+  setLineWidth (ETH1C x) = setLineWidth x+instance ITAttFill (Exist TH1C) where+  setFillColor (ETH1C x) = setFillColor x+  setFillStyle (ETH1C x) = setFillStyle x+instance ITAttMarker (Exist TH1C) where+  getMarkerColor (ETH1C x) = getMarkerColor x+  getMarkerStyle (ETH1C x) = getMarkerStyle x+  getMarkerSize (ETH1C x) = getMarkerSize x+  resetAttMarker (ETH1C x) = resetAttMarker x+  setMarkerAttributes (ETH1C x) = setMarkerAttributes x+  setMarkerColor (ETH1C x) = setMarkerColor x+  setMarkerStyle (ETH1C x) = setMarkerStyle x+  setMarkerSize (ETH1C x) = setMarkerSize x+instance IDeletable (Exist TH1C) where+  delete (ETH1C x) = delete x+instance ITArray (Exist TH1C) where+++++++++instance FPtr (Exist TH1C) where+  type Raw (Exist TH1C) = RawTH1C+  get_fptr (ETH1C obj) = castForeignPtr (get_fptr obj)+  cast_fptr_to_obj fptr = ETH1C (cast_fptr_to_obj (fptr :: ForeignPtr RawTH1C) :: TH1C)
+ src/HROOT/Hist/TH1C/Interface.hs view
@@ -0,0 +1,37 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++-- module HROOT.Class.Interface where++module HROOT.Hist.TH1C.Interface where+++import Data.Word+import Foreign.C+import Foreign.Ptr+import Foreign.ForeignPtr+import FFICXX.Runtime.Cast++import HROOT.Hist.TH1C.RawType++import HROOT.Hist.TH1.Interface+import HROOT.Core.TArrayC.Interface+---- ============ ----++++class (ITH1 a,ITArrayC a) => ITH1C a where++instance Existable TH1C where+  data Exist TH1C = forall a. (FPtr a, ITH1C a) => ETH1C a++upcastTH1C :: (FPtr a, ITH1C a) => a -> TH1C+upcastTH1C h = let fh = get_fptr h+                   fh2 :: ForeignPtr RawTH1C = castForeignPtr fh+               in cast_fptr_to_obj fh2++downcastTH1C :: (FPtr a, ITH1C a) => TH1C -> a +downcastTH1C h = let fh = get_fptr h+                     fh2 = castForeignPtr fh+                 in cast_fptr_to_obj fh2
+ src/HROOT/Hist/TH1C/RawType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++module HROOT.Hist.TH1C.RawType where+++import Foreign.ForeignPtr+import FFICXX.Runtime.Cast  ++data RawTH1C+newtype TH1C = TH1C (ForeignPtr RawTH1C) deriving (Eq, Ord, Show)+instance FPtr TH1C where+   type Raw TH1C = RawTH1C+   get_fptr (TH1C fptr) = fptr+   cast_fptr_to_obj = TH1C
+ src/HROOT/Hist/TH1D.hs view
@@ -0,0 +1,15 @@+module HROOT.Hist.TH1D+  (+    TH1D(..)+  , ITH1D+  , upcastTH1D+  , downcastTH1D+  , newTH1D+ +  ) where++import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH1D.Interface+import HROOT.Hist.TH1D.Implementation++
+ src/HROOT/Hist/TH1D/Cast.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeFamilies, +             MultiParamTypeClasses, OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH1D.Cast where+++import Foreign.Ptr+import Foreign.ForeignPtr (castForeignPtr, newForeignPtr_)+import Foreign.ForeignPtr.Unsafe+import FFICXX.Runtime.Cast+import System.IO.Unsafe++import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH1D.Interface++instance (ITH1D a, FPtr a) => Castable a (Ptr RawTH1D) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ ++instance Castable TH1D (Ptr RawTH1D) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+ src/HROOT/Hist/TH1D/FFI.hsc view
@@ -0,0 +1,499 @@+{-# LANGUAGE ForeignFunctionInterface #-}++-- module HROOT.Class.FFI where++module HROOT.Hist.TH1D.FFI where+++import Foreign.C            +import Foreign.Ptr++-- import HROOT.Class.Interface++-- #include ""++import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH1.RawType+import HROOT.Core.TDirectory.RawType+import HROOT.Hist.TF1.RawType+import HROOT.Core.TArrayD.RawType+import HROOT.Hist.TAxis.RawType+import HROOT.Core.TObject.RawType+import HROOT.Core.TClass.RawType++#include "HROOTHistTH1D.h"++foreign import ccall "HROOTHistTH1D.h TH1D_Add" c_th1d_add +  :: (Ptr RawTH1D) -> (Ptr RawTH1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_AddBinContent" c_th1d_addbincontent +  :: (Ptr RawTH1D) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_Chi2Test" c_th1d_chi2test +  :: (Ptr RawTH1D) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_ComputeIntegral" c_th1d_computeintegral +  :: (Ptr RawTH1D) -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_DirectoryAutoAdd" c_th1d_directoryautoadd +  :: (Ptr RawTH1D) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_Divide" c_th1d_divide +  :: (Ptr RawTH1D) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_drawCopyTH1" c_th1d_drawcopyth1 +  :: (Ptr RawTH1D) -> CString -> IO (Ptr RawTH1D)++foreign import ccall "HROOTHistTH1D.h TH1D_DrawNormalized" c_th1d_drawnormalized +  :: (Ptr RawTH1D) -> CString -> CDouble -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH1D.h TH1D_drawPanelTH1" c_th1d_drawpanelth1 +  :: (Ptr RawTH1D) -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_BufferEmpty" c_th1d_bufferempty +  :: (Ptr RawTH1D) -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1D.h TH1D_evalF" c_th1d_evalf +  :: (Ptr RawTH1D) -> (Ptr RawTF1) -> CString -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_FFT" c_th1d_fft +  :: (Ptr RawTH1D) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH1D.h TH1D_fill1" c_th1d_fill1 +  :: (Ptr RawTH1D) -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1D.h TH1D_fill1w" c_th1d_fill1w +  :: (Ptr RawTH1D) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1D.h TH1D_fillN1" c_th1d_filln1 +  :: (Ptr RawTH1D) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_FillRandom" c_th1d_fillrandom +  :: (Ptr RawTH1D) -> (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_FindBin" c_th1d_findbin +  :: (Ptr RawTH1D) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1D.h TH1D_FindFixBin" c_th1d_findfixbin +  :: (Ptr RawTH1D) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1D.h TH1D_FindFirstBinAbove" c_th1d_findfirstbinabove +  :: (Ptr RawTH1D) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1D.h TH1D_FindLastBinAbove" c_th1d_findlastbinabove +  :: (Ptr RawTH1D) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1D.h TH1D_FitPanelTH1" c_th1d_fitpanelth1 +  :: (Ptr RawTH1D) -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_getNdivisionA" c_th1d_getndivisiona +  :: (Ptr RawTH1D) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1D.h TH1D_getAxisColorA" c_th1d_getaxiscolora +  :: (Ptr RawTH1D) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1D.h TH1D_getLabelColorA" c_th1d_getlabelcolora +  :: (Ptr RawTH1D) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1D.h TH1D_getLabelFontA" c_th1d_getlabelfonta +  :: (Ptr RawTH1D) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1D.h TH1D_getLabelOffsetA" c_th1d_getlabeloffseta +  :: (Ptr RawTH1D) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_getLabelSizeA" c_th1d_getlabelsizea +  :: (Ptr RawTH1D) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_getTitleFontA" c_th1d_gettitlefonta +  :: (Ptr RawTH1D) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1D.h TH1D_getTitleOffsetA" c_th1d_gettitleoffseta +  :: (Ptr RawTH1D) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_getTitleSizeA" c_th1d_gettitlesizea +  :: (Ptr RawTH1D) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_getTickLengthA" c_th1d_getticklengtha +  :: (Ptr RawTH1D) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_GetBarOffset" c_th1d_getbaroffset +  :: (Ptr RawTH1D) -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_GetBarWidth" c_th1d_getbarwidth +  :: (Ptr RawTH1D) -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_GetContour" c_th1d_getcontour +  :: (Ptr RawTH1D) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH1D.h TH1D_GetContourLevel" c_th1d_getcontourlevel +  :: (Ptr RawTH1D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_GetContourLevelPad" c_th1d_getcontourlevelpad +  :: (Ptr RawTH1D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_GetBin" c_th1d_getbin +  :: (Ptr RawTH1D) -> CInt -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1D.h TH1D_GetBinCenter" c_th1d_getbincenter +  :: (Ptr RawTH1D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_GetBinContent1" c_th1d_getbincontent1 +  :: (Ptr RawTH1D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_GetBinContent2" c_th1d_getbincontent2 +  :: (Ptr RawTH1D) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_GetBinContent3" c_th1d_getbincontent3 +  :: (Ptr RawTH1D) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_GetBinError1" c_th1d_getbinerror1 +  :: (Ptr RawTH1D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_GetBinError2" c_th1d_getbinerror2 +  :: (Ptr RawTH1D) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_GetBinError3" c_th1d_getbinerror3 +  :: (Ptr RawTH1D) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_GetBinLowEdge" c_th1d_getbinlowedge +  :: (Ptr RawTH1D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_GetBinWidth" c_th1d_getbinwidth +  :: (Ptr RawTH1D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_GetCellContent" c_th1d_getcellcontent +  :: (Ptr RawTH1D) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_GetCellError" c_th1d_getcellerror +  :: (Ptr RawTH1D) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_GetEntries" c_th1d_getentries +  :: (Ptr RawTH1D) -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_GetEffectiveEntries" c_th1d_geteffectiveentries +  :: (Ptr RawTH1D) -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_GetFunction" c_th1d_getfunction +  :: (Ptr RawTH1D) -> CString -> IO (Ptr RawTF1)++foreign import ccall "HROOTHistTH1D.h TH1D_GetDimension" c_th1d_getdimension +  :: (Ptr RawTH1D) -> IO CInt++foreign import ccall "HROOTHistTH1D.h TH1D_GetKurtosis" c_th1d_getkurtosis +  :: (Ptr RawTH1D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_GetLowEdge" c_th1d_getlowedge +  :: (Ptr RawTH1D) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_getMaximumTH1" c_th1d_getmaximumth1 +  :: (Ptr RawTH1D) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_GetMaximumBin" c_th1d_getmaximumbin +  :: (Ptr RawTH1D) -> IO CInt++foreign import ccall "HROOTHistTH1D.h TH1D_GetMaximumStored" c_th1d_getmaximumstored +  :: (Ptr RawTH1D) -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_getMinimumTH1" c_th1d_getminimumth1 +  :: (Ptr RawTH1D) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_GetMinimumBin" c_th1d_getminimumbin +  :: (Ptr RawTH1D) -> IO CInt++foreign import ccall "HROOTHistTH1D.h TH1D_GetMinimumStored" c_th1d_getminimumstored +  :: (Ptr RawTH1D) -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_GetMean" c_th1d_getmean +  :: (Ptr RawTH1D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_GetMeanError" c_th1d_getmeanerror +  :: (Ptr RawTH1D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_GetNbinsX" c_th1d_getnbinsx +  :: (Ptr RawTH1D) -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_GetNbinsY" c_th1d_getnbinsy +  :: (Ptr RawTH1D) -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_GetNbinsZ" c_th1d_getnbinsz +  :: (Ptr RawTH1D) -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_getQuantilesTH1" c_th1d_getquantilesth1 +  :: (Ptr RawTH1D) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH1D.h TH1D_GetRandom" c_th1d_getrandom +  :: (Ptr RawTH1D) -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_GetStats" c_th1d_getstats +  :: (Ptr RawTH1D) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_GetSumOfWeights" c_th1d_getsumofweights +  :: (Ptr RawTH1D) -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_GetSumw2" c_th1d_getsumw2 +  :: (Ptr RawTH1D) -> IO (Ptr RawTArrayD)++foreign import ccall "HROOTHistTH1D.h TH1D_GetSumw2N" c_th1d_getsumw2n +  :: (Ptr RawTH1D) -> IO CInt++foreign import ccall "HROOTHistTH1D.h TH1D_GetRMS" c_th1d_getrms +  :: (Ptr RawTH1D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_GetRMSError" c_th1d_getrmserror +  :: (Ptr RawTH1D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_GetSkewness" c_th1d_getskewness +  :: (Ptr RawTH1D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_integral1" c_th1d_integral1 +  :: (Ptr RawTH1D) -> CInt -> CInt -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_interpolate1" c_th1d_interpolate1 +  :: (Ptr RawTH1D) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_interpolate2" c_th1d_interpolate2 +  :: (Ptr RawTH1D) -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_interpolate3" c_th1d_interpolate3 +  :: (Ptr RawTH1D) -> CDouble -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_KolmogorovTest" c_th1d_kolmogorovtest +  :: (Ptr RawTH1D) -> (Ptr RawTH1) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_LabelsDeflate" c_th1d_labelsdeflate +  :: (Ptr RawTH1D) -> CString -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_LabelsInflate" c_th1d_labelsinflate +  :: (Ptr RawTH1D) -> CString -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_LabelsOption" c_th1d_labelsoption +  :: (Ptr RawTH1D) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_multiflyF" c_th1d_multiflyf +  :: (Ptr RawTH1D) -> (Ptr RawTF1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_Multiply" c_th1d_multiply +  :: (Ptr RawTH1D) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_PutStats" c_th1d_putstats +  :: (Ptr RawTH1D) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_Rebin" c_th1d_rebin +  :: (Ptr RawTH1D) -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH1D.h TH1D_RebinAxis" c_th1d_rebinaxis +  :: (Ptr RawTH1D) -> CDouble -> (Ptr RawTAxis) -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_Rebuild" c_th1d_rebuild +  :: (Ptr RawTH1D) -> CString -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_RecursiveRemove" c_th1d_recursiveremove +  :: (Ptr RawTH1D) -> (Ptr RawTObject) -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_Reset" c_th1d_reset +  :: (Ptr RawTH1D) -> CString -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_ResetStats" c_th1d_resetstats +  :: (Ptr RawTH1D) -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_Scale" c_th1d_scale +  :: (Ptr RawTH1D) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_setAxisColorA" c_th1d_setaxiscolora +  :: (Ptr RawTH1D) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SetAxisRange" c_th1d_setaxisrange +  :: (Ptr RawTH1D) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SetBarOffset" c_th1d_setbaroffset +  :: (Ptr RawTH1D) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SetBarWidth" c_th1d_setbarwidth +  :: (Ptr RawTH1D) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_setBinContent1" c_th1d_setbincontent1 +  :: (Ptr RawTH1D) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_setBinContent2" c_th1d_setbincontent2 +  :: (Ptr RawTH1D) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_setBinContent3" c_th1d_setbincontent3 +  :: (Ptr RawTH1D) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_setBinError1" c_th1d_setbinerror1 +  :: (Ptr RawTH1D) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_setBinError2" c_th1d_setbinerror2 +  :: (Ptr RawTH1D) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_setBinError3" c_th1d_setbinerror3 +  :: (Ptr RawTH1D) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_setBins1" c_th1d_setbins1 +  :: (Ptr RawTH1D) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_setBins2" c_th1d_setbins2 +  :: (Ptr RawTH1D) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_setBins3" c_th1d_setbins3 +  :: (Ptr RawTH1D) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SetBinsLength" c_th1d_setbinslength +  :: (Ptr RawTH1D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SetBuffer" c_th1d_setbuffer +  :: (Ptr RawTH1D) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SetCellContent" c_th1d_setcellcontent +  :: (Ptr RawTH1D) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SetContent" c_th1d_setcontent +  :: (Ptr RawTH1D) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SetContour" c_th1d_setcontour +  :: (Ptr RawTH1D) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SetContourLevel" c_th1d_setcontourlevel +  :: (Ptr RawTH1D) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SetDirectory" c_th1d_setdirectory +  :: (Ptr RawTH1D) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SetEntries" c_th1d_setentries +  :: (Ptr RawTH1D) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SetError" c_th1d_seterror +  :: (Ptr RawTH1D) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_setLabelColorA" c_th1d_setlabelcolora +  :: (Ptr RawTH1D) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_setLabelSizeA" c_th1d_setlabelsizea +  :: (Ptr RawTH1D) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_setLabelFontA" c_th1d_setlabelfonta +  :: (Ptr RawTH1D) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_setLabelOffsetA" c_th1d_setlabeloffseta +  :: (Ptr RawTH1D) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SetMaximum" c_th1d_setmaximum +  :: (Ptr RawTH1D) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SetMinimum" c_th1d_setminimum +  :: (Ptr RawTH1D) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SetNormFactor" c_th1d_setnormfactor +  :: (Ptr RawTH1D) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SetStats" c_th1d_setstats +  :: (Ptr RawTH1D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SetOption" c_th1d_setoption +  :: (Ptr RawTH1D) -> CString -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SetXTitle" c_th1d_setxtitle +  :: (Ptr RawTH1D) -> CString -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SetYTitle" c_th1d_setytitle +  :: (Ptr RawTH1D) -> CString -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SetZTitle" c_th1d_setztitle +  :: (Ptr RawTH1D) -> CString -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_ShowBackground" c_th1d_showbackground +  :: (Ptr RawTH1D) -> CInt -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH1D.h TH1D_ShowPeaks" c_th1d_showpeaks +  :: (Ptr RawTH1D) -> CDouble -> CString -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1D.h TH1D_Smooth" c_th1d_smooth +  :: (Ptr RawTH1D) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_Sumw2" c_th1d_sumw2 +  :: (Ptr RawTH1D) -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_Draw" c_th1d_draw +  :: (Ptr RawTH1D) -> CString -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_FindObject" c_th1d_findobject +  :: (Ptr RawTH1D) -> CString -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTH1D.h TH1D_GetName" c_th1d_getname +  :: (Ptr RawTH1D) -> IO CString++foreign import ccall "HROOTHistTH1D.h TH1D_IsA" c_th1d_isa +  :: (Ptr RawTH1D) -> IO (Ptr RawTClass)++foreign import ccall "HROOTHistTH1D.h TH1D_Paint" c_th1d_paint +  :: (Ptr RawTH1D) -> CString -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_printObj" c_th1d_printobj +  :: (Ptr RawTH1D) -> CString -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SaveAs" c_th1d_saveas +  :: (Ptr RawTH1D) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_Write" c_th1d_write +  :: (Ptr RawTH1D) -> CString -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1D.h TH1D_GetLineColor" c_th1d_getlinecolor +  :: (Ptr RawTH1D) -> IO CInt++foreign import ccall "HROOTHistTH1D.h TH1D_GetLineStyle" c_th1d_getlinestyle +  :: (Ptr RawTH1D) -> IO CInt++foreign import ccall "HROOTHistTH1D.h TH1D_GetLineWidth" c_th1d_getlinewidth +  :: (Ptr RawTH1D) -> IO CInt++foreign import ccall "HROOTHistTH1D.h TH1D_ResetAttLine" c_th1d_resetattline +  :: (Ptr RawTH1D) -> CString -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SetLineAttributes" c_th1d_setlineattributes +  :: (Ptr RawTH1D) -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SetLineColor" c_th1d_setlinecolor +  :: (Ptr RawTH1D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SetLineStyle" c_th1d_setlinestyle +  :: (Ptr RawTH1D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SetLineWidth" c_th1d_setlinewidth +  :: (Ptr RawTH1D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SetFillColor" c_th1d_setfillcolor +  :: (Ptr RawTH1D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SetFillStyle" c_th1d_setfillstyle +  :: (Ptr RawTH1D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_GetMarkerColor" c_th1d_getmarkercolor +  :: (Ptr RawTH1D) -> IO CInt++foreign import ccall "HROOTHistTH1D.h TH1D_GetMarkerStyle" c_th1d_getmarkerstyle +  :: (Ptr RawTH1D) -> IO CInt++foreign import ccall "HROOTHistTH1D.h TH1D_GetMarkerSize" c_th1d_getmarkersize +  :: (Ptr RawTH1D) -> IO CDouble++foreign import ccall "HROOTHistTH1D.h TH1D_ResetAttMarker" c_th1d_resetattmarker +  :: (Ptr RawTH1D) -> CString -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SetMarkerAttributes" c_th1d_setmarkerattributes +  :: (Ptr RawTH1D) -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SetMarkerColor" c_th1d_setmarkercolor +  :: (Ptr RawTH1D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SetMarkerStyle" c_th1d_setmarkerstyle +  :: (Ptr RawTH1D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_SetMarkerSize" c_th1d_setmarkersize +  :: (Ptr RawTH1D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_delete" c_th1d_delete +  :: (Ptr RawTH1D) -> IO ()++foreign import ccall "HROOTHistTH1D.h TH1D_newTH1D" c_th1d_newth1d +  :: CString -> CString -> CInt -> CDouble -> CDouble -> IO (Ptr RawTH1D)+
+ src/HROOT/Hist/TH1D/Implementation.hs view
@@ -0,0 +1,407 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, +             OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH1D.Implementation where+++import FFICXX.Runtime.Cast++import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH1D.FFI+import HROOT.Hist.TH1D.Interface+import HROOT.Hist.TH1D.Cast+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TDirectory.Cast+import HROOT.Core.TDirectory.Interface+import HROOT.Hist.TF1.RawType+import HROOT.Hist.TF1.Cast+import HROOT.Hist.TF1.Interface+import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.Cast+import HROOT.Hist.TAxis.Interface+import HROOT.Core.TClass.RawType+import HROOT.Core.TClass.Cast+import HROOT.Core.TClass.Interface+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH1.Cast+import HROOT.Hist.TH1.Interface+import HROOT.Core.TArrayD.RawType+import HROOT.Core.TArrayD.Cast+import HROOT.Core.TArrayD.Interface+import HROOT.Core.TObject.RawType+import HROOT.Core.TObject.Cast+import HROOT.Core.TObject.Interface+import HROOT.Core.TAttLine.RawType+import HROOT.Core.TAttLine.Cast+import HROOT.Core.TAttLine.Interface+import HROOT.Core.TAttFill.RawType+import HROOT.Core.TAttFill.Cast+import HROOT.Core.TAttFill.Interface+import HROOT.Core.TAttMarker.RawType+import HROOT.Core.TAttMarker.Cast+import HROOT.Core.TAttMarker.Interface+import HROOT.Core.Deletable.RawType+import HROOT.Core.Deletable.Cast+import HROOT.Core.Deletable.Interface+import HROOT.Core.TArray.RawType+import HROOT.Core.TArray.Cast+import HROOT.Core.TArray.Interface++import Data.Word+import Foreign.C+import Foreign.Ptr +import Foreign.ForeignPtr++import System.IO.Unsafe+++instance ITH1D TH1D where+instance ITH1 TH1D where+  add = xform2 c_th1d_add+  addBinContent = xform2 c_th1d_addbincontent+  chi2Test = xform3 c_th1d_chi2test+  computeIntegral = xform0 c_th1d_computeintegral+  directoryAutoAdd = xform1 c_th1d_directoryautoadd+  divide = xform5 c_th1d_divide+  drawCopyTH1 = xform1 c_th1d_drawcopyth1+  drawNormalized = xform2 c_th1d_drawnormalized+  drawPanelTH1 = xform0 c_th1d_drawpanelth1+  bufferEmpty = xform1 c_th1d_bufferempty+  evalF = xform2 c_th1d_evalf+  fFT = xform2 c_th1d_fft+  fill1 = xform1 c_th1d_fill1+  fill1w = xform2 c_th1d_fill1w+  fillN1 = xform4 c_th1d_filln1+  fillRandom = xform2 c_th1d_fillrandom+  findBin = xform3 c_th1d_findbin+  findFixBin = xform3 c_th1d_findfixbin+  findFirstBinAbove = xform2 c_th1d_findfirstbinabove+  findLastBinAbove = xform2 c_th1d_findlastbinabove+  fitPanelTH1 = xform0 c_th1d_fitpanelth1+  getNdivisionA = xform1 c_th1d_getndivisiona+  getAxisColorA = xform1 c_th1d_getaxiscolora+  getLabelColorA = xform1 c_th1d_getlabelcolora+  getLabelFontA = xform1 c_th1d_getlabelfonta+  getLabelOffsetA = xform1 c_th1d_getlabeloffseta+  getLabelSizeA = xform1 c_th1d_getlabelsizea+  getTitleFontA = xform1 c_th1d_gettitlefonta+  getTitleOffsetA = xform1 c_th1d_gettitleoffseta+  getTitleSizeA = xform1 c_th1d_gettitlesizea+  getTickLengthA = xform1 c_th1d_getticklengtha+  getBarOffset = xform0 c_th1d_getbaroffset+  getBarWidth = xform0 c_th1d_getbarwidth+  getContour = xform1 c_th1d_getcontour+  getContourLevel = xform1 c_th1d_getcontourlevel+  getContourLevelPad = xform1 c_th1d_getcontourlevelpad+  getBin = xform3 c_th1d_getbin+  getBinCenter = xform1 c_th1d_getbincenter+  getBinContent1 = xform1 c_th1d_getbincontent1+  getBinContent2 = xform2 c_th1d_getbincontent2+  getBinContent3 = xform3 c_th1d_getbincontent3+  getBinError1 = xform1 c_th1d_getbinerror1+  getBinError2 = xform2 c_th1d_getbinerror2+  getBinError3 = xform3 c_th1d_getbinerror3+  getBinLowEdge = xform1 c_th1d_getbinlowedge+  getBinWidth = xform1 c_th1d_getbinwidth+  getCellContent = xform2 c_th1d_getcellcontent+  getCellError = xform2 c_th1d_getcellerror+  getEntries = xform0 c_th1d_getentries+  getEffectiveEntries = xform0 c_th1d_geteffectiveentries+  getFunction = xform1 c_th1d_getfunction+  getDimension = xform0 c_th1d_getdimension+  getKurtosis = xform1 c_th1d_getkurtosis+  getLowEdge = xform1 c_th1d_getlowedge+  getMaximumTH1 = xform1 c_th1d_getmaximumth1+  getMaximumBin = xform0 c_th1d_getmaximumbin+  getMaximumStored = xform0 c_th1d_getmaximumstored+  getMinimumTH1 = xform1 c_th1d_getminimumth1+  getMinimumBin = xform0 c_th1d_getminimumbin+  getMinimumStored = xform0 c_th1d_getminimumstored+  getMean = xform1 c_th1d_getmean+  getMeanError = xform1 c_th1d_getmeanerror+  getNbinsX = xform0 c_th1d_getnbinsx+  getNbinsY = xform0 c_th1d_getnbinsy+  getNbinsZ = xform0 c_th1d_getnbinsz+  getQuantilesTH1 = xform3 c_th1d_getquantilesth1+  getRandom = xform0 c_th1d_getrandom+  getStats = xform1 c_th1d_getstats+  getSumOfWeights = xform0 c_th1d_getsumofweights+  getSumw2 = xform0 c_th1d_getsumw2+  getSumw2N = xform0 c_th1d_getsumw2n+  getRMS = xform1 c_th1d_getrms+  getRMSError = xform1 c_th1d_getrmserror+  getSkewness = xform1 c_th1d_getskewness+  integral1 = xform3 c_th1d_integral1+  interpolate1 = xform1 c_th1d_interpolate1+  interpolate2 = xform2 c_th1d_interpolate2+  interpolate3 = xform3 c_th1d_interpolate3+  kolmogorovTest = xform2 c_th1d_kolmogorovtest+  labelsDeflate = xform1 c_th1d_labelsdeflate+  labelsInflate = xform1 c_th1d_labelsinflate+  labelsOption = xform2 c_th1d_labelsoption+  multiflyF = xform2 c_th1d_multiflyf+  multiply = xform5 c_th1d_multiply+  putStats = xform1 c_th1d_putstats+  rebin = xform3 c_th1d_rebin+  rebinAxis = xform2 c_th1d_rebinaxis+  rebuild = xform1 c_th1d_rebuild+  recursiveRemove = xform1 c_th1d_recursiveremove+  reset = xform1 c_th1d_reset+  resetStats = xform0 c_th1d_resetstats+  scale = xform2 c_th1d_scale+  setAxisColorA = xform2 c_th1d_setaxiscolora+  setAxisRange = xform3 c_th1d_setaxisrange+  setBarOffset = xform1 c_th1d_setbaroffset+  setBarWidth = xform1 c_th1d_setbarwidth+  setBinContent1 = xform2 c_th1d_setbincontent1+  setBinContent2 = xform3 c_th1d_setbincontent2+  setBinContent3 = xform4 c_th1d_setbincontent3+  setBinError1 = xform2 c_th1d_setbinerror1+  setBinError2 = xform3 c_th1d_setbinerror2+  setBinError3 = xform4 c_th1d_setbinerror3+  setBins1 = xform2 c_th1d_setbins1+  setBins2 = xform4 c_th1d_setbins2+  setBins3 = xform6 c_th1d_setbins3+  setBinsLength = xform1 c_th1d_setbinslength+  setBuffer = xform2 c_th1d_setbuffer+  setCellContent = xform3 c_th1d_setcellcontent+  setContent = xform1 c_th1d_setcontent+  setContour = xform2 c_th1d_setcontour+  setContourLevel = xform2 c_th1d_setcontourlevel+  setDirectory = xform1 c_th1d_setdirectory+  setEntries = xform1 c_th1d_setentries+  setError = xform1 c_th1d_seterror+  setLabelColorA = xform2 c_th1d_setlabelcolora+  setLabelSizeA = xform2 c_th1d_setlabelsizea+  setLabelFontA = xform2 c_th1d_setlabelfonta+  setLabelOffsetA = xform2 c_th1d_setlabeloffseta+  setMaximum = xform1 c_th1d_setmaximum+  setMinimum = xform1 c_th1d_setminimum+  setNormFactor = xform1 c_th1d_setnormfactor+  setStats = xform1 c_th1d_setstats+  setOption = xform1 c_th1d_setoption+  setXTitle = xform1 c_th1d_setxtitle+  setYTitle = xform1 c_th1d_setytitle+  setZTitle = xform1 c_th1d_setztitle+  showBackground = xform2 c_th1d_showbackground+  showPeaks = xform3 c_th1d_showpeaks+  smooth = xform2 c_th1d_smooth+  sumw2 = xform0 c_th1d_sumw2+instance ITArrayD TH1D where+instance ITObject TH1D where+  draw = xform1 c_th1d_draw+  findObject = xform1 c_th1d_findobject+  getName = xform0 c_th1d_getname+  isA = xform0 c_th1d_isa+  paint = xform1 c_th1d_paint+  printObj = xform1 c_th1d_printobj+  saveAs = xform2 c_th1d_saveas+  write = xform3 c_th1d_write+instance ITAttLine TH1D where+  getLineColor = xform0 c_th1d_getlinecolor+  getLineStyle = xform0 c_th1d_getlinestyle+  getLineWidth = xform0 c_th1d_getlinewidth+  resetAttLine = xform1 c_th1d_resetattline+  setLineAttributes = xform0 c_th1d_setlineattributes+  setLineColor = xform1 c_th1d_setlinecolor+  setLineStyle = xform1 c_th1d_setlinestyle+  setLineWidth = xform1 c_th1d_setlinewidth+instance ITAttFill TH1D where+  setFillColor = xform1 c_th1d_setfillcolor+  setFillStyle = xform1 c_th1d_setfillstyle+instance ITAttMarker TH1D where+  getMarkerColor = xform0 c_th1d_getmarkercolor+  getMarkerStyle = xform0 c_th1d_getmarkerstyle+  getMarkerSize = xform0 c_th1d_getmarkersize+  resetAttMarker = xform1 c_th1d_resetattmarker+  setMarkerAttributes = xform0 c_th1d_setmarkerattributes+  setMarkerColor = xform1 c_th1d_setmarkercolor+  setMarkerStyle = xform1 c_th1d_setmarkerstyle+  setMarkerSize = xform1 c_th1d_setmarkersize+instance IDeletable TH1D where+  delete = xform0 c_th1d_delete+instance ITArray TH1D where++instance ITH1D (Exist TH1D) where++instance ITH1 (Exist TH1D) where+  add (ETH1D x) = add x+  addBinContent (ETH1D x) = addBinContent x+  chi2Test (ETH1D x) = chi2Test x+  computeIntegral (ETH1D x) = computeIntegral x+  directoryAutoAdd (ETH1D x) = directoryAutoAdd x+  divide (ETH1D x) = divide x+  drawCopyTH1 (ETH1D x) a1 = return . ETH1D =<< drawCopyTH1 x a1+  drawNormalized (ETH1D x) = drawNormalized x+  drawPanelTH1 (ETH1D x) = drawPanelTH1 x+  bufferEmpty (ETH1D x) = bufferEmpty x+  evalF (ETH1D x) = evalF x+  fFT (ETH1D x) = fFT x+  fill1 (ETH1D x) = fill1 x+  fill1w (ETH1D x) = fill1w x+  fillN1 (ETH1D x) = fillN1 x+  fillRandom (ETH1D x) = fillRandom x+  findBin (ETH1D x) = findBin x+  findFixBin (ETH1D x) = findFixBin x+  findFirstBinAbove (ETH1D x) = findFirstBinAbove x+  findLastBinAbove (ETH1D x) = findLastBinAbove x+  fitPanelTH1 (ETH1D x) = fitPanelTH1 x+  getNdivisionA (ETH1D x) = getNdivisionA x+  getAxisColorA (ETH1D x) = getAxisColorA x+  getLabelColorA (ETH1D x) = getLabelColorA x+  getLabelFontA (ETH1D x) = getLabelFontA x+  getLabelOffsetA (ETH1D x) = getLabelOffsetA x+  getLabelSizeA (ETH1D x) = getLabelSizeA x+  getTitleFontA (ETH1D x) = getTitleFontA x+  getTitleOffsetA (ETH1D x) = getTitleOffsetA x+  getTitleSizeA (ETH1D x) = getTitleSizeA x+  getTickLengthA (ETH1D x) = getTickLengthA x+  getBarOffset (ETH1D x) = getBarOffset x+  getBarWidth (ETH1D x) = getBarWidth x+  getContour (ETH1D x) = getContour x+  getContourLevel (ETH1D x) = getContourLevel x+  getContourLevelPad (ETH1D x) = getContourLevelPad x+  getBin (ETH1D x) = getBin x+  getBinCenter (ETH1D x) = getBinCenter x+  getBinContent1 (ETH1D x) = getBinContent1 x+  getBinContent2 (ETH1D x) = getBinContent2 x+  getBinContent3 (ETH1D x) = getBinContent3 x+  getBinError1 (ETH1D x) = getBinError1 x+  getBinError2 (ETH1D x) = getBinError2 x+  getBinError3 (ETH1D x) = getBinError3 x+  getBinLowEdge (ETH1D x) = getBinLowEdge x+  getBinWidth (ETH1D x) = getBinWidth x+  getCellContent (ETH1D x) = getCellContent x+  getCellError (ETH1D x) = getCellError x+  getEntries (ETH1D x) = getEntries x+  getEffectiveEntries (ETH1D x) = getEffectiveEntries x+  getFunction (ETH1D x) = getFunction x+  getDimension (ETH1D x) = getDimension x+  getKurtosis (ETH1D x) = getKurtosis x+  getLowEdge (ETH1D x) = getLowEdge x+  getMaximumTH1 (ETH1D x) = getMaximumTH1 x+  getMaximumBin (ETH1D x) = getMaximumBin x+  getMaximumStored (ETH1D x) = getMaximumStored x+  getMinimumTH1 (ETH1D x) = getMinimumTH1 x+  getMinimumBin (ETH1D x) = getMinimumBin x+  getMinimumStored (ETH1D x) = getMinimumStored x+  getMean (ETH1D x) = getMean x+  getMeanError (ETH1D x) = getMeanError x+  getNbinsX (ETH1D x) = getNbinsX x+  getNbinsY (ETH1D x) = getNbinsY x+  getNbinsZ (ETH1D x) = getNbinsZ x+  getQuantilesTH1 (ETH1D x) = getQuantilesTH1 x+  getRandom (ETH1D x) = getRandom x+  getStats (ETH1D x) = getStats x+  getSumOfWeights (ETH1D x) = getSumOfWeights x+  getSumw2 (ETH1D x) = getSumw2 x+  getSumw2N (ETH1D x) = getSumw2N x+  getRMS (ETH1D x) = getRMS x+  getRMSError (ETH1D x) = getRMSError x+  getSkewness (ETH1D x) = getSkewness x+  integral1 (ETH1D x) = integral1 x+  interpolate1 (ETH1D x) = interpolate1 x+  interpolate2 (ETH1D x) = interpolate2 x+  interpolate3 (ETH1D x) = interpolate3 x+  kolmogorovTest (ETH1D x) = kolmogorovTest x+  labelsDeflate (ETH1D x) = labelsDeflate x+  labelsInflate (ETH1D x) = labelsInflate x+  labelsOption (ETH1D x) = labelsOption x+  multiflyF (ETH1D x) = multiflyF x+  multiply (ETH1D x) = multiply x+  putStats (ETH1D x) = putStats x+  rebin (ETH1D x) = rebin x+  rebinAxis (ETH1D x) = rebinAxis x+  rebuild (ETH1D x) = rebuild x+  recursiveRemove (ETH1D x) = recursiveRemove x+  reset (ETH1D x) = reset x+  resetStats (ETH1D x) = resetStats x+  scale (ETH1D x) = scale x+  setAxisColorA (ETH1D x) = setAxisColorA x+  setAxisRange (ETH1D x) = setAxisRange x+  setBarOffset (ETH1D x) = setBarOffset x+  setBarWidth (ETH1D x) = setBarWidth x+  setBinContent1 (ETH1D x) = setBinContent1 x+  setBinContent2 (ETH1D x) = setBinContent2 x+  setBinContent3 (ETH1D x) = setBinContent3 x+  setBinError1 (ETH1D x) = setBinError1 x+  setBinError2 (ETH1D x) = setBinError2 x+  setBinError3 (ETH1D x) = setBinError3 x+  setBins1 (ETH1D x) = setBins1 x+  setBins2 (ETH1D x) = setBins2 x+  setBins3 (ETH1D x) = setBins3 x+  setBinsLength (ETH1D x) = setBinsLength x+  setBuffer (ETH1D x) = setBuffer x+  setCellContent (ETH1D x) = setCellContent x+  setContent (ETH1D x) = setContent x+  setContour (ETH1D x) = setContour x+  setContourLevel (ETH1D x) = setContourLevel x+  setDirectory (ETH1D x) = setDirectory x+  setEntries (ETH1D x) = setEntries x+  setError (ETH1D x) = setError x+  setLabelColorA (ETH1D x) = setLabelColorA x+  setLabelSizeA (ETH1D x) = setLabelSizeA x+  setLabelFontA (ETH1D x) = setLabelFontA x+  setLabelOffsetA (ETH1D x) = setLabelOffsetA x+  setMaximum (ETH1D x) = setMaximum x+  setMinimum (ETH1D x) = setMinimum x+  setNormFactor (ETH1D x) = setNormFactor x+  setStats (ETH1D x) = setStats x+  setOption (ETH1D x) = setOption x+  setXTitle (ETH1D x) = setXTitle x+  setYTitle (ETH1D x) = setYTitle x+  setZTitle (ETH1D x) = setZTitle x+  showBackground (ETH1D x) = showBackground x+  showPeaks (ETH1D x) = showPeaks x+  smooth (ETH1D x) = smooth x+  sumw2 (ETH1D x) = sumw2 x+instance ITArrayD (Exist TH1D) where++instance ITObject (Exist TH1D) where+  draw (ETH1D x) = draw x+  findObject (ETH1D x) = findObject x+  getName (ETH1D x) = getName x+  isA (ETH1D x) = isA x+  paint (ETH1D x) = paint x+  printObj (ETH1D x) = printObj x+  saveAs (ETH1D x) = saveAs x+  write (ETH1D x) = write x+instance ITAttLine (Exist TH1D) where+  getLineColor (ETH1D x) = getLineColor x+  getLineStyle (ETH1D x) = getLineStyle x+  getLineWidth (ETH1D x) = getLineWidth x+  resetAttLine (ETH1D x) = resetAttLine x+  setLineAttributes (ETH1D x) = setLineAttributes x+  setLineColor (ETH1D x) = setLineColor x+  setLineStyle (ETH1D x) = setLineStyle x+  setLineWidth (ETH1D x) = setLineWidth x+instance ITAttFill (Exist TH1D) where+  setFillColor (ETH1D x) = setFillColor x+  setFillStyle (ETH1D x) = setFillStyle x+instance ITAttMarker (Exist TH1D) where+  getMarkerColor (ETH1D x) = getMarkerColor x+  getMarkerStyle (ETH1D x) = getMarkerStyle x+  getMarkerSize (ETH1D x) = getMarkerSize x+  resetAttMarker (ETH1D x) = resetAttMarker x+  setMarkerAttributes (ETH1D x) = setMarkerAttributes x+  setMarkerColor (ETH1D x) = setMarkerColor x+  setMarkerStyle (ETH1D x) = setMarkerStyle x+  setMarkerSize (ETH1D x) = setMarkerSize x+instance IDeletable (Exist TH1D) where+  delete (ETH1D x) = delete x+instance ITArray (Exist TH1D) where++++newTH1D :: CString -> CString -> CInt -> CDouble -> CDouble -> IO TH1D+newTH1D = xform4 c_th1d_newth1d++++++instance FPtr (Exist TH1D) where+  type Raw (Exist TH1D) = RawTH1D+  get_fptr (ETH1D obj) = castForeignPtr (get_fptr obj)+  cast_fptr_to_obj fptr = ETH1D (cast_fptr_to_obj (fptr :: ForeignPtr RawTH1D) :: TH1D)
+ src/HROOT/Hist/TH1D/Interface.hs view
@@ -0,0 +1,37 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++-- module HROOT.Class.Interface where++module HROOT.Hist.TH1D.Interface where+++import Data.Word+import Foreign.C+import Foreign.Ptr+import Foreign.ForeignPtr+import FFICXX.Runtime.Cast++import HROOT.Hist.TH1D.RawType++import HROOT.Hist.TH1.Interface+import HROOT.Core.TArrayD.Interface+---- ============ ----++++class (ITH1 a,ITArrayD a) => ITH1D a where++instance Existable TH1D where+  data Exist TH1D = forall a. (FPtr a, ITH1D a) => ETH1D a++upcastTH1D :: (FPtr a, ITH1D a) => a -> TH1D+upcastTH1D h = let fh = get_fptr h+                   fh2 :: ForeignPtr RawTH1D = castForeignPtr fh+               in cast_fptr_to_obj fh2++downcastTH1D :: (FPtr a, ITH1D a) => TH1D -> a +downcastTH1D h = let fh = get_fptr h+                     fh2 = castForeignPtr fh+                 in cast_fptr_to_obj fh2
+ src/HROOT/Hist/TH1D/RawType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++module HROOT.Hist.TH1D.RawType where+++import Foreign.ForeignPtr+import FFICXX.Runtime.Cast  ++data RawTH1D+newtype TH1D = TH1D (ForeignPtr RawTH1D) deriving (Eq, Ord, Show)+instance FPtr TH1D where+   type Raw TH1D = RawTH1D+   get_fptr (TH1D fptr) = fptr+   cast_fptr_to_obj = TH1D
+ src/HROOT/Hist/TH1F.hs view
@@ -0,0 +1,15 @@+module HROOT.Hist.TH1F+  (+    TH1F(..)+  , ITH1F+  , upcastTH1F+  , downcastTH1F+  , newTH1F+ +  ) where++import HROOT.Hist.TH1F.RawType+import HROOT.Hist.TH1F.Interface+import HROOT.Hist.TH1F.Implementation++
+ src/HROOT/Hist/TH1F/Cast.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeFamilies, +             MultiParamTypeClasses, OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH1F.Cast where+++import Foreign.Ptr+import Foreign.ForeignPtr (castForeignPtr, newForeignPtr_)+import Foreign.ForeignPtr.Unsafe+import FFICXX.Runtime.Cast+import System.IO.Unsafe++import HROOT.Hist.TH1F.RawType+import HROOT.Hist.TH1F.Interface++instance (ITH1F a, FPtr a) => Castable a (Ptr RawTH1F) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ ++instance Castable TH1F (Ptr RawTH1F) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+ src/HROOT/Hist/TH1F/FFI.hsc view
@@ -0,0 +1,499 @@+{-# LANGUAGE ForeignFunctionInterface #-}++-- module HROOT.Class.FFI where++module HROOT.Hist.TH1F.FFI where+++import Foreign.C            +import Foreign.Ptr++-- import HROOT.Class.Interface++-- #include ""++import HROOT.Hist.TH1F.RawType+import HROOT.Hist.TH1.RawType+import HROOT.Core.TDirectory.RawType+import HROOT.Hist.TF1.RawType+import HROOT.Core.TArrayD.RawType+import HROOT.Hist.TAxis.RawType+import HROOT.Core.TObject.RawType+import HROOT.Core.TClass.RawType++#include "HROOTHistTH1F.h"++foreign import ccall "HROOTHistTH1F.h TH1F_Add" c_th1f_add +  :: (Ptr RawTH1F) -> (Ptr RawTH1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_AddBinContent" c_th1f_addbincontent +  :: (Ptr RawTH1F) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_Chi2Test" c_th1f_chi2test +  :: (Ptr RawTH1F) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_ComputeIntegral" c_th1f_computeintegral +  :: (Ptr RawTH1F) -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_DirectoryAutoAdd" c_th1f_directoryautoadd +  :: (Ptr RawTH1F) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_Divide" c_th1f_divide +  :: (Ptr RawTH1F) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_drawCopyTH1" c_th1f_drawcopyth1 +  :: (Ptr RawTH1F) -> CString -> IO (Ptr RawTH1F)++foreign import ccall "HROOTHistTH1F.h TH1F_DrawNormalized" c_th1f_drawnormalized +  :: (Ptr RawTH1F) -> CString -> CDouble -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH1F.h TH1F_drawPanelTH1" c_th1f_drawpanelth1 +  :: (Ptr RawTH1F) -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_BufferEmpty" c_th1f_bufferempty +  :: (Ptr RawTH1F) -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1F.h TH1F_evalF" c_th1f_evalf +  :: (Ptr RawTH1F) -> (Ptr RawTF1) -> CString -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_FFT" c_th1f_fft +  :: (Ptr RawTH1F) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH1F.h TH1F_fill1" c_th1f_fill1 +  :: (Ptr RawTH1F) -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1F.h TH1F_fill1w" c_th1f_fill1w +  :: (Ptr RawTH1F) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1F.h TH1F_fillN1" c_th1f_filln1 +  :: (Ptr RawTH1F) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_FillRandom" c_th1f_fillrandom +  :: (Ptr RawTH1F) -> (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_FindBin" c_th1f_findbin +  :: (Ptr RawTH1F) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1F.h TH1F_FindFixBin" c_th1f_findfixbin +  :: (Ptr RawTH1F) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1F.h TH1F_FindFirstBinAbove" c_th1f_findfirstbinabove +  :: (Ptr RawTH1F) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1F.h TH1F_FindLastBinAbove" c_th1f_findlastbinabove +  :: (Ptr RawTH1F) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1F.h TH1F_FitPanelTH1" c_th1f_fitpanelth1 +  :: (Ptr RawTH1F) -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_getNdivisionA" c_th1f_getndivisiona +  :: (Ptr RawTH1F) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1F.h TH1F_getAxisColorA" c_th1f_getaxiscolora +  :: (Ptr RawTH1F) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1F.h TH1F_getLabelColorA" c_th1f_getlabelcolora +  :: (Ptr RawTH1F) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1F.h TH1F_getLabelFontA" c_th1f_getlabelfonta +  :: (Ptr RawTH1F) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1F.h TH1F_getLabelOffsetA" c_th1f_getlabeloffseta +  :: (Ptr RawTH1F) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_getLabelSizeA" c_th1f_getlabelsizea +  :: (Ptr RawTH1F) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_getTitleFontA" c_th1f_gettitlefonta +  :: (Ptr RawTH1F) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1F.h TH1F_getTitleOffsetA" c_th1f_gettitleoffseta +  :: (Ptr RawTH1F) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_getTitleSizeA" c_th1f_gettitlesizea +  :: (Ptr RawTH1F) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_getTickLengthA" c_th1f_getticklengtha +  :: (Ptr RawTH1F) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_GetBarOffset" c_th1f_getbaroffset +  :: (Ptr RawTH1F) -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_GetBarWidth" c_th1f_getbarwidth +  :: (Ptr RawTH1F) -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_GetContour" c_th1f_getcontour +  :: (Ptr RawTH1F) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH1F.h TH1F_GetContourLevel" c_th1f_getcontourlevel +  :: (Ptr RawTH1F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_GetContourLevelPad" c_th1f_getcontourlevelpad +  :: (Ptr RawTH1F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_GetBin" c_th1f_getbin +  :: (Ptr RawTH1F) -> CInt -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1F.h TH1F_GetBinCenter" c_th1f_getbincenter +  :: (Ptr RawTH1F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_GetBinContent1" c_th1f_getbincontent1 +  :: (Ptr RawTH1F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_GetBinContent2" c_th1f_getbincontent2 +  :: (Ptr RawTH1F) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_GetBinContent3" c_th1f_getbincontent3 +  :: (Ptr RawTH1F) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_GetBinError1" c_th1f_getbinerror1 +  :: (Ptr RawTH1F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_GetBinError2" c_th1f_getbinerror2 +  :: (Ptr RawTH1F) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_GetBinError3" c_th1f_getbinerror3 +  :: (Ptr RawTH1F) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_GetBinLowEdge" c_th1f_getbinlowedge +  :: (Ptr RawTH1F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_GetBinWidth" c_th1f_getbinwidth +  :: (Ptr RawTH1F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_GetCellContent" c_th1f_getcellcontent +  :: (Ptr RawTH1F) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_GetCellError" c_th1f_getcellerror +  :: (Ptr RawTH1F) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_GetEntries" c_th1f_getentries +  :: (Ptr RawTH1F) -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_GetEffectiveEntries" c_th1f_geteffectiveentries +  :: (Ptr RawTH1F) -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_GetFunction" c_th1f_getfunction +  :: (Ptr RawTH1F) -> CString -> IO (Ptr RawTF1)++foreign import ccall "HROOTHistTH1F.h TH1F_GetDimension" c_th1f_getdimension +  :: (Ptr RawTH1F) -> IO CInt++foreign import ccall "HROOTHistTH1F.h TH1F_GetKurtosis" c_th1f_getkurtosis +  :: (Ptr RawTH1F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_GetLowEdge" c_th1f_getlowedge +  :: (Ptr RawTH1F) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_getMaximumTH1" c_th1f_getmaximumth1 +  :: (Ptr RawTH1F) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_GetMaximumBin" c_th1f_getmaximumbin +  :: (Ptr RawTH1F) -> IO CInt++foreign import ccall "HROOTHistTH1F.h TH1F_GetMaximumStored" c_th1f_getmaximumstored +  :: (Ptr RawTH1F) -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_getMinimumTH1" c_th1f_getminimumth1 +  :: (Ptr RawTH1F) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_GetMinimumBin" c_th1f_getminimumbin +  :: (Ptr RawTH1F) -> IO CInt++foreign import ccall "HROOTHistTH1F.h TH1F_GetMinimumStored" c_th1f_getminimumstored +  :: (Ptr RawTH1F) -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_GetMean" c_th1f_getmean +  :: (Ptr RawTH1F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_GetMeanError" c_th1f_getmeanerror +  :: (Ptr RawTH1F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_GetNbinsX" c_th1f_getnbinsx +  :: (Ptr RawTH1F) -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_GetNbinsY" c_th1f_getnbinsy +  :: (Ptr RawTH1F) -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_GetNbinsZ" c_th1f_getnbinsz +  :: (Ptr RawTH1F) -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_getQuantilesTH1" c_th1f_getquantilesth1 +  :: (Ptr RawTH1F) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH1F.h TH1F_GetRandom" c_th1f_getrandom +  :: (Ptr RawTH1F) -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_GetStats" c_th1f_getstats +  :: (Ptr RawTH1F) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_GetSumOfWeights" c_th1f_getsumofweights +  :: (Ptr RawTH1F) -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_GetSumw2" c_th1f_getsumw2 +  :: (Ptr RawTH1F) -> IO (Ptr RawTArrayD)++foreign import ccall "HROOTHistTH1F.h TH1F_GetSumw2N" c_th1f_getsumw2n +  :: (Ptr RawTH1F) -> IO CInt++foreign import ccall "HROOTHistTH1F.h TH1F_GetRMS" c_th1f_getrms +  :: (Ptr RawTH1F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_GetRMSError" c_th1f_getrmserror +  :: (Ptr RawTH1F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_GetSkewness" c_th1f_getskewness +  :: (Ptr RawTH1F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_integral1" c_th1f_integral1 +  :: (Ptr RawTH1F) -> CInt -> CInt -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_interpolate1" c_th1f_interpolate1 +  :: (Ptr RawTH1F) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_interpolate2" c_th1f_interpolate2 +  :: (Ptr RawTH1F) -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_interpolate3" c_th1f_interpolate3 +  :: (Ptr RawTH1F) -> CDouble -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_KolmogorovTest" c_th1f_kolmogorovtest +  :: (Ptr RawTH1F) -> (Ptr RawTH1) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_LabelsDeflate" c_th1f_labelsdeflate +  :: (Ptr RawTH1F) -> CString -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_LabelsInflate" c_th1f_labelsinflate +  :: (Ptr RawTH1F) -> CString -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_LabelsOption" c_th1f_labelsoption +  :: (Ptr RawTH1F) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_multiflyF" c_th1f_multiflyf +  :: (Ptr RawTH1F) -> (Ptr RawTF1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_Multiply" c_th1f_multiply +  :: (Ptr RawTH1F) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_PutStats" c_th1f_putstats +  :: (Ptr RawTH1F) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_Rebin" c_th1f_rebin +  :: (Ptr RawTH1F) -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH1F.h TH1F_RebinAxis" c_th1f_rebinaxis +  :: (Ptr RawTH1F) -> CDouble -> (Ptr RawTAxis) -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_Rebuild" c_th1f_rebuild +  :: (Ptr RawTH1F) -> CString -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_RecursiveRemove" c_th1f_recursiveremove +  :: (Ptr RawTH1F) -> (Ptr RawTObject) -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_Reset" c_th1f_reset +  :: (Ptr RawTH1F) -> CString -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_ResetStats" c_th1f_resetstats +  :: (Ptr RawTH1F) -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_Scale" c_th1f_scale +  :: (Ptr RawTH1F) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_setAxisColorA" c_th1f_setaxiscolora +  :: (Ptr RawTH1F) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SetAxisRange" c_th1f_setaxisrange +  :: (Ptr RawTH1F) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SetBarOffset" c_th1f_setbaroffset +  :: (Ptr RawTH1F) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SetBarWidth" c_th1f_setbarwidth +  :: (Ptr RawTH1F) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_setBinContent1" c_th1f_setbincontent1 +  :: (Ptr RawTH1F) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_setBinContent2" c_th1f_setbincontent2 +  :: (Ptr RawTH1F) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_setBinContent3" c_th1f_setbincontent3 +  :: (Ptr RawTH1F) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_setBinError1" c_th1f_setbinerror1 +  :: (Ptr RawTH1F) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_setBinError2" c_th1f_setbinerror2 +  :: (Ptr RawTH1F) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_setBinError3" c_th1f_setbinerror3 +  :: (Ptr RawTH1F) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_setBins1" c_th1f_setbins1 +  :: (Ptr RawTH1F) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_setBins2" c_th1f_setbins2 +  :: (Ptr RawTH1F) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_setBins3" c_th1f_setbins3 +  :: (Ptr RawTH1F) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SetBinsLength" c_th1f_setbinslength +  :: (Ptr RawTH1F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SetBuffer" c_th1f_setbuffer +  :: (Ptr RawTH1F) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SetCellContent" c_th1f_setcellcontent +  :: (Ptr RawTH1F) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SetContent" c_th1f_setcontent +  :: (Ptr RawTH1F) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SetContour" c_th1f_setcontour +  :: (Ptr RawTH1F) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SetContourLevel" c_th1f_setcontourlevel +  :: (Ptr RawTH1F) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SetDirectory" c_th1f_setdirectory +  :: (Ptr RawTH1F) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SetEntries" c_th1f_setentries +  :: (Ptr RawTH1F) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SetError" c_th1f_seterror +  :: (Ptr RawTH1F) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_setLabelColorA" c_th1f_setlabelcolora +  :: (Ptr RawTH1F) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_setLabelSizeA" c_th1f_setlabelsizea +  :: (Ptr RawTH1F) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_setLabelFontA" c_th1f_setlabelfonta +  :: (Ptr RawTH1F) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_setLabelOffsetA" c_th1f_setlabeloffseta +  :: (Ptr RawTH1F) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SetMaximum" c_th1f_setmaximum +  :: (Ptr RawTH1F) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SetMinimum" c_th1f_setminimum +  :: (Ptr RawTH1F) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SetNormFactor" c_th1f_setnormfactor +  :: (Ptr RawTH1F) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SetStats" c_th1f_setstats +  :: (Ptr RawTH1F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SetOption" c_th1f_setoption +  :: (Ptr RawTH1F) -> CString -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SetXTitle" c_th1f_setxtitle +  :: (Ptr RawTH1F) -> CString -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SetYTitle" c_th1f_setytitle +  :: (Ptr RawTH1F) -> CString -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SetZTitle" c_th1f_setztitle +  :: (Ptr RawTH1F) -> CString -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_ShowBackground" c_th1f_showbackground +  :: (Ptr RawTH1F) -> CInt -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH1F.h TH1F_ShowPeaks" c_th1f_showpeaks +  :: (Ptr RawTH1F) -> CDouble -> CString -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1F.h TH1F_Smooth" c_th1f_smooth +  :: (Ptr RawTH1F) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_Sumw2" c_th1f_sumw2 +  :: (Ptr RawTH1F) -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_Draw" c_th1f_draw +  :: (Ptr RawTH1F) -> CString -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_FindObject" c_th1f_findobject +  :: (Ptr RawTH1F) -> CString -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTH1F.h TH1F_GetName" c_th1f_getname +  :: (Ptr RawTH1F) -> IO CString++foreign import ccall "HROOTHistTH1F.h TH1F_IsA" c_th1f_isa +  :: (Ptr RawTH1F) -> IO (Ptr RawTClass)++foreign import ccall "HROOTHistTH1F.h TH1F_Paint" c_th1f_paint +  :: (Ptr RawTH1F) -> CString -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_printObj" c_th1f_printobj +  :: (Ptr RawTH1F) -> CString -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SaveAs" c_th1f_saveas +  :: (Ptr RawTH1F) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_Write" c_th1f_write +  :: (Ptr RawTH1F) -> CString -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1F.h TH1F_GetLineColor" c_th1f_getlinecolor +  :: (Ptr RawTH1F) -> IO CInt++foreign import ccall "HROOTHistTH1F.h TH1F_GetLineStyle" c_th1f_getlinestyle +  :: (Ptr RawTH1F) -> IO CInt++foreign import ccall "HROOTHistTH1F.h TH1F_GetLineWidth" c_th1f_getlinewidth +  :: (Ptr RawTH1F) -> IO CInt++foreign import ccall "HROOTHistTH1F.h TH1F_ResetAttLine" c_th1f_resetattline +  :: (Ptr RawTH1F) -> CString -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SetLineAttributes" c_th1f_setlineattributes +  :: (Ptr RawTH1F) -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SetLineColor" c_th1f_setlinecolor +  :: (Ptr RawTH1F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SetLineStyle" c_th1f_setlinestyle +  :: (Ptr RawTH1F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SetLineWidth" c_th1f_setlinewidth +  :: (Ptr RawTH1F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SetFillColor" c_th1f_setfillcolor +  :: (Ptr RawTH1F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SetFillStyle" c_th1f_setfillstyle +  :: (Ptr RawTH1F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_GetMarkerColor" c_th1f_getmarkercolor +  :: (Ptr RawTH1F) -> IO CInt++foreign import ccall "HROOTHistTH1F.h TH1F_GetMarkerStyle" c_th1f_getmarkerstyle +  :: (Ptr RawTH1F) -> IO CInt++foreign import ccall "HROOTHistTH1F.h TH1F_GetMarkerSize" c_th1f_getmarkersize +  :: (Ptr RawTH1F) -> IO CDouble++foreign import ccall "HROOTHistTH1F.h TH1F_ResetAttMarker" c_th1f_resetattmarker +  :: (Ptr RawTH1F) -> CString -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SetMarkerAttributes" c_th1f_setmarkerattributes +  :: (Ptr RawTH1F) -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SetMarkerColor" c_th1f_setmarkercolor +  :: (Ptr RawTH1F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SetMarkerStyle" c_th1f_setmarkerstyle +  :: (Ptr RawTH1F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_SetMarkerSize" c_th1f_setmarkersize +  :: (Ptr RawTH1F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_delete" c_th1f_delete +  :: (Ptr RawTH1F) -> IO ()++foreign import ccall "HROOTHistTH1F.h TH1F_newTH1F" c_th1f_newth1f +  :: CString -> CString -> CInt -> CDouble -> CDouble -> IO (Ptr RawTH1F)+
+ src/HROOT/Hist/TH1F/Implementation.hs view
@@ -0,0 +1,410 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, +             OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH1F.Implementation where+++import FFICXX.Runtime.Cast++import HROOT.Hist.TH1F.RawType+import HROOT.Hist.TH1F.FFI+import HROOT.Hist.TH1F.Interface+import HROOT.Hist.TH1F.Cast+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TDirectory.Cast+import HROOT.Core.TDirectory.Interface+import HROOT.Hist.TF1.RawType+import HROOT.Hist.TF1.Cast+import HROOT.Hist.TF1.Interface+import HROOT.Core.TArrayD.RawType+import HROOT.Core.TArrayD.Cast+import HROOT.Core.TArrayD.Interface+import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.Cast+import HROOT.Hist.TAxis.Interface+import HROOT.Core.TClass.RawType+import HROOT.Core.TClass.Cast+import HROOT.Core.TClass.Interface+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH1.Cast+import HROOT.Hist.TH1.Interface+import HROOT.Core.TArrayF.RawType+import HROOT.Core.TArrayF.Cast+import HROOT.Core.TArrayF.Interface+import HROOT.Core.TObject.RawType+import HROOT.Core.TObject.Cast+import HROOT.Core.TObject.Interface+import HROOT.Core.TAttLine.RawType+import HROOT.Core.TAttLine.Cast+import HROOT.Core.TAttLine.Interface+import HROOT.Core.TAttFill.RawType+import HROOT.Core.TAttFill.Cast+import HROOT.Core.TAttFill.Interface+import HROOT.Core.TAttMarker.RawType+import HROOT.Core.TAttMarker.Cast+import HROOT.Core.TAttMarker.Interface+import HROOT.Core.Deletable.RawType+import HROOT.Core.Deletable.Cast+import HROOT.Core.Deletable.Interface+import HROOT.Core.TArray.RawType+import HROOT.Core.TArray.Cast+import HROOT.Core.TArray.Interface++import Data.Word+import Foreign.C+import Foreign.Ptr +import Foreign.ForeignPtr++import System.IO.Unsafe+++instance ITH1F TH1F where+instance ITH1 TH1F where+  add = xform2 c_th1f_add+  addBinContent = xform2 c_th1f_addbincontent+  chi2Test = xform3 c_th1f_chi2test+  computeIntegral = xform0 c_th1f_computeintegral+  directoryAutoAdd = xform1 c_th1f_directoryautoadd+  divide = xform5 c_th1f_divide+  drawCopyTH1 = xform1 c_th1f_drawcopyth1+  drawNormalized = xform2 c_th1f_drawnormalized+  drawPanelTH1 = xform0 c_th1f_drawpanelth1+  bufferEmpty = xform1 c_th1f_bufferempty+  evalF = xform2 c_th1f_evalf+  fFT = xform2 c_th1f_fft+  fill1 = xform1 c_th1f_fill1+  fill1w = xform2 c_th1f_fill1w+  fillN1 = xform4 c_th1f_filln1+  fillRandom = xform2 c_th1f_fillrandom+  findBin = xform3 c_th1f_findbin+  findFixBin = xform3 c_th1f_findfixbin+  findFirstBinAbove = xform2 c_th1f_findfirstbinabove+  findLastBinAbove = xform2 c_th1f_findlastbinabove+  fitPanelTH1 = xform0 c_th1f_fitpanelth1+  getNdivisionA = xform1 c_th1f_getndivisiona+  getAxisColorA = xform1 c_th1f_getaxiscolora+  getLabelColorA = xform1 c_th1f_getlabelcolora+  getLabelFontA = xform1 c_th1f_getlabelfonta+  getLabelOffsetA = xform1 c_th1f_getlabeloffseta+  getLabelSizeA = xform1 c_th1f_getlabelsizea+  getTitleFontA = xform1 c_th1f_gettitlefonta+  getTitleOffsetA = xform1 c_th1f_gettitleoffseta+  getTitleSizeA = xform1 c_th1f_gettitlesizea+  getTickLengthA = xform1 c_th1f_getticklengtha+  getBarOffset = xform0 c_th1f_getbaroffset+  getBarWidth = xform0 c_th1f_getbarwidth+  getContour = xform1 c_th1f_getcontour+  getContourLevel = xform1 c_th1f_getcontourlevel+  getContourLevelPad = xform1 c_th1f_getcontourlevelpad+  getBin = xform3 c_th1f_getbin+  getBinCenter = xform1 c_th1f_getbincenter+  getBinContent1 = xform1 c_th1f_getbincontent1+  getBinContent2 = xform2 c_th1f_getbincontent2+  getBinContent3 = xform3 c_th1f_getbincontent3+  getBinError1 = xform1 c_th1f_getbinerror1+  getBinError2 = xform2 c_th1f_getbinerror2+  getBinError3 = xform3 c_th1f_getbinerror3+  getBinLowEdge = xform1 c_th1f_getbinlowedge+  getBinWidth = xform1 c_th1f_getbinwidth+  getCellContent = xform2 c_th1f_getcellcontent+  getCellError = xform2 c_th1f_getcellerror+  getEntries = xform0 c_th1f_getentries+  getEffectiveEntries = xform0 c_th1f_geteffectiveentries+  getFunction = xform1 c_th1f_getfunction+  getDimension = xform0 c_th1f_getdimension+  getKurtosis = xform1 c_th1f_getkurtosis+  getLowEdge = xform1 c_th1f_getlowedge+  getMaximumTH1 = xform1 c_th1f_getmaximumth1+  getMaximumBin = xform0 c_th1f_getmaximumbin+  getMaximumStored = xform0 c_th1f_getmaximumstored+  getMinimumTH1 = xform1 c_th1f_getminimumth1+  getMinimumBin = xform0 c_th1f_getminimumbin+  getMinimumStored = xform0 c_th1f_getminimumstored+  getMean = xform1 c_th1f_getmean+  getMeanError = xform1 c_th1f_getmeanerror+  getNbinsX = xform0 c_th1f_getnbinsx+  getNbinsY = xform0 c_th1f_getnbinsy+  getNbinsZ = xform0 c_th1f_getnbinsz+  getQuantilesTH1 = xform3 c_th1f_getquantilesth1+  getRandom = xform0 c_th1f_getrandom+  getStats = xform1 c_th1f_getstats+  getSumOfWeights = xform0 c_th1f_getsumofweights+  getSumw2 = xform0 c_th1f_getsumw2+  getSumw2N = xform0 c_th1f_getsumw2n+  getRMS = xform1 c_th1f_getrms+  getRMSError = xform1 c_th1f_getrmserror+  getSkewness = xform1 c_th1f_getskewness+  integral1 = xform3 c_th1f_integral1+  interpolate1 = xform1 c_th1f_interpolate1+  interpolate2 = xform2 c_th1f_interpolate2+  interpolate3 = xform3 c_th1f_interpolate3+  kolmogorovTest = xform2 c_th1f_kolmogorovtest+  labelsDeflate = xform1 c_th1f_labelsdeflate+  labelsInflate = xform1 c_th1f_labelsinflate+  labelsOption = xform2 c_th1f_labelsoption+  multiflyF = xform2 c_th1f_multiflyf+  multiply = xform5 c_th1f_multiply+  putStats = xform1 c_th1f_putstats+  rebin = xform3 c_th1f_rebin+  rebinAxis = xform2 c_th1f_rebinaxis+  rebuild = xform1 c_th1f_rebuild+  recursiveRemove = xform1 c_th1f_recursiveremove+  reset = xform1 c_th1f_reset+  resetStats = xform0 c_th1f_resetstats+  scale = xform2 c_th1f_scale+  setAxisColorA = xform2 c_th1f_setaxiscolora+  setAxisRange = xform3 c_th1f_setaxisrange+  setBarOffset = xform1 c_th1f_setbaroffset+  setBarWidth = xform1 c_th1f_setbarwidth+  setBinContent1 = xform2 c_th1f_setbincontent1+  setBinContent2 = xform3 c_th1f_setbincontent2+  setBinContent3 = xform4 c_th1f_setbincontent3+  setBinError1 = xform2 c_th1f_setbinerror1+  setBinError2 = xform3 c_th1f_setbinerror2+  setBinError3 = xform4 c_th1f_setbinerror3+  setBins1 = xform2 c_th1f_setbins1+  setBins2 = xform4 c_th1f_setbins2+  setBins3 = xform6 c_th1f_setbins3+  setBinsLength = xform1 c_th1f_setbinslength+  setBuffer = xform2 c_th1f_setbuffer+  setCellContent = xform3 c_th1f_setcellcontent+  setContent = xform1 c_th1f_setcontent+  setContour = xform2 c_th1f_setcontour+  setContourLevel = xform2 c_th1f_setcontourlevel+  setDirectory = xform1 c_th1f_setdirectory+  setEntries = xform1 c_th1f_setentries+  setError = xform1 c_th1f_seterror+  setLabelColorA = xform2 c_th1f_setlabelcolora+  setLabelSizeA = xform2 c_th1f_setlabelsizea+  setLabelFontA = xform2 c_th1f_setlabelfonta+  setLabelOffsetA = xform2 c_th1f_setlabeloffseta+  setMaximum = xform1 c_th1f_setmaximum+  setMinimum = xform1 c_th1f_setminimum+  setNormFactor = xform1 c_th1f_setnormfactor+  setStats = xform1 c_th1f_setstats+  setOption = xform1 c_th1f_setoption+  setXTitle = xform1 c_th1f_setxtitle+  setYTitle = xform1 c_th1f_setytitle+  setZTitle = xform1 c_th1f_setztitle+  showBackground = xform2 c_th1f_showbackground+  showPeaks = xform3 c_th1f_showpeaks+  smooth = xform2 c_th1f_smooth+  sumw2 = xform0 c_th1f_sumw2+instance ITArrayF TH1F where+instance ITObject TH1F where+  draw = xform1 c_th1f_draw+  findObject = xform1 c_th1f_findobject+  getName = xform0 c_th1f_getname+  isA = xform0 c_th1f_isa+  paint = xform1 c_th1f_paint+  printObj = xform1 c_th1f_printobj+  saveAs = xform2 c_th1f_saveas+  write = xform3 c_th1f_write+instance ITAttLine TH1F where+  getLineColor = xform0 c_th1f_getlinecolor+  getLineStyle = xform0 c_th1f_getlinestyle+  getLineWidth = xform0 c_th1f_getlinewidth+  resetAttLine = xform1 c_th1f_resetattline+  setLineAttributes = xform0 c_th1f_setlineattributes+  setLineColor = xform1 c_th1f_setlinecolor+  setLineStyle = xform1 c_th1f_setlinestyle+  setLineWidth = xform1 c_th1f_setlinewidth+instance ITAttFill TH1F where+  setFillColor = xform1 c_th1f_setfillcolor+  setFillStyle = xform1 c_th1f_setfillstyle+instance ITAttMarker TH1F where+  getMarkerColor = xform0 c_th1f_getmarkercolor+  getMarkerStyle = xform0 c_th1f_getmarkerstyle+  getMarkerSize = xform0 c_th1f_getmarkersize+  resetAttMarker = xform1 c_th1f_resetattmarker+  setMarkerAttributes = xform0 c_th1f_setmarkerattributes+  setMarkerColor = xform1 c_th1f_setmarkercolor+  setMarkerStyle = xform1 c_th1f_setmarkerstyle+  setMarkerSize = xform1 c_th1f_setmarkersize+instance IDeletable TH1F where+  delete = xform0 c_th1f_delete+instance ITArray TH1F where++instance ITH1F (Exist TH1F) where++instance ITH1 (Exist TH1F) where+  add (ETH1F x) = add x+  addBinContent (ETH1F x) = addBinContent x+  chi2Test (ETH1F x) = chi2Test x+  computeIntegral (ETH1F x) = computeIntegral x+  directoryAutoAdd (ETH1F x) = directoryAutoAdd x+  divide (ETH1F x) = divide x+  drawCopyTH1 (ETH1F x) a1 = return . ETH1F =<< drawCopyTH1 x a1+  drawNormalized (ETH1F x) = drawNormalized x+  drawPanelTH1 (ETH1F x) = drawPanelTH1 x+  bufferEmpty (ETH1F x) = bufferEmpty x+  evalF (ETH1F x) = evalF x+  fFT (ETH1F x) = fFT x+  fill1 (ETH1F x) = fill1 x+  fill1w (ETH1F x) = fill1w x+  fillN1 (ETH1F x) = fillN1 x+  fillRandom (ETH1F x) = fillRandom x+  findBin (ETH1F x) = findBin x+  findFixBin (ETH1F x) = findFixBin x+  findFirstBinAbove (ETH1F x) = findFirstBinAbove x+  findLastBinAbove (ETH1F x) = findLastBinAbove x+  fitPanelTH1 (ETH1F x) = fitPanelTH1 x+  getNdivisionA (ETH1F x) = getNdivisionA x+  getAxisColorA (ETH1F x) = getAxisColorA x+  getLabelColorA (ETH1F x) = getLabelColorA x+  getLabelFontA (ETH1F x) = getLabelFontA x+  getLabelOffsetA (ETH1F x) = getLabelOffsetA x+  getLabelSizeA (ETH1F x) = getLabelSizeA x+  getTitleFontA (ETH1F x) = getTitleFontA x+  getTitleOffsetA (ETH1F x) = getTitleOffsetA x+  getTitleSizeA (ETH1F x) = getTitleSizeA x+  getTickLengthA (ETH1F x) = getTickLengthA x+  getBarOffset (ETH1F x) = getBarOffset x+  getBarWidth (ETH1F x) = getBarWidth x+  getContour (ETH1F x) = getContour x+  getContourLevel (ETH1F x) = getContourLevel x+  getContourLevelPad (ETH1F x) = getContourLevelPad x+  getBin (ETH1F x) = getBin x+  getBinCenter (ETH1F x) = getBinCenter x+  getBinContent1 (ETH1F x) = getBinContent1 x+  getBinContent2 (ETH1F x) = getBinContent2 x+  getBinContent3 (ETH1F x) = getBinContent3 x+  getBinError1 (ETH1F x) = getBinError1 x+  getBinError2 (ETH1F x) = getBinError2 x+  getBinError3 (ETH1F x) = getBinError3 x+  getBinLowEdge (ETH1F x) = getBinLowEdge x+  getBinWidth (ETH1F x) = getBinWidth x+  getCellContent (ETH1F x) = getCellContent x+  getCellError (ETH1F x) = getCellError x+  getEntries (ETH1F x) = getEntries x+  getEffectiveEntries (ETH1F x) = getEffectiveEntries x+  getFunction (ETH1F x) = getFunction x+  getDimension (ETH1F x) = getDimension x+  getKurtosis (ETH1F x) = getKurtosis x+  getLowEdge (ETH1F x) = getLowEdge x+  getMaximumTH1 (ETH1F x) = getMaximumTH1 x+  getMaximumBin (ETH1F x) = getMaximumBin x+  getMaximumStored (ETH1F x) = getMaximumStored x+  getMinimumTH1 (ETH1F x) = getMinimumTH1 x+  getMinimumBin (ETH1F x) = getMinimumBin x+  getMinimumStored (ETH1F x) = getMinimumStored x+  getMean (ETH1F x) = getMean x+  getMeanError (ETH1F x) = getMeanError x+  getNbinsX (ETH1F x) = getNbinsX x+  getNbinsY (ETH1F x) = getNbinsY x+  getNbinsZ (ETH1F x) = getNbinsZ x+  getQuantilesTH1 (ETH1F x) = getQuantilesTH1 x+  getRandom (ETH1F x) = getRandom x+  getStats (ETH1F x) = getStats x+  getSumOfWeights (ETH1F x) = getSumOfWeights x+  getSumw2 (ETH1F x) = getSumw2 x+  getSumw2N (ETH1F x) = getSumw2N x+  getRMS (ETH1F x) = getRMS x+  getRMSError (ETH1F x) = getRMSError x+  getSkewness (ETH1F x) = getSkewness x+  integral1 (ETH1F x) = integral1 x+  interpolate1 (ETH1F x) = interpolate1 x+  interpolate2 (ETH1F x) = interpolate2 x+  interpolate3 (ETH1F x) = interpolate3 x+  kolmogorovTest (ETH1F x) = kolmogorovTest x+  labelsDeflate (ETH1F x) = labelsDeflate x+  labelsInflate (ETH1F x) = labelsInflate x+  labelsOption (ETH1F x) = labelsOption x+  multiflyF (ETH1F x) = multiflyF x+  multiply (ETH1F x) = multiply x+  putStats (ETH1F x) = putStats x+  rebin (ETH1F x) = rebin x+  rebinAxis (ETH1F x) = rebinAxis x+  rebuild (ETH1F x) = rebuild x+  recursiveRemove (ETH1F x) = recursiveRemove x+  reset (ETH1F x) = reset x+  resetStats (ETH1F x) = resetStats x+  scale (ETH1F x) = scale x+  setAxisColorA (ETH1F x) = setAxisColorA x+  setAxisRange (ETH1F x) = setAxisRange x+  setBarOffset (ETH1F x) = setBarOffset x+  setBarWidth (ETH1F x) = setBarWidth x+  setBinContent1 (ETH1F x) = setBinContent1 x+  setBinContent2 (ETH1F x) = setBinContent2 x+  setBinContent3 (ETH1F x) = setBinContent3 x+  setBinError1 (ETH1F x) = setBinError1 x+  setBinError2 (ETH1F x) = setBinError2 x+  setBinError3 (ETH1F x) = setBinError3 x+  setBins1 (ETH1F x) = setBins1 x+  setBins2 (ETH1F x) = setBins2 x+  setBins3 (ETH1F x) = setBins3 x+  setBinsLength (ETH1F x) = setBinsLength x+  setBuffer (ETH1F x) = setBuffer x+  setCellContent (ETH1F x) = setCellContent x+  setContent (ETH1F x) = setContent x+  setContour (ETH1F x) = setContour x+  setContourLevel (ETH1F x) = setContourLevel x+  setDirectory (ETH1F x) = setDirectory x+  setEntries (ETH1F x) = setEntries x+  setError (ETH1F x) = setError x+  setLabelColorA (ETH1F x) = setLabelColorA x+  setLabelSizeA (ETH1F x) = setLabelSizeA x+  setLabelFontA (ETH1F x) = setLabelFontA x+  setLabelOffsetA (ETH1F x) = setLabelOffsetA x+  setMaximum (ETH1F x) = setMaximum x+  setMinimum (ETH1F x) = setMinimum x+  setNormFactor (ETH1F x) = setNormFactor x+  setStats (ETH1F x) = setStats x+  setOption (ETH1F x) = setOption x+  setXTitle (ETH1F x) = setXTitle x+  setYTitle (ETH1F x) = setYTitle x+  setZTitle (ETH1F x) = setZTitle x+  showBackground (ETH1F x) = showBackground x+  showPeaks (ETH1F x) = showPeaks x+  smooth (ETH1F x) = smooth x+  sumw2 (ETH1F x) = sumw2 x+instance ITArrayF (Exist TH1F) where++instance ITObject (Exist TH1F) where+  draw (ETH1F x) = draw x+  findObject (ETH1F x) = findObject x+  getName (ETH1F x) = getName x+  isA (ETH1F x) = isA x+  paint (ETH1F x) = paint x+  printObj (ETH1F x) = printObj x+  saveAs (ETH1F x) = saveAs x+  write (ETH1F x) = write x+instance ITAttLine (Exist TH1F) where+  getLineColor (ETH1F x) = getLineColor x+  getLineStyle (ETH1F x) = getLineStyle x+  getLineWidth (ETH1F x) = getLineWidth x+  resetAttLine (ETH1F x) = resetAttLine x+  setLineAttributes (ETH1F x) = setLineAttributes x+  setLineColor (ETH1F x) = setLineColor x+  setLineStyle (ETH1F x) = setLineStyle x+  setLineWidth (ETH1F x) = setLineWidth x+instance ITAttFill (Exist TH1F) where+  setFillColor (ETH1F x) = setFillColor x+  setFillStyle (ETH1F x) = setFillStyle x+instance ITAttMarker (Exist TH1F) where+  getMarkerColor (ETH1F x) = getMarkerColor x+  getMarkerStyle (ETH1F x) = getMarkerStyle x+  getMarkerSize (ETH1F x) = getMarkerSize x+  resetAttMarker (ETH1F x) = resetAttMarker x+  setMarkerAttributes (ETH1F x) = setMarkerAttributes x+  setMarkerColor (ETH1F x) = setMarkerColor x+  setMarkerStyle (ETH1F x) = setMarkerStyle x+  setMarkerSize (ETH1F x) = setMarkerSize x+instance IDeletable (Exist TH1F) where+  delete (ETH1F x) = delete x+instance ITArray (Exist TH1F) where++++newTH1F :: CString -> CString -> CInt -> CDouble -> CDouble -> IO TH1F+newTH1F = xform4 c_th1f_newth1f++++++instance FPtr (Exist TH1F) where+  type Raw (Exist TH1F) = RawTH1F+  get_fptr (ETH1F obj) = castForeignPtr (get_fptr obj)+  cast_fptr_to_obj fptr = ETH1F (cast_fptr_to_obj (fptr :: ForeignPtr RawTH1F) :: TH1F)
+ src/HROOT/Hist/TH1F/Interface.hs view
@@ -0,0 +1,37 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++-- module HROOT.Class.Interface where++module HROOT.Hist.TH1F.Interface where+++import Data.Word+import Foreign.C+import Foreign.Ptr+import Foreign.ForeignPtr+import FFICXX.Runtime.Cast++import HROOT.Hist.TH1F.RawType++import HROOT.Hist.TH1.Interface+import HROOT.Core.TArrayF.Interface+---- ============ ----++++class (ITH1 a,ITArrayF a) => ITH1F a where++instance Existable TH1F where+  data Exist TH1F = forall a. (FPtr a, ITH1F a) => ETH1F a++upcastTH1F :: (FPtr a, ITH1F a) => a -> TH1F+upcastTH1F h = let fh = get_fptr h+                   fh2 :: ForeignPtr RawTH1F = castForeignPtr fh+               in cast_fptr_to_obj fh2++downcastTH1F :: (FPtr a, ITH1F a) => TH1F -> a +downcastTH1F h = let fh = get_fptr h+                     fh2 = castForeignPtr fh+                 in cast_fptr_to_obj fh2
+ src/HROOT/Hist/TH1F/Interface.hs-boot view
@@ -0,0 +1,3 @@+module HROOT.Hist.TH1F.Interface where++class ITH1F a
+ src/HROOT/Hist/TH1F/RawType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++module HROOT.Hist.TH1F.RawType where+++import Foreign.ForeignPtr+import FFICXX.Runtime.Cast  ++data RawTH1F+newtype TH1F = TH1F (ForeignPtr RawTH1F) deriving (Eq, Ord, Show)+instance FPtr TH1F where+   type Raw TH1F = RawTH1F+   get_fptr (TH1F fptr) = fptr+   cast_fptr_to_obj = TH1F
+ src/HROOT/Hist/TH1I.hs view
@@ -0,0 +1,15 @@+module HROOT.Hist.TH1I+  (+    TH1I(..)+  , ITH1I+  , upcastTH1I+  , downcastTH1I++ +  ) where++import HROOT.Hist.TH1I.RawType+import HROOT.Hist.TH1I.Interface+import HROOT.Hist.TH1I.Implementation++
+ src/HROOT/Hist/TH1I/Cast.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeFamilies, +             MultiParamTypeClasses, OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH1I.Cast where+++import Foreign.Ptr+import Foreign.ForeignPtr (castForeignPtr, newForeignPtr_)+import Foreign.ForeignPtr.Unsafe+import FFICXX.Runtime.Cast+import System.IO.Unsafe++import HROOT.Hist.TH1I.RawType+import HROOT.Hist.TH1I.Interface++instance (ITH1I a, FPtr a) => Castable a (Ptr RawTH1I) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ ++instance Castable TH1I (Ptr RawTH1I) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+ src/HROOT/Hist/TH1I/FFI.hsc view
@@ -0,0 +1,496 @@+{-# LANGUAGE ForeignFunctionInterface #-}++-- module HROOT.Class.FFI where++module HROOT.Hist.TH1I.FFI where+++import Foreign.C            +import Foreign.Ptr++-- import HROOT.Class.Interface++-- #include ""++import HROOT.Hist.TH1I.RawType+import HROOT.Hist.TH1.RawType+import HROOT.Core.TDirectory.RawType+import HROOT.Hist.TF1.RawType+import HROOT.Core.TArrayD.RawType+import HROOT.Hist.TAxis.RawType+import HROOT.Core.TObject.RawType+import HROOT.Core.TClass.RawType++#include "HROOTHistTH1I.h"++foreign import ccall "HROOTHistTH1I.h TH1I_Add" c_th1i_add +  :: (Ptr RawTH1I) -> (Ptr RawTH1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_AddBinContent" c_th1i_addbincontent +  :: (Ptr RawTH1I) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_Chi2Test" c_th1i_chi2test +  :: (Ptr RawTH1I) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_ComputeIntegral" c_th1i_computeintegral +  :: (Ptr RawTH1I) -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_DirectoryAutoAdd" c_th1i_directoryautoadd +  :: (Ptr RawTH1I) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_Divide" c_th1i_divide +  :: (Ptr RawTH1I) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_drawCopyTH1" c_th1i_drawcopyth1 +  :: (Ptr RawTH1I) -> CString -> IO (Ptr RawTH1I)++foreign import ccall "HROOTHistTH1I.h TH1I_DrawNormalized" c_th1i_drawnormalized +  :: (Ptr RawTH1I) -> CString -> CDouble -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH1I.h TH1I_drawPanelTH1" c_th1i_drawpanelth1 +  :: (Ptr RawTH1I) -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_BufferEmpty" c_th1i_bufferempty +  :: (Ptr RawTH1I) -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1I.h TH1I_evalF" c_th1i_evalf +  :: (Ptr RawTH1I) -> (Ptr RawTF1) -> CString -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_FFT" c_th1i_fft +  :: (Ptr RawTH1I) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH1I.h TH1I_fill1" c_th1i_fill1 +  :: (Ptr RawTH1I) -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1I.h TH1I_fill1w" c_th1i_fill1w +  :: (Ptr RawTH1I) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1I.h TH1I_fillN1" c_th1i_filln1 +  :: (Ptr RawTH1I) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_FillRandom" c_th1i_fillrandom +  :: (Ptr RawTH1I) -> (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_FindBin" c_th1i_findbin +  :: (Ptr RawTH1I) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1I.h TH1I_FindFixBin" c_th1i_findfixbin +  :: (Ptr RawTH1I) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1I.h TH1I_FindFirstBinAbove" c_th1i_findfirstbinabove +  :: (Ptr RawTH1I) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1I.h TH1I_FindLastBinAbove" c_th1i_findlastbinabove +  :: (Ptr RawTH1I) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1I.h TH1I_FitPanelTH1" c_th1i_fitpanelth1 +  :: (Ptr RawTH1I) -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_getNdivisionA" c_th1i_getndivisiona +  :: (Ptr RawTH1I) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1I.h TH1I_getAxisColorA" c_th1i_getaxiscolora +  :: (Ptr RawTH1I) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1I.h TH1I_getLabelColorA" c_th1i_getlabelcolora +  :: (Ptr RawTH1I) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1I.h TH1I_getLabelFontA" c_th1i_getlabelfonta +  :: (Ptr RawTH1I) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1I.h TH1I_getLabelOffsetA" c_th1i_getlabeloffseta +  :: (Ptr RawTH1I) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_getLabelSizeA" c_th1i_getlabelsizea +  :: (Ptr RawTH1I) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_getTitleFontA" c_th1i_gettitlefonta +  :: (Ptr RawTH1I) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1I.h TH1I_getTitleOffsetA" c_th1i_gettitleoffseta +  :: (Ptr RawTH1I) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_getTitleSizeA" c_th1i_gettitlesizea +  :: (Ptr RawTH1I) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_getTickLengthA" c_th1i_getticklengtha +  :: (Ptr RawTH1I) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_GetBarOffset" c_th1i_getbaroffset +  :: (Ptr RawTH1I) -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_GetBarWidth" c_th1i_getbarwidth +  :: (Ptr RawTH1I) -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_GetContour" c_th1i_getcontour +  :: (Ptr RawTH1I) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH1I.h TH1I_GetContourLevel" c_th1i_getcontourlevel +  :: (Ptr RawTH1I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_GetContourLevelPad" c_th1i_getcontourlevelpad +  :: (Ptr RawTH1I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_GetBin" c_th1i_getbin +  :: (Ptr RawTH1I) -> CInt -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1I.h TH1I_GetBinCenter" c_th1i_getbincenter +  :: (Ptr RawTH1I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_GetBinContent1" c_th1i_getbincontent1 +  :: (Ptr RawTH1I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_GetBinContent2" c_th1i_getbincontent2 +  :: (Ptr RawTH1I) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_GetBinContent3" c_th1i_getbincontent3 +  :: (Ptr RawTH1I) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_GetBinError1" c_th1i_getbinerror1 +  :: (Ptr RawTH1I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_GetBinError2" c_th1i_getbinerror2 +  :: (Ptr RawTH1I) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_GetBinError3" c_th1i_getbinerror3 +  :: (Ptr RawTH1I) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_GetBinLowEdge" c_th1i_getbinlowedge +  :: (Ptr RawTH1I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_GetBinWidth" c_th1i_getbinwidth +  :: (Ptr RawTH1I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_GetCellContent" c_th1i_getcellcontent +  :: (Ptr RawTH1I) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_GetCellError" c_th1i_getcellerror +  :: (Ptr RawTH1I) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_GetEntries" c_th1i_getentries +  :: (Ptr RawTH1I) -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_GetEffectiveEntries" c_th1i_geteffectiveentries +  :: (Ptr RawTH1I) -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_GetFunction" c_th1i_getfunction +  :: (Ptr RawTH1I) -> CString -> IO (Ptr RawTF1)++foreign import ccall "HROOTHistTH1I.h TH1I_GetDimension" c_th1i_getdimension +  :: (Ptr RawTH1I) -> IO CInt++foreign import ccall "HROOTHistTH1I.h TH1I_GetKurtosis" c_th1i_getkurtosis +  :: (Ptr RawTH1I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_GetLowEdge" c_th1i_getlowedge +  :: (Ptr RawTH1I) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_getMaximumTH1" c_th1i_getmaximumth1 +  :: (Ptr RawTH1I) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_GetMaximumBin" c_th1i_getmaximumbin +  :: (Ptr RawTH1I) -> IO CInt++foreign import ccall "HROOTHistTH1I.h TH1I_GetMaximumStored" c_th1i_getmaximumstored +  :: (Ptr RawTH1I) -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_getMinimumTH1" c_th1i_getminimumth1 +  :: (Ptr RawTH1I) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_GetMinimumBin" c_th1i_getminimumbin +  :: (Ptr RawTH1I) -> IO CInt++foreign import ccall "HROOTHistTH1I.h TH1I_GetMinimumStored" c_th1i_getminimumstored +  :: (Ptr RawTH1I) -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_GetMean" c_th1i_getmean +  :: (Ptr RawTH1I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_GetMeanError" c_th1i_getmeanerror +  :: (Ptr RawTH1I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_GetNbinsX" c_th1i_getnbinsx +  :: (Ptr RawTH1I) -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_GetNbinsY" c_th1i_getnbinsy +  :: (Ptr RawTH1I) -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_GetNbinsZ" c_th1i_getnbinsz +  :: (Ptr RawTH1I) -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_getQuantilesTH1" c_th1i_getquantilesth1 +  :: (Ptr RawTH1I) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH1I.h TH1I_GetRandom" c_th1i_getrandom +  :: (Ptr RawTH1I) -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_GetStats" c_th1i_getstats +  :: (Ptr RawTH1I) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_GetSumOfWeights" c_th1i_getsumofweights +  :: (Ptr RawTH1I) -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_GetSumw2" c_th1i_getsumw2 +  :: (Ptr RawTH1I) -> IO (Ptr RawTArrayD)++foreign import ccall "HROOTHistTH1I.h TH1I_GetSumw2N" c_th1i_getsumw2n +  :: (Ptr RawTH1I) -> IO CInt++foreign import ccall "HROOTHistTH1I.h TH1I_GetRMS" c_th1i_getrms +  :: (Ptr RawTH1I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_GetRMSError" c_th1i_getrmserror +  :: (Ptr RawTH1I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_GetSkewness" c_th1i_getskewness +  :: (Ptr RawTH1I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_integral1" c_th1i_integral1 +  :: (Ptr RawTH1I) -> CInt -> CInt -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_interpolate1" c_th1i_interpolate1 +  :: (Ptr RawTH1I) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_interpolate2" c_th1i_interpolate2 +  :: (Ptr RawTH1I) -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_interpolate3" c_th1i_interpolate3 +  :: (Ptr RawTH1I) -> CDouble -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_KolmogorovTest" c_th1i_kolmogorovtest +  :: (Ptr RawTH1I) -> (Ptr RawTH1) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_LabelsDeflate" c_th1i_labelsdeflate +  :: (Ptr RawTH1I) -> CString -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_LabelsInflate" c_th1i_labelsinflate +  :: (Ptr RawTH1I) -> CString -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_LabelsOption" c_th1i_labelsoption +  :: (Ptr RawTH1I) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_multiflyF" c_th1i_multiflyf +  :: (Ptr RawTH1I) -> (Ptr RawTF1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_Multiply" c_th1i_multiply +  :: (Ptr RawTH1I) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_PutStats" c_th1i_putstats +  :: (Ptr RawTH1I) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_Rebin" c_th1i_rebin +  :: (Ptr RawTH1I) -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH1I.h TH1I_RebinAxis" c_th1i_rebinaxis +  :: (Ptr RawTH1I) -> CDouble -> (Ptr RawTAxis) -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_Rebuild" c_th1i_rebuild +  :: (Ptr RawTH1I) -> CString -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_RecursiveRemove" c_th1i_recursiveremove +  :: (Ptr RawTH1I) -> (Ptr RawTObject) -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_Reset" c_th1i_reset +  :: (Ptr RawTH1I) -> CString -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_ResetStats" c_th1i_resetstats +  :: (Ptr RawTH1I) -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_Scale" c_th1i_scale +  :: (Ptr RawTH1I) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_setAxisColorA" c_th1i_setaxiscolora +  :: (Ptr RawTH1I) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SetAxisRange" c_th1i_setaxisrange +  :: (Ptr RawTH1I) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SetBarOffset" c_th1i_setbaroffset +  :: (Ptr RawTH1I) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SetBarWidth" c_th1i_setbarwidth +  :: (Ptr RawTH1I) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_setBinContent1" c_th1i_setbincontent1 +  :: (Ptr RawTH1I) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_setBinContent2" c_th1i_setbincontent2 +  :: (Ptr RawTH1I) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_setBinContent3" c_th1i_setbincontent3 +  :: (Ptr RawTH1I) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_setBinError1" c_th1i_setbinerror1 +  :: (Ptr RawTH1I) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_setBinError2" c_th1i_setbinerror2 +  :: (Ptr RawTH1I) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_setBinError3" c_th1i_setbinerror3 +  :: (Ptr RawTH1I) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_setBins1" c_th1i_setbins1 +  :: (Ptr RawTH1I) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_setBins2" c_th1i_setbins2 +  :: (Ptr RawTH1I) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_setBins3" c_th1i_setbins3 +  :: (Ptr RawTH1I) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SetBinsLength" c_th1i_setbinslength +  :: (Ptr RawTH1I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SetBuffer" c_th1i_setbuffer +  :: (Ptr RawTH1I) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SetCellContent" c_th1i_setcellcontent +  :: (Ptr RawTH1I) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SetContent" c_th1i_setcontent +  :: (Ptr RawTH1I) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SetContour" c_th1i_setcontour +  :: (Ptr RawTH1I) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SetContourLevel" c_th1i_setcontourlevel +  :: (Ptr RawTH1I) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SetDirectory" c_th1i_setdirectory +  :: (Ptr RawTH1I) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SetEntries" c_th1i_setentries +  :: (Ptr RawTH1I) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SetError" c_th1i_seterror +  :: (Ptr RawTH1I) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_setLabelColorA" c_th1i_setlabelcolora +  :: (Ptr RawTH1I) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_setLabelSizeA" c_th1i_setlabelsizea +  :: (Ptr RawTH1I) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_setLabelFontA" c_th1i_setlabelfonta +  :: (Ptr RawTH1I) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_setLabelOffsetA" c_th1i_setlabeloffseta +  :: (Ptr RawTH1I) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SetMaximum" c_th1i_setmaximum +  :: (Ptr RawTH1I) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SetMinimum" c_th1i_setminimum +  :: (Ptr RawTH1I) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SetNormFactor" c_th1i_setnormfactor +  :: (Ptr RawTH1I) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SetStats" c_th1i_setstats +  :: (Ptr RawTH1I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SetOption" c_th1i_setoption +  :: (Ptr RawTH1I) -> CString -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SetXTitle" c_th1i_setxtitle +  :: (Ptr RawTH1I) -> CString -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SetYTitle" c_th1i_setytitle +  :: (Ptr RawTH1I) -> CString -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SetZTitle" c_th1i_setztitle +  :: (Ptr RawTH1I) -> CString -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_ShowBackground" c_th1i_showbackground +  :: (Ptr RawTH1I) -> CInt -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH1I.h TH1I_ShowPeaks" c_th1i_showpeaks +  :: (Ptr RawTH1I) -> CDouble -> CString -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1I.h TH1I_Smooth" c_th1i_smooth +  :: (Ptr RawTH1I) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_Sumw2" c_th1i_sumw2 +  :: (Ptr RawTH1I) -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_Draw" c_th1i_draw +  :: (Ptr RawTH1I) -> CString -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_FindObject" c_th1i_findobject +  :: (Ptr RawTH1I) -> CString -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTH1I.h TH1I_GetName" c_th1i_getname +  :: (Ptr RawTH1I) -> IO CString++foreign import ccall "HROOTHistTH1I.h TH1I_IsA" c_th1i_isa +  :: (Ptr RawTH1I) -> IO (Ptr RawTClass)++foreign import ccall "HROOTHistTH1I.h TH1I_Paint" c_th1i_paint +  :: (Ptr RawTH1I) -> CString -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_printObj" c_th1i_printobj +  :: (Ptr RawTH1I) -> CString -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SaveAs" c_th1i_saveas +  :: (Ptr RawTH1I) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_Write" c_th1i_write +  :: (Ptr RawTH1I) -> CString -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1I.h TH1I_GetLineColor" c_th1i_getlinecolor +  :: (Ptr RawTH1I) -> IO CInt++foreign import ccall "HROOTHistTH1I.h TH1I_GetLineStyle" c_th1i_getlinestyle +  :: (Ptr RawTH1I) -> IO CInt++foreign import ccall "HROOTHistTH1I.h TH1I_GetLineWidth" c_th1i_getlinewidth +  :: (Ptr RawTH1I) -> IO CInt++foreign import ccall "HROOTHistTH1I.h TH1I_ResetAttLine" c_th1i_resetattline +  :: (Ptr RawTH1I) -> CString -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SetLineAttributes" c_th1i_setlineattributes +  :: (Ptr RawTH1I) -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SetLineColor" c_th1i_setlinecolor +  :: (Ptr RawTH1I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SetLineStyle" c_th1i_setlinestyle +  :: (Ptr RawTH1I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SetLineWidth" c_th1i_setlinewidth +  :: (Ptr RawTH1I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SetFillColor" c_th1i_setfillcolor +  :: (Ptr RawTH1I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SetFillStyle" c_th1i_setfillstyle +  :: (Ptr RawTH1I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_GetMarkerColor" c_th1i_getmarkercolor +  :: (Ptr RawTH1I) -> IO CInt++foreign import ccall "HROOTHistTH1I.h TH1I_GetMarkerStyle" c_th1i_getmarkerstyle +  :: (Ptr RawTH1I) -> IO CInt++foreign import ccall "HROOTHistTH1I.h TH1I_GetMarkerSize" c_th1i_getmarkersize +  :: (Ptr RawTH1I) -> IO CDouble++foreign import ccall "HROOTHistTH1I.h TH1I_ResetAttMarker" c_th1i_resetattmarker +  :: (Ptr RawTH1I) -> CString -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SetMarkerAttributes" c_th1i_setmarkerattributes +  :: (Ptr RawTH1I) -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SetMarkerColor" c_th1i_setmarkercolor +  :: (Ptr RawTH1I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SetMarkerStyle" c_th1i_setmarkerstyle +  :: (Ptr RawTH1I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_SetMarkerSize" c_th1i_setmarkersize +  :: (Ptr RawTH1I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1I.h TH1I_delete" c_th1i_delete +  :: (Ptr RawTH1I) -> IO ()+
+ src/HROOT/Hist/TH1I/Implementation.hs view
@@ -0,0 +1,408 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, +             OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH1I.Implementation where+++import FFICXX.Runtime.Cast++import HROOT.Hist.TH1I.RawType+import HROOT.Hist.TH1I.FFI+import HROOT.Hist.TH1I.Interface+import HROOT.Hist.TH1I.Cast+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TDirectory.Cast+import HROOT.Core.TDirectory.Interface+import HROOT.Hist.TF1.RawType+import HROOT.Hist.TF1.Cast+import HROOT.Hist.TF1.Interface+import HROOT.Core.TArrayD.RawType+import HROOT.Core.TArrayD.Cast+import HROOT.Core.TArrayD.Interface+import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.Cast+import HROOT.Hist.TAxis.Interface+import HROOT.Core.TClass.RawType+import HROOT.Core.TClass.Cast+import HROOT.Core.TClass.Interface+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH1.Cast+import HROOT.Hist.TH1.Interface+import HROOT.Core.TArrayI.RawType+import HROOT.Core.TArrayI.Cast+import HROOT.Core.TArrayI.Interface+import HROOT.Core.TObject.RawType+import HROOT.Core.TObject.Cast+import HROOT.Core.TObject.Interface+import HROOT.Core.TAttLine.RawType+import HROOT.Core.TAttLine.Cast+import HROOT.Core.TAttLine.Interface+import HROOT.Core.TAttFill.RawType+import HROOT.Core.TAttFill.Cast+import HROOT.Core.TAttFill.Interface+import HROOT.Core.TAttMarker.RawType+import HROOT.Core.TAttMarker.Cast+import HROOT.Core.TAttMarker.Interface+import HROOT.Core.Deletable.RawType+import HROOT.Core.Deletable.Cast+import HROOT.Core.Deletable.Interface+import HROOT.Core.TArray.RawType+import HROOT.Core.TArray.Cast+import HROOT.Core.TArray.Interface++import Data.Word+import Foreign.C+import Foreign.Ptr +import Foreign.ForeignPtr++import System.IO.Unsafe+++instance ITH1I TH1I where+instance ITH1 TH1I where+  add = xform2 c_th1i_add+  addBinContent = xform2 c_th1i_addbincontent+  chi2Test = xform3 c_th1i_chi2test+  computeIntegral = xform0 c_th1i_computeintegral+  directoryAutoAdd = xform1 c_th1i_directoryautoadd+  divide = xform5 c_th1i_divide+  drawCopyTH1 = xform1 c_th1i_drawcopyth1+  drawNormalized = xform2 c_th1i_drawnormalized+  drawPanelTH1 = xform0 c_th1i_drawpanelth1+  bufferEmpty = xform1 c_th1i_bufferempty+  evalF = xform2 c_th1i_evalf+  fFT = xform2 c_th1i_fft+  fill1 = xform1 c_th1i_fill1+  fill1w = xform2 c_th1i_fill1w+  fillN1 = xform4 c_th1i_filln1+  fillRandom = xform2 c_th1i_fillrandom+  findBin = xform3 c_th1i_findbin+  findFixBin = xform3 c_th1i_findfixbin+  findFirstBinAbove = xform2 c_th1i_findfirstbinabove+  findLastBinAbove = xform2 c_th1i_findlastbinabove+  fitPanelTH1 = xform0 c_th1i_fitpanelth1+  getNdivisionA = xform1 c_th1i_getndivisiona+  getAxisColorA = xform1 c_th1i_getaxiscolora+  getLabelColorA = xform1 c_th1i_getlabelcolora+  getLabelFontA = xform1 c_th1i_getlabelfonta+  getLabelOffsetA = xform1 c_th1i_getlabeloffseta+  getLabelSizeA = xform1 c_th1i_getlabelsizea+  getTitleFontA = xform1 c_th1i_gettitlefonta+  getTitleOffsetA = xform1 c_th1i_gettitleoffseta+  getTitleSizeA = xform1 c_th1i_gettitlesizea+  getTickLengthA = xform1 c_th1i_getticklengtha+  getBarOffset = xform0 c_th1i_getbaroffset+  getBarWidth = xform0 c_th1i_getbarwidth+  getContour = xform1 c_th1i_getcontour+  getContourLevel = xform1 c_th1i_getcontourlevel+  getContourLevelPad = xform1 c_th1i_getcontourlevelpad+  getBin = xform3 c_th1i_getbin+  getBinCenter = xform1 c_th1i_getbincenter+  getBinContent1 = xform1 c_th1i_getbincontent1+  getBinContent2 = xform2 c_th1i_getbincontent2+  getBinContent3 = xform3 c_th1i_getbincontent3+  getBinError1 = xform1 c_th1i_getbinerror1+  getBinError2 = xform2 c_th1i_getbinerror2+  getBinError3 = xform3 c_th1i_getbinerror3+  getBinLowEdge = xform1 c_th1i_getbinlowedge+  getBinWidth = xform1 c_th1i_getbinwidth+  getCellContent = xform2 c_th1i_getcellcontent+  getCellError = xform2 c_th1i_getcellerror+  getEntries = xform0 c_th1i_getentries+  getEffectiveEntries = xform0 c_th1i_geteffectiveentries+  getFunction = xform1 c_th1i_getfunction+  getDimension = xform0 c_th1i_getdimension+  getKurtosis = xform1 c_th1i_getkurtosis+  getLowEdge = xform1 c_th1i_getlowedge+  getMaximumTH1 = xform1 c_th1i_getmaximumth1+  getMaximumBin = xform0 c_th1i_getmaximumbin+  getMaximumStored = xform0 c_th1i_getmaximumstored+  getMinimumTH1 = xform1 c_th1i_getminimumth1+  getMinimumBin = xform0 c_th1i_getminimumbin+  getMinimumStored = xform0 c_th1i_getminimumstored+  getMean = xform1 c_th1i_getmean+  getMeanError = xform1 c_th1i_getmeanerror+  getNbinsX = xform0 c_th1i_getnbinsx+  getNbinsY = xform0 c_th1i_getnbinsy+  getNbinsZ = xform0 c_th1i_getnbinsz+  getQuantilesTH1 = xform3 c_th1i_getquantilesth1+  getRandom = xform0 c_th1i_getrandom+  getStats = xform1 c_th1i_getstats+  getSumOfWeights = xform0 c_th1i_getsumofweights+  getSumw2 = xform0 c_th1i_getsumw2+  getSumw2N = xform0 c_th1i_getsumw2n+  getRMS = xform1 c_th1i_getrms+  getRMSError = xform1 c_th1i_getrmserror+  getSkewness = xform1 c_th1i_getskewness+  integral1 = xform3 c_th1i_integral1+  interpolate1 = xform1 c_th1i_interpolate1+  interpolate2 = xform2 c_th1i_interpolate2+  interpolate3 = xform3 c_th1i_interpolate3+  kolmogorovTest = xform2 c_th1i_kolmogorovtest+  labelsDeflate = xform1 c_th1i_labelsdeflate+  labelsInflate = xform1 c_th1i_labelsinflate+  labelsOption = xform2 c_th1i_labelsoption+  multiflyF = xform2 c_th1i_multiflyf+  multiply = xform5 c_th1i_multiply+  putStats = xform1 c_th1i_putstats+  rebin = xform3 c_th1i_rebin+  rebinAxis = xform2 c_th1i_rebinaxis+  rebuild = xform1 c_th1i_rebuild+  recursiveRemove = xform1 c_th1i_recursiveremove+  reset = xform1 c_th1i_reset+  resetStats = xform0 c_th1i_resetstats+  scale = xform2 c_th1i_scale+  setAxisColorA = xform2 c_th1i_setaxiscolora+  setAxisRange = xform3 c_th1i_setaxisrange+  setBarOffset = xform1 c_th1i_setbaroffset+  setBarWidth = xform1 c_th1i_setbarwidth+  setBinContent1 = xform2 c_th1i_setbincontent1+  setBinContent2 = xform3 c_th1i_setbincontent2+  setBinContent3 = xform4 c_th1i_setbincontent3+  setBinError1 = xform2 c_th1i_setbinerror1+  setBinError2 = xform3 c_th1i_setbinerror2+  setBinError3 = xform4 c_th1i_setbinerror3+  setBins1 = xform2 c_th1i_setbins1+  setBins2 = xform4 c_th1i_setbins2+  setBins3 = xform6 c_th1i_setbins3+  setBinsLength = xform1 c_th1i_setbinslength+  setBuffer = xform2 c_th1i_setbuffer+  setCellContent = xform3 c_th1i_setcellcontent+  setContent = xform1 c_th1i_setcontent+  setContour = xform2 c_th1i_setcontour+  setContourLevel = xform2 c_th1i_setcontourlevel+  setDirectory = xform1 c_th1i_setdirectory+  setEntries = xform1 c_th1i_setentries+  setError = xform1 c_th1i_seterror+  setLabelColorA = xform2 c_th1i_setlabelcolora+  setLabelSizeA = xform2 c_th1i_setlabelsizea+  setLabelFontA = xform2 c_th1i_setlabelfonta+  setLabelOffsetA = xform2 c_th1i_setlabeloffseta+  setMaximum = xform1 c_th1i_setmaximum+  setMinimum = xform1 c_th1i_setminimum+  setNormFactor = xform1 c_th1i_setnormfactor+  setStats = xform1 c_th1i_setstats+  setOption = xform1 c_th1i_setoption+  setXTitle = xform1 c_th1i_setxtitle+  setYTitle = xform1 c_th1i_setytitle+  setZTitle = xform1 c_th1i_setztitle+  showBackground = xform2 c_th1i_showbackground+  showPeaks = xform3 c_th1i_showpeaks+  smooth = xform2 c_th1i_smooth+  sumw2 = xform0 c_th1i_sumw2+instance ITArrayI TH1I where+instance ITObject TH1I where+  draw = xform1 c_th1i_draw+  findObject = xform1 c_th1i_findobject+  getName = xform0 c_th1i_getname+  isA = xform0 c_th1i_isa+  paint = xform1 c_th1i_paint+  printObj = xform1 c_th1i_printobj+  saveAs = xform2 c_th1i_saveas+  write = xform3 c_th1i_write+instance ITAttLine TH1I where+  getLineColor = xform0 c_th1i_getlinecolor+  getLineStyle = xform0 c_th1i_getlinestyle+  getLineWidth = xform0 c_th1i_getlinewidth+  resetAttLine = xform1 c_th1i_resetattline+  setLineAttributes = xform0 c_th1i_setlineattributes+  setLineColor = xform1 c_th1i_setlinecolor+  setLineStyle = xform1 c_th1i_setlinestyle+  setLineWidth = xform1 c_th1i_setlinewidth+instance ITAttFill TH1I where+  setFillColor = xform1 c_th1i_setfillcolor+  setFillStyle = xform1 c_th1i_setfillstyle+instance ITAttMarker TH1I where+  getMarkerColor = xform0 c_th1i_getmarkercolor+  getMarkerStyle = xform0 c_th1i_getmarkerstyle+  getMarkerSize = xform0 c_th1i_getmarkersize+  resetAttMarker = xform1 c_th1i_resetattmarker+  setMarkerAttributes = xform0 c_th1i_setmarkerattributes+  setMarkerColor = xform1 c_th1i_setmarkercolor+  setMarkerStyle = xform1 c_th1i_setmarkerstyle+  setMarkerSize = xform1 c_th1i_setmarkersize+instance IDeletable TH1I where+  delete = xform0 c_th1i_delete+instance ITArray TH1I where++instance ITH1I (Exist TH1I) where++instance ITH1 (Exist TH1I) where+  add (ETH1I x) = add x+  addBinContent (ETH1I x) = addBinContent x+  chi2Test (ETH1I x) = chi2Test x+  computeIntegral (ETH1I x) = computeIntegral x+  directoryAutoAdd (ETH1I x) = directoryAutoAdd x+  divide (ETH1I x) = divide x+  drawCopyTH1 (ETH1I x) a1 = return . ETH1I =<< drawCopyTH1 x a1+  drawNormalized (ETH1I x) = drawNormalized x+  drawPanelTH1 (ETH1I x) = drawPanelTH1 x+  bufferEmpty (ETH1I x) = bufferEmpty x+  evalF (ETH1I x) = evalF x+  fFT (ETH1I x) = fFT x+  fill1 (ETH1I x) = fill1 x+  fill1w (ETH1I x) = fill1w x+  fillN1 (ETH1I x) = fillN1 x+  fillRandom (ETH1I x) = fillRandom x+  findBin (ETH1I x) = findBin x+  findFixBin (ETH1I x) = findFixBin x+  findFirstBinAbove (ETH1I x) = findFirstBinAbove x+  findLastBinAbove (ETH1I x) = findLastBinAbove x+  fitPanelTH1 (ETH1I x) = fitPanelTH1 x+  getNdivisionA (ETH1I x) = getNdivisionA x+  getAxisColorA (ETH1I x) = getAxisColorA x+  getLabelColorA (ETH1I x) = getLabelColorA x+  getLabelFontA (ETH1I x) = getLabelFontA x+  getLabelOffsetA (ETH1I x) = getLabelOffsetA x+  getLabelSizeA (ETH1I x) = getLabelSizeA x+  getTitleFontA (ETH1I x) = getTitleFontA x+  getTitleOffsetA (ETH1I x) = getTitleOffsetA x+  getTitleSizeA (ETH1I x) = getTitleSizeA x+  getTickLengthA (ETH1I x) = getTickLengthA x+  getBarOffset (ETH1I x) = getBarOffset x+  getBarWidth (ETH1I x) = getBarWidth x+  getContour (ETH1I x) = getContour x+  getContourLevel (ETH1I x) = getContourLevel x+  getContourLevelPad (ETH1I x) = getContourLevelPad x+  getBin (ETH1I x) = getBin x+  getBinCenter (ETH1I x) = getBinCenter x+  getBinContent1 (ETH1I x) = getBinContent1 x+  getBinContent2 (ETH1I x) = getBinContent2 x+  getBinContent3 (ETH1I x) = getBinContent3 x+  getBinError1 (ETH1I x) = getBinError1 x+  getBinError2 (ETH1I x) = getBinError2 x+  getBinError3 (ETH1I x) = getBinError3 x+  getBinLowEdge (ETH1I x) = getBinLowEdge x+  getBinWidth (ETH1I x) = getBinWidth x+  getCellContent (ETH1I x) = getCellContent x+  getCellError (ETH1I x) = getCellError x+  getEntries (ETH1I x) = getEntries x+  getEffectiveEntries (ETH1I x) = getEffectiveEntries x+  getFunction (ETH1I x) = getFunction x+  getDimension (ETH1I x) = getDimension x+  getKurtosis (ETH1I x) = getKurtosis x+  getLowEdge (ETH1I x) = getLowEdge x+  getMaximumTH1 (ETH1I x) = getMaximumTH1 x+  getMaximumBin (ETH1I x) = getMaximumBin x+  getMaximumStored (ETH1I x) = getMaximumStored x+  getMinimumTH1 (ETH1I x) = getMinimumTH1 x+  getMinimumBin (ETH1I x) = getMinimumBin x+  getMinimumStored (ETH1I x) = getMinimumStored x+  getMean (ETH1I x) = getMean x+  getMeanError (ETH1I x) = getMeanError x+  getNbinsX (ETH1I x) = getNbinsX x+  getNbinsY (ETH1I x) = getNbinsY x+  getNbinsZ (ETH1I x) = getNbinsZ x+  getQuantilesTH1 (ETH1I x) = getQuantilesTH1 x+  getRandom (ETH1I x) = getRandom x+  getStats (ETH1I x) = getStats x+  getSumOfWeights (ETH1I x) = getSumOfWeights x+  getSumw2 (ETH1I x) = getSumw2 x+  getSumw2N (ETH1I x) = getSumw2N x+  getRMS (ETH1I x) = getRMS x+  getRMSError (ETH1I x) = getRMSError x+  getSkewness (ETH1I x) = getSkewness x+  integral1 (ETH1I x) = integral1 x+  interpolate1 (ETH1I x) = interpolate1 x+  interpolate2 (ETH1I x) = interpolate2 x+  interpolate3 (ETH1I x) = interpolate3 x+  kolmogorovTest (ETH1I x) = kolmogorovTest x+  labelsDeflate (ETH1I x) = labelsDeflate x+  labelsInflate (ETH1I x) = labelsInflate x+  labelsOption (ETH1I x) = labelsOption x+  multiflyF (ETH1I x) = multiflyF x+  multiply (ETH1I x) = multiply x+  putStats (ETH1I x) = putStats x+  rebin (ETH1I x) = rebin x+  rebinAxis (ETH1I x) = rebinAxis x+  rebuild (ETH1I x) = rebuild x+  recursiveRemove (ETH1I x) = recursiveRemove x+  reset (ETH1I x) = reset x+  resetStats (ETH1I x) = resetStats x+  scale (ETH1I x) = scale x+  setAxisColorA (ETH1I x) = setAxisColorA x+  setAxisRange (ETH1I x) = setAxisRange x+  setBarOffset (ETH1I x) = setBarOffset x+  setBarWidth (ETH1I x) = setBarWidth x+  setBinContent1 (ETH1I x) = setBinContent1 x+  setBinContent2 (ETH1I x) = setBinContent2 x+  setBinContent3 (ETH1I x) = setBinContent3 x+  setBinError1 (ETH1I x) = setBinError1 x+  setBinError2 (ETH1I x) = setBinError2 x+  setBinError3 (ETH1I x) = setBinError3 x+  setBins1 (ETH1I x) = setBins1 x+  setBins2 (ETH1I x) = setBins2 x+  setBins3 (ETH1I x) = setBins3 x+  setBinsLength (ETH1I x) = setBinsLength x+  setBuffer (ETH1I x) = setBuffer x+  setCellContent (ETH1I x) = setCellContent x+  setContent (ETH1I x) = setContent x+  setContour (ETH1I x) = setContour x+  setContourLevel (ETH1I x) = setContourLevel x+  setDirectory (ETH1I x) = setDirectory x+  setEntries (ETH1I x) = setEntries x+  setError (ETH1I x) = setError x+  setLabelColorA (ETH1I x) = setLabelColorA x+  setLabelSizeA (ETH1I x) = setLabelSizeA x+  setLabelFontA (ETH1I x) = setLabelFontA x+  setLabelOffsetA (ETH1I x) = setLabelOffsetA x+  setMaximum (ETH1I x) = setMaximum x+  setMinimum (ETH1I x) = setMinimum x+  setNormFactor (ETH1I x) = setNormFactor x+  setStats (ETH1I x) = setStats x+  setOption (ETH1I x) = setOption x+  setXTitle (ETH1I x) = setXTitle x+  setYTitle (ETH1I x) = setYTitle x+  setZTitle (ETH1I x) = setZTitle x+  showBackground (ETH1I x) = showBackground x+  showPeaks (ETH1I x) = showPeaks x+  smooth (ETH1I x) = smooth x+  sumw2 (ETH1I x) = sumw2 x+instance ITArrayI (Exist TH1I) where++instance ITObject (Exist TH1I) where+  draw (ETH1I x) = draw x+  findObject (ETH1I x) = findObject x+  getName (ETH1I x) = getName x+  isA (ETH1I x) = isA x+  paint (ETH1I x) = paint x+  printObj (ETH1I x) = printObj x+  saveAs (ETH1I x) = saveAs x+  write (ETH1I x) = write x+instance ITAttLine (Exist TH1I) where+  getLineColor (ETH1I x) = getLineColor x+  getLineStyle (ETH1I x) = getLineStyle x+  getLineWidth (ETH1I x) = getLineWidth x+  resetAttLine (ETH1I x) = resetAttLine x+  setLineAttributes (ETH1I x) = setLineAttributes x+  setLineColor (ETH1I x) = setLineColor x+  setLineStyle (ETH1I x) = setLineStyle x+  setLineWidth (ETH1I x) = setLineWidth x+instance ITAttFill (Exist TH1I) where+  setFillColor (ETH1I x) = setFillColor x+  setFillStyle (ETH1I x) = setFillStyle x+instance ITAttMarker (Exist TH1I) where+  getMarkerColor (ETH1I x) = getMarkerColor x+  getMarkerStyle (ETH1I x) = getMarkerStyle x+  getMarkerSize (ETH1I x) = getMarkerSize x+  resetAttMarker (ETH1I x) = resetAttMarker x+  setMarkerAttributes (ETH1I x) = setMarkerAttributes x+  setMarkerColor (ETH1I x) = setMarkerColor x+  setMarkerStyle (ETH1I x) = setMarkerStyle x+  setMarkerSize (ETH1I x) = setMarkerSize x+instance IDeletable (Exist TH1I) where+  delete (ETH1I x) = delete x+instance ITArray (Exist TH1I) where+++++++++instance FPtr (Exist TH1I) where+  type Raw (Exist TH1I) = RawTH1I+  get_fptr (ETH1I obj) = castForeignPtr (get_fptr obj)+  cast_fptr_to_obj fptr = ETH1I (cast_fptr_to_obj (fptr :: ForeignPtr RawTH1I) :: TH1I)
+ src/HROOT/Hist/TH1I/Interface.hs view
@@ -0,0 +1,37 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++-- module HROOT.Class.Interface where++module HROOT.Hist.TH1I.Interface where+++import Data.Word+import Foreign.C+import Foreign.Ptr+import Foreign.ForeignPtr+import FFICXX.Runtime.Cast++import HROOT.Hist.TH1I.RawType++import HROOT.Hist.TH1.Interface+import HROOT.Core.TArrayI.Interface+---- ============ ----++++class (ITH1 a,ITArrayI a) => ITH1I a where++instance Existable TH1I where+  data Exist TH1I = forall a. (FPtr a, ITH1I a) => ETH1I a++upcastTH1I :: (FPtr a, ITH1I a) => a -> TH1I+upcastTH1I h = let fh = get_fptr h+                   fh2 :: ForeignPtr RawTH1I = castForeignPtr fh+               in cast_fptr_to_obj fh2++downcastTH1I :: (FPtr a, ITH1I a) => TH1I -> a +downcastTH1I h = let fh = get_fptr h+                     fh2 = castForeignPtr fh+                 in cast_fptr_to_obj fh2
+ src/HROOT/Hist/TH1I/RawType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++module HROOT.Hist.TH1I.RawType where+++import Foreign.ForeignPtr+import FFICXX.Runtime.Cast  ++data RawTH1I+newtype TH1I = TH1I (ForeignPtr RawTH1I) deriving (Eq, Ord, Show)+instance FPtr TH1I where+   type Raw TH1I = RawTH1I+   get_fptr (TH1I fptr) = fptr+   cast_fptr_to_obj = TH1I
+ src/HROOT/Hist/TH1K.hs view
@@ -0,0 +1,15 @@+module HROOT.Hist.TH1K+  (+    TH1K(..)+  , ITH1K+  , upcastTH1K+  , downcastTH1K++ +  ) where++import HROOT.Hist.TH1K.RawType+import HROOT.Hist.TH1K.Interface+import HROOT.Hist.TH1K.Implementation++
+ src/HROOT/Hist/TH1K/Cast.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeFamilies, +             MultiParamTypeClasses, OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH1K.Cast where+++import Foreign.Ptr+import Foreign.ForeignPtr (castForeignPtr, newForeignPtr_)+import Foreign.ForeignPtr.Unsafe+import FFICXX.Runtime.Cast+import System.IO.Unsafe++import HROOT.Hist.TH1K.RawType+import HROOT.Hist.TH1K.Interface++instance (ITH1K a, FPtr a) => Castable a (Ptr RawTH1K) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ ++instance Castable TH1K (Ptr RawTH1K) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+ src/HROOT/Hist/TH1K/FFI.hsc view
@@ -0,0 +1,496 @@+{-# LANGUAGE ForeignFunctionInterface #-}++-- module HROOT.Class.FFI where++module HROOT.Hist.TH1K.FFI where+++import Foreign.C            +import Foreign.Ptr++-- import HROOT.Class.Interface++-- #include ""++import HROOT.Hist.TH1K.RawType+import HROOT.Hist.TH1.RawType+import HROOT.Core.TDirectory.RawType+import HROOT.Hist.TF1.RawType+import HROOT.Core.TArrayD.RawType+import HROOT.Hist.TAxis.RawType+import HROOT.Core.TObject.RawType+import HROOT.Core.TClass.RawType++#include "HROOTHistTH1K.h"++foreign import ccall "HROOTHistTH1K.h TH1K_Add" c_th1k_add +  :: (Ptr RawTH1K) -> (Ptr RawTH1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_AddBinContent" c_th1k_addbincontent +  :: (Ptr RawTH1K) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_Chi2Test" c_th1k_chi2test +  :: (Ptr RawTH1K) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_ComputeIntegral" c_th1k_computeintegral +  :: (Ptr RawTH1K) -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_DirectoryAutoAdd" c_th1k_directoryautoadd +  :: (Ptr RawTH1K) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_Divide" c_th1k_divide +  :: (Ptr RawTH1K) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_drawCopyTH1" c_th1k_drawcopyth1 +  :: (Ptr RawTH1K) -> CString -> IO (Ptr RawTH1K)++foreign import ccall "HROOTHistTH1K.h TH1K_DrawNormalized" c_th1k_drawnormalized +  :: (Ptr RawTH1K) -> CString -> CDouble -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH1K.h TH1K_drawPanelTH1" c_th1k_drawpanelth1 +  :: (Ptr RawTH1K) -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_BufferEmpty" c_th1k_bufferempty +  :: (Ptr RawTH1K) -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1K.h TH1K_evalF" c_th1k_evalf +  :: (Ptr RawTH1K) -> (Ptr RawTF1) -> CString -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_FFT" c_th1k_fft +  :: (Ptr RawTH1K) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH1K.h TH1K_fill1" c_th1k_fill1 +  :: (Ptr RawTH1K) -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1K.h TH1K_fill1w" c_th1k_fill1w +  :: (Ptr RawTH1K) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1K.h TH1K_fillN1" c_th1k_filln1 +  :: (Ptr RawTH1K) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_FillRandom" c_th1k_fillrandom +  :: (Ptr RawTH1K) -> (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_FindBin" c_th1k_findbin +  :: (Ptr RawTH1K) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1K.h TH1K_FindFixBin" c_th1k_findfixbin +  :: (Ptr RawTH1K) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1K.h TH1K_FindFirstBinAbove" c_th1k_findfirstbinabove +  :: (Ptr RawTH1K) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1K.h TH1K_FindLastBinAbove" c_th1k_findlastbinabove +  :: (Ptr RawTH1K) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1K.h TH1K_FitPanelTH1" c_th1k_fitpanelth1 +  :: (Ptr RawTH1K) -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_getNdivisionA" c_th1k_getndivisiona +  :: (Ptr RawTH1K) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1K.h TH1K_getAxisColorA" c_th1k_getaxiscolora +  :: (Ptr RawTH1K) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1K.h TH1K_getLabelColorA" c_th1k_getlabelcolora +  :: (Ptr RawTH1K) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1K.h TH1K_getLabelFontA" c_th1k_getlabelfonta +  :: (Ptr RawTH1K) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1K.h TH1K_getLabelOffsetA" c_th1k_getlabeloffseta +  :: (Ptr RawTH1K) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_getLabelSizeA" c_th1k_getlabelsizea +  :: (Ptr RawTH1K) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_getTitleFontA" c_th1k_gettitlefonta +  :: (Ptr RawTH1K) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1K.h TH1K_getTitleOffsetA" c_th1k_gettitleoffseta +  :: (Ptr RawTH1K) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_getTitleSizeA" c_th1k_gettitlesizea +  :: (Ptr RawTH1K) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_getTickLengthA" c_th1k_getticklengtha +  :: (Ptr RawTH1K) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_GetBarOffset" c_th1k_getbaroffset +  :: (Ptr RawTH1K) -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_GetBarWidth" c_th1k_getbarwidth +  :: (Ptr RawTH1K) -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_GetContour" c_th1k_getcontour +  :: (Ptr RawTH1K) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH1K.h TH1K_GetContourLevel" c_th1k_getcontourlevel +  :: (Ptr RawTH1K) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_GetContourLevelPad" c_th1k_getcontourlevelpad +  :: (Ptr RawTH1K) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_GetBin" c_th1k_getbin +  :: (Ptr RawTH1K) -> CInt -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1K.h TH1K_GetBinCenter" c_th1k_getbincenter +  :: (Ptr RawTH1K) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_GetBinContent1" c_th1k_getbincontent1 +  :: (Ptr RawTH1K) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_GetBinContent2" c_th1k_getbincontent2 +  :: (Ptr RawTH1K) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_GetBinContent3" c_th1k_getbincontent3 +  :: (Ptr RawTH1K) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_GetBinError1" c_th1k_getbinerror1 +  :: (Ptr RawTH1K) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_GetBinError2" c_th1k_getbinerror2 +  :: (Ptr RawTH1K) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_GetBinError3" c_th1k_getbinerror3 +  :: (Ptr RawTH1K) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_GetBinLowEdge" c_th1k_getbinlowedge +  :: (Ptr RawTH1K) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_GetBinWidth" c_th1k_getbinwidth +  :: (Ptr RawTH1K) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_GetCellContent" c_th1k_getcellcontent +  :: (Ptr RawTH1K) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_GetCellError" c_th1k_getcellerror +  :: (Ptr RawTH1K) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_GetEntries" c_th1k_getentries +  :: (Ptr RawTH1K) -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_GetEffectiveEntries" c_th1k_geteffectiveentries +  :: (Ptr RawTH1K) -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_GetFunction" c_th1k_getfunction +  :: (Ptr RawTH1K) -> CString -> IO (Ptr RawTF1)++foreign import ccall "HROOTHistTH1K.h TH1K_GetDimension" c_th1k_getdimension +  :: (Ptr RawTH1K) -> IO CInt++foreign import ccall "HROOTHistTH1K.h TH1K_GetKurtosis" c_th1k_getkurtosis +  :: (Ptr RawTH1K) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_GetLowEdge" c_th1k_getlowedge +  :: (Ptr RawTH1K) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_getMaximumTH1" c_th1k_getmaximumth1 +  :: (Ptr RawTH1K) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_GetMaximumBin" c_th1k_getmaximumbin +  :: (Ptr RawTH1K) -> IO CInt++foreign import ccall "HROOTHistTH1K.h TH1K_GetMaximumStored" c_th1k_getmaximumstored +  :: (Ptr RawTH1K) -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_getMinimumTH1" c_th1k_getminimumth1 +  :: (Ptr RawTH1K) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_GetMinimumBin" c_th1k_getminimumbin +  :: (Ptr RawTH1K) -> IO CInt++foreign import ccall "HROOTHistTH1K.h TH1K_GetMinimumStored" c_th1k_getminimumstored +  :: (Ptr RawTH1K) -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_GetMean" c_th1k_getmean +  :: (Ptr RawTH1K) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_GetMeanError" c_th1k_getmeanerror +  :: (Ptr RawTH1K) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_GetNbinsX" c_th1k_getnbinsx +  :: (Ptr RawTH1K) -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_GetNbinsY" c_th1k_getnbinsy +  :: (Ptr RawTH1K) -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_GetNbinsZ" c_th1k_getnbinsz +  :: (Ptr RawTH1K) -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_getQuantilesTH1" c_th1k_getquantilesth1 +  :: (Ptr RawTH1K) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH1K.h TH1K_GetRandom" c_th1k_getrandom +  :: (Ptr RawTH1K) -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_GetStats" c_th1k_getstats +  :: (Ptr RawTH1K) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_GetSumOfWeights" c_th1k_getsumofweights +  :: (Ptr RawTH1K) -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_GetSumw2" c_th1k_getsumw2 +  :: (Ptr RawTH1K) -> IO (Ptr RawTArrayD)++foreign import ccall "HROOTHistTH1K.h TH1K_GetSumw2N" c_th1k_getsumw2n +  :: (Ptr RawTH1K) -> IO CInt++foreign import ccall "HROOTHistTH1K.h TH1K_GetRMS" c_th1k_getrms +  :: (Ptr RawTH1K) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_GetRMSError" c_th1k_getrmserror +  :: (Ptr RawTH1K) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_GetSkewness" c_th1k_getskewness +  :: (Ptr RawTH1K) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_integral1" c_th1k_integral1 +  :: (Ptr RawTH1K) -> CInt -> CInt -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_interpolate1" c_th1k_interpolate1 +  :: (Ptr RawTH1K) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_interpolate2" c_th1k_interpolate2 +  :: (Ptr RawTH1K) -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_interpolate3" c_th1k_interpolate3 +  :: (Ptr RawTH1K) -> CDouble -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_KolmogorovTest" c_th1k_kolmogorovtest +  :: (Ptr RawTH1K) -> (Ptr RawTH1) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_LabelsDeflate" c_th1k_labelsdeflate +  :: (Ptr RawTH1K) -> CString -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_LabelsInflate" c_th1k_labelsinflate +  :: (Ptr RawTH1K) -> CString -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_LabelsOption" c_th1k_labelsoption +  :: (Ptr RawTH1K) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_multiflyF" c_th1k_multiflyf +  :: (Ptr RawTH1K) -> (Ptr RawTF1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_Multiply" c_th1k_multiply +  :: (Ptr RawTH1K) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_PutStats" c_th1k_putstats +  :: (Ptr RawTH1K) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_Rebin" c_th1k_rebin +  :: (Ptr RawTH1K) -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH1K.h TH1K_RebinAxis" c_th1k_rebinaxis +  :: (Ptr RawTH1K) -> CDouble -> (Ptr RawTAxis) -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_Rebuild" c_th1k_rebuild +  :: (Ptr RawTH1K) -> CString -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_RecursiveRemove" c_th1k_recursiveremove +  :: (Ptr RawTH1K) -> (Ptr RawTObject) -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_Reset" c_th1k_reset +  :: (Ptr RawTH1K) -> CString -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_ResetStats" c_th1k_resetstats +  :: (Ptr RawTH1K) -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_Scale" c_th1k_scale +  :: (Ptr RawTH1K) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_setAxisColorA" c_th1k_setaxiscolora +  :: (Ptr RawTH1K) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SetAxisRange" c_th1k_setaxisrange +  :: (Ptr RawTH1K) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SetBarOffset" c_th1k_setbaroffset +  :: (Ptr RawTH1K) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SetBarWidth" c_th1k_setbarwidth +  :: (Ptr RawTH1K) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_setBinContent1" c_th1k_setbincontent1 +  :: (Ptr RawTH1K) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_setBinContent2" c_th1k_setbincontent2 +  :: (Ptr RawTH1K) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_setBinContent3" c_th1k_setbincontent3 +  :: (Ptr RawTH1K) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_setBinError1" c_th1k_setbinerror1 +  :: (Ptr RawTH1K) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_setBinError2" c_th1k_setbinerror2 +  :: (Ptr RawTH1K) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_setBinError3" c_th1k_setbinerror3 +  :: (Ptr RawTH1K) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_setBins1" c_th1k_setbins1 +  :: (Ptr RawTH1K) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_setBins2" c_th1k_setbins2 +  :: (Ptr RawTH1K) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_setBins3" c_th1k_setbins3 +  :: (Ptr RawTH1K) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SetBinsLength" c_th1k_setbinslength +  :: (Ptr RawTH1K) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SetBuffer" c_th1k_setbuffer +  :: (Ptr RawTH1K) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SetCellContent" c_th1k_setcellcontent +  :: (Ptr RawTH1K) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SetContent" c_th1k_setcontent +  :: (Ptr RawTH1K) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SetContour" c_th1k_setcontour +  :: (Ptr RawTH1K) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SetContourLevel" c_th1k_setcontourlevel +  :: (Ptr RawTH1K) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SetDirectory" c_th1k_setdirectory +  :: (Ptr RawTH1K) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SetEntries" c_th1k_setentries +  :: (Ptr RawTH1K) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SetError" c_th1k_seterror +  :: (Ptr RawTH1K) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_setLabelColorA" c_th1k_setlabelcolora +  :: (Ptr RawTH1K) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_setLabelSizeA" c_th1k_setlabelsizea +  :: (Ptr RawTH1K) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_setLabelFontA" c_th1k_setlabelfonta +  :: (Ptr RawTH1K) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_setLabelOffsetA" c_th1k_setlabeloffseta +  :: (Ptr RawTH1K) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SetMaximum" c_th1k_setmaximum +  :: (Ptr RawTH1K) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SetMinimum" c_th1k_setminimum +  :: (Ptr RawTH1K) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SetNormFactor" c_th1k_setnormfactor +  :: (Ptr RawTH1K) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SetStats" c_th1k_setstats +  :: (Ptr RawTH1K) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SetOption" c_th1k_setoption +  :: (Ptr RawTH1K) -> CString -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SetXTitle" c_th1k_setxtitle +  :: (Ptr RawTH1K) -> CString -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SetYTitle" c_th1k_setytitle +  :: (Ptr RawTH1K) -> CString -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SetZTitle" c_th1k_setztitle +  :: (Ptr RawTH1K) -> CString -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_ShowBackground" c_th1k_showbackground +  :: (Ptr RawTH1K) -> CInt -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH1K.h TH1K_ShowPeaks" c_th1k_showpeaks +  :: (Ptr RawTH1K) -> CDouble -> CString -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1K.h TH1K_Smooth" c_th1k_smooth +  :: (Ptr RawTH1K) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_Sumw2" c_th1k_sumw2 +  :: (Ptr RawTH1K) -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_Draw" c_th1k_draw +  :: (Ptr RawTH1K) -> CString -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_FindObject" c_th1k_findobject +  :: (Ptr RawTH1K) -> CString -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTH1K.h TH1K_GetName" c_th1k_getname +  :: (Ptr RawTH1K) -> IO CString++foreign import ccall "HROOTHistTH1K.h TH1K_IsA" c_th1k_isa +  :: (Ptr RawTH1K) -> IO (Ptr RawTClass)++foreign import ccall "HROOTHistTH1K.h TH1K_Paint" c_th1k_paint +  :: (Ptr RawTH1K) -> CString -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_printObj" c_th1k_printobj +  :: (Ptr RawTH1K) -> CString -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SaveAs" c_th1k_saveas +  :: (Ptr RawTH1K) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_Write" c_th1k_write +  :: (Ptr RawTH1K) -> CString -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1K.h TH1K_GetLineColor" c_th1k_getlinecolor +  :: (Ptr RawTH1K) -> IO CInt++foreign import ccall "HROOTHistTH1K.h TH1K_GetLineStyle" c_th1k_getlinestyle +  :: (Ptr RawTH1K) -> IO CInt++foreign import ccall "HROOTHistTH1K.h TH1K_GetLineWidth" c_th1k_getlinewidth +  :: (Ptr RawTH1K) -> IO CInt++foreign import ccall "HROOTHistTH1K.h TH1K_ResetAttLine" c_th1k_resetattline +  :: (Ptr RawTH1K) -> CString -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SetLineAttributes" c_th1k_setlineattributes +  :: (Ptr RawTH1K) -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SetLineColor" c_th1k_setlinecolor +  :: (Ptr RawTH1K) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SetLineStyle" c_th1k_setlinestyle +  :: (Ptr RawTH1K) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SetLineWidth" c_th1k_setlinewidth +  :: (Ptr RawTH1K) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SetFillColor" c_th1k_setfillcolor +  :: (Ptr RawTH1K) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SetFillStyle" c_th1k_setfillstyle +  :: (Ptr RawTH1K) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_GetMarkerColor" c_th1k_getmarkercolor +  :: (Ptr RawTH1K) -> IO CInt++foreign import ccall "HROOTHistTH1K.h TH1K_GetMarkerStyle" c_th1k_getmarkerstyle +  :: (Ptr RawTH1K) -> IO CInt++foreign import ccall "HROOTHistTH1K.h TH1K_GetMarkerSize" c_th1k_getmarkersize +  :: (Ptr RawTH1K) -> IO CDouble++foreign import ccall "HROOTHistTH1K.h TH1K_ResetAttMarker" c_th1k_resetattmarker +  :: (Ptr RawTH1K) -> CString -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SetMarkerAttributes" c_th1k_setmarkerattributes +  :: (Ptr RawTH1K) -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SetMarkerColor" c_th1k_setmarkercolor +  :: (Ptr RawTH1K) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SetMarkerStyle" c_th1k_setmarkerstyle +  :: (Ptr RawTH1K) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_SetMarkerSize" c_th1k_setmarkersize +  :: (Ptr RawTH1K) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1K.h TH1K_delete" c_th1k_delete +  :: (Ptr RawTH1K) -> IO ()+
+ src/HROOT/Hist/TH1K/Implementation.hs view
@@ -0,0 +1,408 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, +             OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH1K.Implementation where+++import FFICXX.Runtime.Cast++import HROOT.Hist.TH1K.RawType+import HROOT.Hist.TH1K.FFI+import HROOT.Hist.TH1K.Interface+import HROOT.Hist.TH1K.Cast+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TDirectory.Cast+import HROOT.Core.TDirectory.Interface+import HROOT.Hist.TF1.RawType+import HROOT.Hist.TF1.Cast+import HROOT.Hist.TF1.Interface+import HROOT.Core.TArrayD.RawType+import HROOT.Core.TArrayD.Cast+import HROOT.Core.TArrayD.Interface+import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.Cast+import HROOT.Hist.TAxis.Interface+import HROOT.Core.TClass.RawType+import HROOT.Core.TClass.Cast+import HROOT.Core.TClass.Interface+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH1.Cast+import HROOT.Hist.TH1.Interface+import HROOT.Core.TArrayF.RawType+import HROOT.Core.TArrayF.Cast+import HROOT.Core.TArrayF.Interface+import HROOT.Core.TObject.RawType+import HROOT.Core.TObject.Cast+import HROOT.Core.TObject.Interface+import HROOT.Core.TAttLine.RawType+import HROOT.Core.TAttLine.Cast+import HROOT.Core.TAttLine.Interface+import HROOT.Core.TAttFill.RawType+import HROOT.Core.TAttFill.Cast+import HROOT.Core.TAttFill.Interface+import HROOT.Core.TAttMarker.RawType+import HROOT.Core.TAttMarker.Cast+import HROOT.Core.TAttMarker.Interface+import HROOT.Core.Deletable.RawType+import HROOT.Core.Deletable.Cast+import HROOT.Core.Deletable.Interface+import HROOT.Core.TArray.RawType+import HROOT.Core.TArray.Cast+import HROOT.Core.TArray.Interface++import Data.Word+import Foreign.C+import Foreign.Ptr +import Foreign.ForeignPtr++import System.IO.Unsafe+++instance ITH1K TH1K where+instance ITH1 TH1K where+  add = xform2 c_th1k_add+  addBinContent = xform2 c_th1k_addbincontent+  chi2Test = xform3 c_th1k_chi2test+  computeIntegral = xform0 c_th1k_computeintegral+  directoryAutoAdd = xform1 c_th1k_directoryautoadd+  divide = xform5 c_th1k_divide+  drawCopyTH1 = xform1 c_th1k_drawcopyth1+  drawNormalized = xform2 c_th1k_drawnormalized+  drawPanelTH1 = xform0 c_th1k_drawpanelth1+  bufferEmpty = xform1 c_th1k_bufferempty+  evalF = xform2 c_th1k_evalf+  fFT = xform2 c_th1k_fft+  fill1 = xform1 c_th1k_fill1+  fill1w = xform2 c_th1k_fill1w+  fillN1 = xform4 c_th1k_filln1+  fillRandom = xform2 c_th1k_fillrandom+  findBin = xform3 c_th1k_findbin+  findFixBin = xform3 c_th1k_findfixbin+  findFirstBinAbove = xform2 c_th1k_findfirstbinabove+  findLastBinAbove = xform2 c_th1k_findlastbinabove+  fitPanelTH1 = xform0 c_th1k_fitpanelth1+  getNdivisionA = xform1 c_th1k_getndivisiona+  getAxisColorA = xform1 c_th1k_getaxiscolora+  getLabelColorA = xform1 c_th1k_getlabelcolora+  getLabelFontA = xform1 c_th1k_getlabelfonta+  getLabelOffsetA = xform1 c_th1k_getlabeloffseta+  getLabelSizeA = xform1 c_th1k_getlabelsizea+  getTitleFontA = xform1 c_th1k_gettitlefonta+  getTitleOffsetA = xform1 c_th1k_gettitleoffseta+  getTitleSizeA = xform1 c_th1k_gettitlesizea+  getTickLengthA = xform1 c_th1k_getticklengtha+  getBarOffset = xform0 c_th1k_getbaroffset+  getBarWidth = xform0 c_th1k_getbarwidth+  getContour = xform1 c_th1k_getcontour+  getContourLevel = xform1 c_th1k_getcontourlevel+  getContourLevelPad = xform1 c_th1k_getcontourlevelpad+  getBin = xform3 c_th1k_getbin+  getBinCenter = xform1 c_th1k_getbincenter+  getBinContent1 = xform1 c_th1k_getbincontent1+  getBinContent2 = xform2 c_th1k_getbincontent2+  getBinContent3 = xform3 c_th1k_getbincontent3+  getBinError1 = xform1 c_th1k_getbinerror1+  getBinError2 = xform2 c_th1k_getbinerror2+  getBinError3 = xform3 c_th1k_getbinerror3+  getBinLowEdge = xform1 c_th1k_getbinlowedge+  getBinWidth = xform1 c_th1k_getbinwidth+  getCellContent = xform2 c_th1k_getcellcontent+  getCellError = xform2 c_th1k_getcellerror+  getEntries = xform0 c_th1k_getentries+  getEffectiveEntries = xform0 c_th1k_geteffectiveentries+  getFunction = xform1 c_th1k_getfunction+  getDimension = xform0 c_th1k_getdimension+  getKurtosis = xform1 c_th1k_getkurtosis+  getLowEdge = xform1 c_th1k_getlowedge+  getMaximumTH1 = xform1 c_th1k_getmaximumth1+  getMaximumBin = xform0 c_th1k_getmaximumbin+  getMaximumStored = xform0 c_th1k_getmaximumstored+  getMinimumTH1 = xform1 c_th1k_getminimumth1+  getMinimumBin = xform0 c_th1k_getminimumbin+  getMinimumStored = xform0 c_th1k_getminimumstored+  getMean = xform1 c_th1k_getmean+  getMeanError = xform1 c_th1k_getmeanerror+  getNbinsX = xform0 c_th1k_getnbinsx+  getNbinsY = xform0 c_th1k_getnbinsy+  getNbinsZ = xform0 c_th1k_getnbinsz+  getQuantilesTH1 = xform3 c_th1k_getquantilesth1+  getRandom = xform0 c_th1k_getrandom+  getStats = xform1 c_th1k_getstats+  getSumOfWeights = xform0 c_th1k_getsumofweights+  getSumw2 = xform0 c_th1k_getsumw2+  getSumw2N = xform0 c_th1k_getsumw2n+  getRMS = xform1 c_th1k_getrms+  getRMSError = xform1 c_th1k_getrmserror+  getSkewness = xform1 c_th1k_getskewness+  integral1 = xform3 c_th1k_integral1+  interpolate1 = xform1 c_th1k_interpolate1+  interpolate2 = xform2 c_th1k_interpolate2+  interpolate3 = xform3 c_th1k_interpolate3+  kolmogorovTest = xform2 c_th1k_kolmogorovtest+  labelsDeflate = xform1 c_th1k_labelsdeflate+  labelsInflate = xform1 c_th1k_labelsinflate+  labelsOption = xform2 c_th1k_labelsoption+  multiflyF = xform2 c_th1k_multiflyf+  multiply = xform5 c_th1k_multiply+  putStats = xform1 c_th1k_putstats+  rebin = xform3 c_th1k_rebin+  rebinAxis = xform2 c_th1k_rebinaxis+  rebuild = xform1 c_th1k_rebuild+  recursiveRemove = xform1 c_th1k_recursiveremove+  reset = xform1 c_th1k_reset+  resetStats = xform0 c_th1k_resetstats+  scale = xform2 c_th1k_scale+  setAxisColorA = xform2 c_th1k_setaxiscolora+  setAxisRange = xform3 c_th1k_setaxisrange+  setBarOffset = xform1 c_th1k_setbaroffset+  setBarWidth = xform1 c_th1k_setbarwidth+  setBinContent1 = xform2 c_th1k_setbincontent1+  setBinContent2 = xform3 c_th1k_setbincontent2+  setBinContent3 = xform4 c_th1k_setbincontent3+  setBinError1 = xform2 c_th1k_setbinerror1+  setBinError2 = xform3 c_th1k_setbinerror2+  setBinError3 = xform4 c_th1k_setbinerror3+  setBins1 = xform2 c_th1k_setbins1+  setBins2 = xform4 c_th1k_setbins2+  setBins3 = xform6 c_th1k_setbins3+  setBinsLength = xform1 c_th1k_setbinslength+  setBuffer = xform2 c_th1k_setbuffer+  setCellContent = xform3 c_th1k_setcellcontent+  setContent = xform1 c_th1k_setcontent+  setContour = xform2 c_th1k_setcontour+  setContourLevel = xform2 c_th1k_setcontourlevel+  setDirectory = xform1 c_th1k_setdirectory+  setEntries = xform1 c_th1k_setentries+  setError = xform1 c_th1k_seterror+  setLabelColorA = xform2 c_th1k_setlabelcolora+  setLabelSizeA = xform2 c_th1k_setlabelsizea+  setLabelFontA = xform2 c_th1k_setlabelfonta+  setLabelOffsetA = xform2 c_th1k_setlabeloffseta+  setMaximum = xform1 c_th1k_setmaximum+  setMinimum = xform1 c_th1k_setminimum+  setNormFactor = xform1 c_th1k_setnormfactor+  setStats = xform1 c_th1k_setstats+  setOption = xform1 c_th1k_setoption+  setXTitle = xform1 c_th1k_setxtitle+  setYTitle = xform1 c_th1k_setytitle+  setZTitle = xform1 c_th1k_setztitle+  showBackground = xform2 c_th1k_showbackground+  showPeaks = xform3 c_th1k_showpeaks+  smooth = xform2 c_th1k_smooth+  sumw2 = xform0 c_th1k_sumw2+instance ITArrayF TH1K where+instance ITObject TH1K where+  draw = xform1 c_th1k_draw+  findObject = xform1 c_th1k_findobject+  getName = xform0 c_th1k_getname+  isA = xform0 c_th1k_isa+  paint = xform1 c_th1k_paint+  printObj = xform1 c_th1k_printobj+  saveAs = xform2 c_th1k_saveas+  write = xform3 c_th1k_write+instance ITAttLine TH1K where+  getLineColor = xform0 c_th1k_getlinecolor+  getLineStyle = xform0 c_th1k_getlinestyle+  getLineWidth = xform0 c_th1k_getlinewidth+  resetAttLine = xform1 c_th1k_resetattline+  setLineAttributes = xform0 c_th1k_setlineattributes+  setLineColor = xform1 c_th1k_setlinecolor+  setLineStyle = xform1 c_th1k_setlinestyle+  setLineWidth = xform1 c_th1k_setlinewidth+instance ITAttFill TH1K where+  setFillColor = xform1 c_th1k_setfillcolor+  setFillStyle = xform1 c_th1k_setfillstyle+instance ITAttMarker TH1K where+  getMarkerColor = xform0 c_th1k_getmarkercolor+  getMarkerStyle = xform0 c_th1k_getmarkerstyle+  getMarkerSize = xform0 c_th1k_getmarkersize+  resetAttMarker = xform1 c_th1k_resetattmarker+  setMarkerAttributes = xform0 c_th1k_setmarkerattributes+  setMarkerColor = xform1 c_th1k_setmarkercolor+  setMarkerStyle = xform1 c_th1k_setmarkerstyle+  setMarkerSize = xform1 c_th1k_setmarkersize+instance IDeletable TH1K where+  delete = xform0 c_th1k_delete+instance ITArray TH1K where++instance ITH1K (Exist TH1K) where++instance ITH1 (Exist TH1K) where+  add (ETH1K x) = add x+  addBinContent (ETH1K x) = addBinContent x+  chi2Test (ETH1K x) = chi2Test x+  computeIntegral (ETH1K x) = computeIntegral x+  directoryAutoAdd (ETH1K x) = directoryAutoAdd x+  divide (ETH1K x) = divide x+  drawCopyTH1 (ETH1K x) a1 = return . ETH1K =<< drawCopyTH1 x a1+  drawNormalized (ETH1K x) = drawNormalized x+  drawPanelTH1 (ETH1K x) = drawPanelTH1 x+  bufferEmpty (ETH1K x) = bufferEmpty x+  evalF (ETH1K x) = evalF x+  fFT (ETH1K x) = fFT x+  fill1 (ETH1K x) = fill1 x+  fill1w (ETH1K x) = fill1w x+  fillN1 (ETH1K x) = fillN1 x+  fillRandom (ETH1K x) = fillRandom x+  findBin (ETH1K x) = findBin x+  findFixBin (ETH1K x) = findFixBin x+  findFirstBinAbove (ETH1K x) = findFirstBinAbove x+  findLastBinAbove (ETH1K x) = findLastBinAbove x+  fitPanelTH1 (ETH1K x) = fitPanelTH1 x+  getNdivisionA (ETH1K x) = getNdivisionA x+  getAxisColorA (ETH1K x) = getAxisColorA x+  getLabelColorA (ETH1K x) = getLabelColorA x+  getLabelFontA (ETH1K x) = getLabelFontA x+  getLabelOffsetA (ETH1K x) = getLabelOffsetA x+  getLabelSizeA (ETH1K x) = getLabelSizeA x+  getTitleFontA (ETH1K x) = getTitleFontA x+  getTitleOffsetA (ETH1K x) = getTitleOffsetA x+  getTitleSizeA (ETH1K x) = getTitleSizeA x+  getTickLengthA (ETH1K x) = getTickLengthA x+  getBarOffset (ETH1K x) = getBarOffset x+  getBarWidth (ETH1K x) = getBarWidth x+  getContour (ETH1K x) = getContour x+  getContourLevel (ETH1K x) = getContourLevel x+  getContourLevelPad (ETH1K x) = getContourLevelPad x+  getBin (ETH1K x) = getBin x+  getBinCenter (ETH1K x) = getBinCenter x+  getBinContent1 (ETH1K x) = getBinContent1 x+  getBinContent2 (ETH1K x) = getBinContent2 x+  getBinContent3 (ETH1K x) = getBinContent3 x+  getBinError1 (ETH1K x) = getBinError1 x+  getBinError2 (ETH1K x) = getBinError2 x+  getBinError3 (ETH1K x) = getBinError3 x+  getBinLowEdge (ETH1K x) = getBinLowEdge x+  getBinWidth (ETH1K x) = getBinWidth x+  getCellContent (ETH1K x) = getCellContent x+  getCellError (ETH1K x) = getCellError x+  getEntries (ETH1K x) = getEntries x+  getEffectiveEntries (ETH1K x) = getEffectiveEntries x+  getFunction (ETH1K x) = getFunction x+  getDimension (ETH1K x) = getDimension x+  getKurtosis (ETH1K x) = getKurtosis x+  getLowEdge (ETH1K x) = getLowEdge x+  getMaximumTH1 (ETH1K x) = getMaximumTH1 x+  getMaximumBin (ETH1K x) = getMaximumBin x+  getMaximumStored (ETH1K x) = getMaximumStored x+  getMinimumTH1 (ETH1K x) = getMinimumTH1 x+  getMinimumBin (ETH1K x) = getMinimumBin x+  getMinimumStored (ETH1K x) = getMinimumStored x+  getMean (ETH1K x) = getMean x+  getMeanError (ETH1K x) = getMeanError x+  getNbinsX (ETH1K x) = getNbinsX x+  getNbinsY (ETH1K x) = getNbinsY x+  getNbinsZ (ETH1K x) = getNbinsZ x+  getQuantilesTH1 (ETH1K x) = getQuantilesTH1 x+  getRandom (ETH1K x) = getRandom x+  getStats (ETH1K x) = getStats x+  getSumOfWeights (ETH1K x) = getSumOfWeights x+  getSumw2 (ETH1K x) = getSumw2 x+  getSumw2N (ETH1K x) = getSumw2N x+  getRMS (ETH1K x) = getRMS x+  getRMSError (ETH1K x) = getRMSError x+  getSkewness (ETH1K x) = getSkewness x+  integral1 (ETH1K x) = integral1 x+  interpolate1 (ETH1K x) = interpolate1 x+  interpolate2 (ETH1K x) = interpolate2 x+  interpolate3 (ETH1K x) = interpolate3 x+  kolmogorovTest (ETH1K x) = kolmogorovTest x+  labelsDeflate (ETH1K x) = labelsDeflate x+  labelsInflate (ETH1K x) = labelsInflate x+  labelsOption (ETH1K x) = labelsOption x+  multiflyF (ETH1K x) = multiflyF x+  multiply (ETH1K x) = multiply x+  putStats (ETH1K x) = putStats x+  rebin (ETH1K x) = rebin x+  rebinAxis (ETH1K x) = rebinAxis x+  rebuild (ETH1K x) = rebuild x+  recursiveRemove (ETH1K x) = recursiveRemove x+  reset (ETH1K x) = reset x+  resetStats (ETH1K x) = resetStats x+  scale (ETH1K x) = scale x+  setAxisColorA (ETH1K x) = setAxisColorA x+  setAxisRange (ETH1K x) = setAxisRange x+  setBarOffset (ETH1K x) = setBarOffset x+  setBarWidth (ETH1K x) = setBarWidth x+  setBinContent1 (ETH1K x) = setBinContent1 x+  setBinContent2 (ETH1K x) = setBinContent2 x+  setBinContent3 (ETH1K x) = setBinContent3 x+  setBinError1 (ETH1K x) = setBinError1 x+  setBinError2 (ETH1K x) = setBinError2 x+  setBinError3 (ETH1K x) = setBinError3 x+  setBins1 (ETH1K x) = setBins1 x+  setBins2 (ETH1K x) = setBins2 x+  setBins3 (ETH1K x) = setBins3 x+  setBinsLength (ETH1K x) = setBinsLength x+  setBuffer (ETH1K x) = setBuffer x+  setCellContent (ETH1K x) = setCellContent x+  setContent (ETH1K x) = setContent x+  setContour (ETH1K x) = setContour x+  setContourLevel (ETH1K x) = setContourLevel x+  setDirectory (ETH1K x) = setDirectory x+  setEntries (ETH1K x) = setEntries x+  setError (ETH1K x) = setError x+  setLabelColorA (ETH1K x) = setLabelColorA x+  setLabelSizeA (ETH1K x) = setLabelSizeA x+  setLabelFontA (ETH1K x) = setLabelFontA x+  setLabelOffsetA (ETH1K x) = setLabelOffsetA x+  setMaximum (ETH1K x) = setMaximum x+  setMinimum (ETH1K x) = setMinimum x+  setNormFactor (ETH1K x) = setNormFactor x+  setStats (ETH1K x) = setStats x+  setOption (ETH1K x) = setOption x+  setXTitle (ETH1K x) = setXTitle x+  setYTitle (ETH1K x) = setYTitle x+  setZTitle (ETH1K x) = setZTitle x+  showBackground (ETH1K x) = showBackground x+  showPeaks (ETH1K x) = showPeaks x+  smooth (ETH1K x) = smooth x+  sumw2 (ETH1K x) = sumw2 x+instance ITArrayF (Exist TH1K) where++instance ITObject (Exist TH1K) where+  draw (ETH1K x) = draw x+  findObject (ETH1K x) = findObject x+  getName (ETH1K x) = getName x+  isA (ETH1K x) = isA x+  paint (ETH1K x) = paint x+  printObj (ETH1K x) = printObj x+  saveAs (ETH1K x) = saveAs x+  write (ETH1K x) = write x+instance ITAttLine (Exist TH1K) where+  getLineColor (ETH1K x) = getLineColor x+  getLineStyle (ETH1K x) = getLineStyle x+  getLineWidth (ETH1K x) = getLineWidth x+  resetAttLine (ETH1K x) = resetAttLine x+  setLineAttributes (ETH1K x) = setLineAttributes x+  setLineColor (ETH1K x) = setLineColor x+  setLineStyle (ETH1K x) = setLineStyle x+  setLineWidth (ETH1K x) = setLineWidth x+instance ITAttFill (Exist TH1K) where+  setFillColor (ETH1K x) = setFillColor x+  setFillStyle (ETH1K x) = setFillStyle x+instance ITAttMarker (Exist TH1K) where+  getMarkerColor (ETH1K x) = getMarkerColor x+  getMarkerStyle (ETH1K x) = getMarkerStyle x+  getMarkerSize (ETH1K x) = getMarkerSize x+  resetAttMarker (ETH1K x) = resetAttMarker x+  setMarkerAttributes (ETH1K x) = setMarkerAttributes x+  setMarkerColor (ETH1K x) = setMarkerColor x+  setMarkerStyle (ETH1K x) = setMarkerStyle x+  setMarkerSize (ETH1K x) = setMarkerSize x+instance IDeletable (Exist TH1K) where+  delete (ETH1K x) = delete x+instance ITArray (Exist TH1K) where+++++++++instance FPtr (Exist TH1K) where+  type Raw (Exist TH1K) = RawTH1K+  get_fptr (ETH1K obj) = castForeignPtr (get_fptr obj)+  cast_fptr_to_obj fptr = ETH1K (cast_fptr_to_obj (fptr :: ForeignPtr RawTH1K) :: TH1K)
+ src/HROOT/Hist/TH1K/Interface.hs view
@@ -0,0 +1,37 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++-- module HROOT.Class.Interface where++module HROOT.Hist.TH1K.Interface where+++import Data.Word+import Foreign.C+import Foreign.Ptr+import Foreign.ForeignPtr+import FFICXX.Runtime.Cast++import HROOT.Hist.TH1K.RawType++import HROOT.Hist.TH1.Interface+import HROOT.Core.TArrayF.Interface+---- ============ ----++++class (ITH1 a,ITArrayF a) => ITH1K a where++instance Existable TH1K where+  data Exist TH1K = forall a. (FPtr a, ITH1K a) => ETH1K a++upcastTH1K :: (FPtr a, ITH1K a) => a -> TH1K+upcastTH1K h = let fh = get_fptr h+                   fh2 :: ForeignPtr RawTH1K = castForeignPtr fh+               in cast_fptr_to_obj fh2++downcastTH1K :: (FPtr a, ITH1K a) => TH1K -> a +downcastTH1K h = let fh = get_fptr h+                     fh2 = castForeignPtr fh+                 in cast_fptr_to_obj fh2
+ src/HROOT/Hist/TH1K/RawType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++module HROOT.Hist.TH1K.RawType where+++import Foreign.ForeignPtr+import FFICXX.Runtime.Cast  ++data RawTH1K+newtype TH1K = TH1K (ForeignPtr RawTH1K) deriving (Eq, Ord, Show)+instance FPtr TH1K where+   type Raw TH1K = RawTH1K+   get_fptr (TH1K fptr) = fptr+   cast_fptr_to_obj = TH1K
+ src/HROOT/Hist/TH1S.hs view
@@ -0,0 +1,15 @@+module HROOT.Hist.TH1S+  (+    TH1S(..)+  , ITH1S+  , upcastTH1S+  , downcastTH1S++ +  ) where++import HROOT.Hist.TH1S.RawType+import HROOT.Hist.TH1S.Interface+import HROOT.Hist.TH1S.Implementation++
+ src/HROOT/Hist/TH1S/Cast.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeFamilies, +             MultiParamTypeClasses, OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH1S.Cast where+++import Foreign.Ptr+import Foreign.ForeignPtr (castForeignPtr, newForeignPtr_)+import Foreign.ForeignPtr.Unsafe+import FFICXX.Runtime.Cast+import System.IO.Unsafe++import HROOT.Hist.TH1S.RawType+import HROOT.Hist.TH1S.Interface++instance (ITH1S a, FPtr a) => Castable a (Ptr RawTH1S) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ ++instance Castable TH1S (Ptr RawTH1S) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+ src/HROOT/Hist/TH1S/FFI.hsc view
@@ -0,0 +1,496 @@+{-# LANGUAGE ForeignFunctionInterface #-}++-- module HROOT.Class.FFI where++module HROOT.Hist.TH1S.FFI where+++import Foreign.C            +import Foreign.Ptr++-- import HROOT.Class.Interface++-- #include ""++import HROOT.Hist.TH1S.RawType+import HROOT.Hist.TH1.RawType+import HROOT.Core.TDirectory.RawType+import HROOT.Hist.TF1.RawType+import HROOT.Core.TArrayD.RawType+import HROOT.Hist.TAxis.RawType+import HROOT.Core.TObject.RawType+import HROOT.Core.TClass.RawType++#include "HROOTHistTH1S.h"++foreign import ccall "HROOTHistTH1S.h TH1S_Add" c_th1s_add +  :: (Ptr RawTH1S) -> (Ptr RawTH1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_AddBinContent" c_th1s_addbincontent +  :: (Ptr RawTH1S) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_Chi2Test" c_th1s_chi2test +  :: (Ptr RawTH1S) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_ComputeIntegral" c_th1s_computeintegral +  :: (Ptr RawTH1S) -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_DirectoryAutoAdd" c_th1s_directoryautoadd +  :: (Ptr RawTH1S) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_Divide" c_th1s_divide +  :: (Ptr RawTH1S) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_drawCopyTH1" c_th1s_drawcopyth1 +  :: (Ptr RawTH1S) -> CString -> IO (Ptr RawTH1S)++foreign import ccall "HROOTHistTH1S.h TH1S_DrawNormalized" c_th1s_drawnormalized +  :: (Ptr RawTH1S) -> CString -> CDouble -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH1S.h TH1S_drawPanelTH1" c_th1s_drawpanelth1 +  :: (Ptr RawTH1S) -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_BufferEmpty" c_th1s_bufferempty +  :: (Ptr RawTH1S) -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1S.h TH1S_evalF" c_th1s_evalf +  :: (Ptr RawTH1S) -> (Ptr RawTF1) -> CString -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_FFT" c_th1s_fft +  :: (Ptr RawTH1S) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH1S.h TH1S_fill1" c_th1s_fill1 +  :: (Ptr RawTH1S) -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1S.h TH1S_fill1w" c_th1s_fill1w +  :: (Ptr RawTH1S) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1S.h TH1S_fillN1" c_th1s_filln1 +  :: (Ptr RawTH1S) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_FillRandom" c_th1s_fillrandom +  :: (Ptr RawTH1S) -> (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_FindBin" c_th1s_findbin +  :: (Ptr RawTH1S) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1S.h TH1S_FindFixBin" c_th1s_findfixbin +  :: (Ptr RawTH1S) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1S.h TH1S_FindFirstBinAbove" c_th1s_findfirstbinabove +  :: (Ptr RawTH1S) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1S.h TH1S_FindLastBinAbove" c_th1s_findlastbinabove +  :: (Ptr RawTH1S) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1S.h TH1S_FitPanelTH1" c_th1s_fitpanelth1 +  :: (Ptr RawTH1S) -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_getNdivisionA" c_th1s_getndivisiona +  :: (Ptr RawTH1S) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1S.h TH1S_getAxisColorA" c_th1s_getaxiscolora +  :: (Ptr RawTH1S) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1S.h TH1S_getLabelColorA" c_th1s_getlabelcolora +  :: (Ptr RawTH1S) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1S.h TH1S_getLabelFontA" c_th1s_getlabelfonta +  :: (Ptr RawTH1S) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1S.h TH1S_getLabelOffsetA" c_th1s_getlabeloffseta +  :: (Ptr RawTH1S) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_getLabelSizeA" c_th1s_getlabelsizea +  :: (Ptr RawTH1S) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_getTitleFontA" c_th1s_gettitlefonta +  :: (Ptr RawTH1S) -> CString -> IO CInt++foreign import ccall "HROOTHistTH1S.h TH1S_getTitleOffsetA" c_th1s_gettitleoffseta +  :: (Ptr RawTH1S) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_getTitleSizeA" c_th1s_gettitlesizea +  :: (Ptr RawTH1S) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_getTickLengthA" c_th1s_getticklengtha +  :: (Ptr RawTH1S) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_GetBarOffset" c_th1s_getbaroffset +  :: (Ptr RawTH1S) -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_GetBarWidth" c_th1s_getbarwidth +  :: (Ptr RawTH1S) -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_GetContour" c_th1s_getcontour +  :: (Ptr RawTH1S) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH1S.h TH1S_GetContourLevel" c_th1s_getcontourlevel +  :: (Ptr RawTH1S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_GetContourLevelPad" c_th1s_getcontourlevelpad +  :: (Ptr RawTH1S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_GetBin" c_th1s_getbin +  :: (Ptr RawTH1S) -> CInt -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1S.h TH1S_GetBinCenter" c_th1s_getbincenter +  :: (Ptr RawTH1S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_GetBinContent1" c_th1s_getbincontent1 +  :: (Ptr RawTH1S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_GetBinContent2" c_th1s_getbincontent2 +  :: (Ptr RawTH1S) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_GetBinContent3" c_th1s_getbincontent3 +  :: (Ptr RawTH1S) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_GetBinError1" c_th1s_getbinerror1 +  :: (Ptr RawTH1S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_GetBinError2" c_th1s_getbinerror2 +  :: (Ptr RawTH1S) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_GetBinError3" c_th1s_getbinerror3 +  :: (Ptr RawTH1S) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_GetBinLowEdge" c_th1s_getbinlowedge +  :: (Ptr RawTH1S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_GetBinWidth" c_th1s_getbinwidth +  :: (Ptr RawTH1S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_GetCellContent" c_th1s_getcellcontent +  :: (Ptr RawTH1S) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_GetCellError" c_th1s_getcellerror +  :: (Ptr RawTH1S) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_GetEntries" c_th1s_getentries +  :: (Ptr RawTH1S) -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_GetEffectiveEntries" c_th1s_geteffectiveentries +  :: (Ptr RawTH1S) -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_GetFunction" c_th1s_getfunction +  :: (Ptr RawTH1S) -> CString -> IO (Ptr RawTF1)++foreign import ccall "HROOTHistTH1S.h TH1S_GetDimension" c_th1s_getdimension +  :: (Ptr RawTH1S) -> IO CInt++foreign import ccall "HROOTHistTH1S.h TH1S_GetKurtosis" c_th1s_getkurtosis +  :: (Ptr RawTH1S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_GetLowEdge" c_th1s_getlowedge +  :: (Ptr RawTH1S) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_getMaximumTH1" c_th1s_getmaximumth1 +  :: (Ptr RawTH1S) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_GetMaximumBin" c_th1s_getmaximumbin +  :: (Ptr RawTH1S) -> IO CInt++foreign import ccall "HROOTHistTH1S.h TH1S_GetMaximumStored" c_th1s_getmaximumstored +  :: (Ptr RawTH1S) -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_getMinimumTH1" c_th1s_getminimumth1 +  :: (Ptr RawTH1S) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_GetMinimumBin" c_th1s_getminimumbin +  :: (Ptr RawTH1S) -> IO CInt++foreign import ccall "HROOTHistTH1S.h TH1S_GetMinimumStored" c_th1s_getminimumstored +  :: (Ptr RawTH1S) -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_GetMean" c_th1s_getmean +  :: (Ptr RawTH1S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_GetMeanError" c_th1s_getmeanerror +  :: (Ptr RawTH1S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_GetNbinsX" c_th1s_getnbinsx +  :: (Ptr RawTH1S) -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_GetNbinsY" c_th1s_getnbinsy +  :: (Ptr RawTH1S) -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_GetNbinsZ" c_th1s_getnbinsz +  :: (Ptr RawTH1S) -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_getQuantilesTH1" c_th1s_getquantilesth1 +  :: (Ptr RawTH1S) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH1S.h TH1S_GetRandom" c_th1s_getrandom +  :: (Ptr RawTH1S) -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_GetStats" c_th1s_getstats +  :: (Ptr RawTH1S) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_GetSumOfWeights" c_th1s_getsumofweights +  :: (Ptr RawTH1S) -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_GetSumw2" c_th1s_getsumw2 +  :: (Ptr RawTH1S) -> IO (Ptr RawTArrayD)++foreign import ccall "HROOTHistTH1S.h TH1S_GetSumw2N" c_th1s_getsumw2n +  :: (Ptr RawTH1S) -> IO CInt++foreign import ccall "HROOTHistTH1S.h TH1S_GetRMS" c_th1s_getrms +  :: (Ptr RawTH1S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_GetRMSError" c_th1s_getrmserror +  :: (Ptr RawTH1S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_GetSkewness" c_th1s_getskewness +  :: (Ptr RawTH1S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_integral1" c_th1s_integral1 +  :: (Ptr RawTH1S) -> CInt -> CInt -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_interpolate1" c_th1s_interpolate1 +  :: (Ptr RawTH1S) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_interpolate2" c_th1s_interpolate2 +  :: (Ptr RawTH1S) -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_interpolate3" c_th1s_interpolate3 +  :: (Ptr RawTH1S) -> CDouble -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_KolmogorovTest" c_th1s_kolmogorovtest +  :: (Ptr RawTH1S) -> (Ptr RawTH1) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_LabelsDeflate" c_th1s_labelsdeflate +  :: (Ptr RawTH1S) -> CString -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_LabelsInflate" c_th1s_labelsinflate +  :: (Ptr RawTH1S) -> CString -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_LabelsOption" c_th1s_labelsoption +  :: (Ptr RawTH1S) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_multiflyF" c_th1s_multiflyf +  :: (Ptr RawTH1S) -> (Ptr RawTF1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_Multiply" c_th1s_multiply +  :: (Ptr RawTH1S) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_PutStats" c_th1s_putstats +  :: (Ptr RawTH1S) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_Rebin" c_th1s_rebin +  :: (Ptr RawTH1S) -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH1S.h TH1S_RebinAxis" c_th1s_rebinaxis +  :: (Ptr RawTH1S) -> CDouble -> (Ptr RawTAxis) -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_Rebuild" c_th1s_rebuild +  :: (Ptr RawTH1S) -> CString -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_RecursiveRemove" c_th1s_recursiveremove +  :: (Ptr RawTH1S) -> (Ptr RawTObject) -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_Reset" c_th1s_reset +  :: (Ptr RawTH1S) -> CString -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_ResetStats" c_th1s_resetstats +  :: (Ptr RawTH1S) -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_Scale" c_th1s_scale +  :: (Ptr RawTH1S) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_setAxisColorA" c_th1s_setaxiscolora +  :: (Ptr RawTH1S) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SetAxisRange" c_th1s_setaxisrange +  :: (Ptr RawTH1S) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SetBarOffset" c_th1s_setbaroffset +  :: (Ptr RawTH1S) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SetBarWidth" c_th1s_setbarwidth +  :: (Ptr RawTH1S) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_setBinContent1" c_th1s_setbincontent1 +  :: (Ptr RawTH1S) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_setBinContent2" c_th1s_setbincontent2 +  :: (Ptr RawTH1S) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_setBinContent3" c_th1s_setbincontent3 +  :: (Ptr RawTH1S) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_setBinError1" c_th1s_setbinerror1 +  :: (Ptr RawTH1S) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_setBinError2" c_th1s_setbinerror2 +  :: (Ptr RawTH1S) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_setBinError3" c_th1s_setbinerror3 +  :: (Ptr RawTH1S) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_setBins1" c_th1s_setbins1 +  :: (Ptr RawTH1S) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_setBins2" c_th1s_setbins2 +  :: (Ptr RawTH1S) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_setBins3" c_th1s_setbins3 +  :: (Ptr RawTH1S) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SetBinsLength" c_th1s_setbinslength +  :: (Ptr RawTH1S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SetBuffer" c_th1s_setbuffer +  :: (Ptr RawTH1S) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SetCellContent" c_th1s_setcellcontent +  :: (Ptr RawTH1S) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SetContent" c_th1s_setcontent +  :: (Ptr RawTH1S) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SetContour" c_th1s_setcontour +  :: (Ptr RawTH1S) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SetContourLevel" c_th1s_setcontourlevel +  :: (Ptr RawTH1S) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SetDirectory" c_th1s_setdirectory +  :: (Ptr RawTH1S) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SetEntries" c_th1s_setentries +  :: (Ptr RawTH1S) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SetError" c_th1s_seterror +  :: (Ptr RawTH1S) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_setLabelColorA" c_th1s_setlabelcolora +  :: (Ptr RawTH1S) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_setLabelSizeA" c_th1s_setlabelsizea +  :: (Ptr RawTH1S) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_setLabelFontA" c_th1s_setlabelfonta +  :: (Ptr RawTH1S) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_setLabelOffsetA" c_th1s_setlabeloffseta +  :: (Ptr RawTH1S) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SetMaximum" c_th1s_setmaximum +  :: (Ptr RawTH1S) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SetMinimum" c_th1s_setminimum +  :: (Ptr RawTH1S) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SetNormFactor" c_th1s_setnormfactor +  :: (Ptr RawTH1S) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SetStats" c_th1s_setstats +  :: (Ptr RawTH1S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SetOption" c_th1s_setoption +  :: (Ptr RawTH1S) -> CString -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SetXTitle" c_th1s_setxtitle +  :: (Ptr RawTH1S) -> CString -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SetYTitle" c_th1s_setytitle +  :: (Ptr RawTH1S) -> CString -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SetZTitle" c_th1s_setztitle +  :: (Ptr RawTH1S) -> CString -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_ShowBackground" c_th1s_showbackground +  :: (Ptr RawTH1S) -> CInt -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH1S.h TH1S_ShowPeaks" c_th1s_showpeaks +  :: (Ptr RawTH1S) -> CDouble -> CString -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH1S.h TH1S_Smooth" c_th1s_smooth +  :: (Ptr RawTH1S) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_Sumw2" c_th1s_sumw2 +  :: (Ptr RawTH1S) -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_Draw" c_th1s_draw +  :: (Ptr RawTH1S) -> CString -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_FindObject" c_th1s_findobject +  :: (Ptr RawTH1S) -> CString -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTH1S.h TH1S_GetName" c_th1s_getname +  :: (Ptr RawTH1S) -> IO CString++foreign import ccall "HROOTHistTH1S.h TH1S_IsA" c_th1s_isa +  :: (Ptr RawTH1S) -> IO (Ptr RawTClass)++foreign import ccall "HROOTHistTH1S.h TH1S_Paint" c_th1s_paint +  :: (Ptr RawTH1S) -> CString -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_printObj" c_th1s_printobj +  :: (Ptr RawTH1S) -> CString -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SaveAs" c_th1s_saveas +  :: (Ptr RawTH1S) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_Write" c_th1s_write +  :: (Ptr RawTH1S) -> CString -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH1S.h TH1S_GetLineColor" c_th1s_getlinecolor +  :: (Ptr RawTH1S) -> IO CInt++foreign import ccall "HROOTHistTH1S.h TH1S_GetLineStyle" c_th1s_getlinestyle +  :: (Ptr RawTH1S) -> IO CInt++foreign import ccall "HROOTHistTH1S.h TH1S_GetLineWidth" c_th1s_getlinewidth +  :: (Ptr RawTH1S) -> IO CInt++foreign import ccall "HROOTHistTH1S.h TH1S_ResetAttLine" c_th1s_resetattline +  :: (Ptr RawTH1S) -> CString -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SetLineAttributes" c_th1s_setlineattributes +  :: (Ptr RawTH1S) -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SetLineColor" c_th1s_setlinecolor +  :: (Ptr RawTH1S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SetLineStyle" c_th1s_setlinestyle +  :: (Ptr RawTH1S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SetLineWidth" c_th1s_setlinewidth +  :: (Ptr RawTH1S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SetFillColor" c_th1s_setfillcolor +  :: (Ptr RawTH1S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SetFillStyle" c_th1s_setfillstyle +  :: (Ptr RawTH1S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_GetMarkerColor" c_th1s_getmarkercolor +  :: (Ptr RawTH1S) -> IO CInt++foreign import ccall "HROOTHistTH1S.h TH1S_GetMarkerStyle" c_th1s_getmarkerstyle +  :: (Ptr RawTH1S) -> IO CInt++foreign import ccall "HROOTHistTH1S.h TH1S_GetMarkerSize" c_th1s_getmarkersize +  :: (Ptr RawTH1S) -> IO CDouble++foreign import ccall "HROOTHistTH1S.h TH1S_ResetAttMarker" c_th1s_resetattmarker +  :: (Ptr RawTH1S) -> CString -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SetMarkerAttributes" c_th1s_setmarkerattributes +  :: (Ptr RawTH1S) -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SetMarkerColor" c_th1s_setmarkercolor +  :: (Ptr RawTH1S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SetMarkerStyle" c_th1s_setmarkerstyle +  :: (Ptr RawTH1S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_SetMarkerSize" c_th1s_setmarkersize +  :: (Ptr RawTH1S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH1S.h TH1S_delete" c_th1s_delete +  :: (Ptr RawTH1S) -> IO ()+
+ src/HROOT/Hist/TH1S/Implementation.hs view
@@ -0,0 +1,408 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, +             OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH1S.Implementation where+++import FFICXX.Runtime.Cast++import HROOT.Hist.TH1S.RawType+import HROOT.Hist.TH1S.FFI+import HROOT.Hist.TH1S.Interface+import HROOT.Hist.TH1S.Cast+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TDirectory.Cast+import HROOT.Core.TDirectory.Interface+import HROOT.Hist.TF1.RawType+import HROOT.Hist.TF1.Cast+import HROOT.Hist.TF1.Interface+import HROOT.Core.TArrayD.RawType+import HROOT.Core.TArrayD.Cast+import HROOT.Core.TArrayD.Interface+import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.Cast+import HROOT.Hist.TAxis.Interface+import HROOT.Core.TClass.RawType+import HROOT.Core.TClass.Cast+import HROOT.Core.TClass.Interface+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH1.Cast+import HROOT.Hist.TH1.Interface+import HROOT.Core.TArrayS.RawType+import HROOT.Core.TArrayS.Cast+import HROOT.Core.TArrayS.Interface+import HROOT.Core.TObject.RawType+import HROOT.Core.TObject.Cast+import HROOT.Core.TObject.Interface+import HROOT.Core.TAttLine.RawType+import HROOT.Core.TAttLine.Cast+import HROOT.Core.TAttLine.Interface+import HROOT.Core.TAttFill.RawType+import HROOT.Core.TAttFill.Cast+import HROOT.Core.TAttFill.Interface+import HROOT.Core.TAttMarker.RawType+import HROOT.Core.TAttMarker.Cast+import HROOT.Core.TAttMarker.Interface+import HROOT.Core.Deletable.RawType+import HROOT.Core.Deletable.Cast+import HROOT.Core.Deletable.Interface+import HROOT.Core.TArray.RawType+import HROOT.Core.TArray.Cast+import HROOT.Core.TArray.Interface++import Data.Word+import Foreign.C+import Foreign.Ptr +import Foreign.ForeignPtr++import System.IO.Unsafe+++instance ITH1S TH1S where+instance ITH1 TH1S where+  add = xform2 c_th1s_add+  addBinContent = xform2 c_th1s_addbincontent+  chi2Test = xform3 c_th1s_chi2test+  computeIntegral = xform0 c_th1s_computeintegral+  directoryAutoAdd = xform1 c_th1s_directoryautoadd+  divide = xform5 c_th1s_divide+  drawCopyTH1 = xform1 c_th1s_drawcopyth1+  drawNormalized = xform2 c_th1s_drawnormalized+  drawPanelTH1 = xform0 c_th1s_drawpanelth1+  bufferEmpty = xform1 c_th1s_bufferempty+  evalF = xform2 c_th1s_evalf+  fFT = xform2 c_th1s_fft+  fill1 = xform1 c_th1s_fill1+  fill1w = xform2 c_th1s_fill1w+  fillN1 = xform4 c_th1s_filln1+  fillRandom = xform2 c_th1s_fillrandom+  findBin = xform3 c_th1s_findbin+  findFixBin = xform3 c_th1s_findfixbin+  findFirstBinAbove = xform2 c_th1s_findfirstbinabove+  findLastBinAbove = xform2 c_th1s_findlastbinabove+  fitPanelTH1 = xform0 c_th1s_fitpanelth1+  getNdivisionA = xform1 c_th1s_getndivisiona+  getAxisColorA = xform1 c_th1s_getaxiscolora+  getLabelColorA = xform1 c_th1s_getlabelcolora+  getLabelFontA = xform1 c_th1s_getlabelfonta+  getLabelOffsetA = xform1 c_th1s_getlabeloffseta+  getLabelSizeA = xform1 c_th1s_getlabelsizea+  getTitleFontA = xform1 c_th1s_gettitlefonta+  getTitleOffsetA = xform1 c_th1s_gettitleoffseta+  getTitleSizeA = xform1 c_th1s_gettitlesizea+  getTickLengthA = xform1 c_th1s_getticklengtha+  getBarOffset = xform0 c_th1s_getbaroffset+  getBarWidth = xform0 c_th1s_getbarwidth+  getContour = xform1 c_th1s_getcontour+  getContourLevel = xform1 c_th1s_getcontourlevel+  getContourLevelPad = xform1 c_th1s_getcontourlevelpad+  getBin = xform3 c_th1s_getbin+  getBinCenter = xform1 c_th1s_getbincenter+  getBinContent1 = xform1 c_th1s_getbincontent1+  getBinContent2 = xform2 c_th1s_getbincontent2+  getBinContent3 = xform3 c_th1s_getbincontent3+  getBinError1 = xform1 c_th1s_getbinerror1+  getBinError2 = xform2 c_th1s_getbinerror2+  getBinError3 = xform3 c_th1s_getbinerror3+  getBinLowEdge = xform1 c_th1s_getbinlowedge+  getBinWidth = xform1 c_th1s_getbinwidth+  getCellContent = xform2 c_th1s_getcellcontent+  getCellError = xform2 c_th1s_getcellerror+  getEntries = xform0 c_th1s_getentries+  getEffectiveEntries = xform0 c_th1s_geteffectiveentries+  getFunction = xform1 c_th1s_getfunction+  getDimension = xform0 c_th1s_getdimension+  getKurtosis = xform1 c_th1s_getkurtosis+  getLowEdge = xform1 c_th1s_getlowedge+  getMaximumTH1 = xform1 c_th1s_getmaximumth1+  getMaximumBin = xform0 c_th1s_getmaximumbin+  getMaximumStored = xform0 c_th1s_getmaximumstored+  getMinimumTH1 = xform1 c_th1s_getminimumth1+  getMinimumBin = xform0 c_th1s_getminimumbin+  getMinimumStored = xform0 c_th1s_getminimumstored+  getMean = xform1 c_th1s_getmean+  getMeanError = xform1 c_th1s_getmeanerror+  getNbinsX = xform0 c_th1s_getnbinsx+  getNbinsY = xform0 c_th1s_getnbinsy+  getNbinsZ = xform0 c_th1s_getnbinsz+  getQuantilesTH1 = xform3 c_th1s_getquantilesth1+  getRandom = xform0 c_th1s_getrandom+  getStats = xform1 c_th1s_getstats+  getSumOfWeights = xform0 c_th1s_getsumofweights+  getSumw2 = xform0 c_th1s_getsumw2+  getSumw2N = xform0 c_th1s_getsumw2n+  getRMS = xform1 c_th1s_getrms+  getRMSError = xform1 c_th1s_getrmserror+  getSkewness = xform1 c_th1s_getskewness+  integral1 = xform3 c_th1s_integral1+  interpolate1 = xform1 c_th1s_interpolate1+  interpolate2 = xform2 c_th1s_interpolate2+  interpolate3 = xform3 c_th1s_interpolate3+  kolmogorovTest = xform2 c_th1s_kolmogorovtest+  labelsDeflate = xform1 c_th1s_labelsdeflate+  labelsInflate = xform1 c_th1s_labelsinflate+  labelsOption = xform2 c_th1s_labelsoption+  multiflyF = xform2 c_th1s_multiflyf+  multiply = xform5 c_th1s_multiply+  putStats = xform1 c_th1s_putstats+  rebin = xform3 c_th1s_rebin+  rebinAxis = xform2 c_th1s_rebinaxis+  rebuild = xform1 c_th1s_rebuild+  recursiveRemove = xform1 c_th1s_recursiveremove+  reset = xform1 c_th1s_reset+  resetStats = xform0 c_th1s_resetstats+  scale = xform2 c_th1s_scale+  setAxisColorA = xform2 c_th1s_setaxiscolora+  setAxisRange = xform3 c_th1s_setaxisrange+  setBarOffset = xform1 c_th1s_setbaroffset+  setBarWidth = xform1 c_th1s_setbarwidth+  setBinContent1 = xform2 c_th1s_setbincontent1+  setBinContent2 = xform3 c_th1s_setbincontent2+  setBinContent3 = xform4 c_th1s_setbincontent3+  setBinError1 = xform2 c_th1s_setbinerror1+  setBinError2 = xform3 c_th1s_setbinerror2+  setBinError3 = xform4 c_th1s_setbinerror3+  setBins1 = xform2 c_th1s_setbins1+  setBins2 = xform4 c_th1s_setbins2+  setBins3 = xform6 c_th1s_setbins3+  setBinsLength = xform1 c_th1s_setbinslength+  setBuffer = xform2 c_th1s_setbuffer+  setCellContent = xform3 c_th1s_setcellcontent+  setContent = xform1 c_th1s_setcontent+  setContour = xform2 c_th1s_setcontour+  setContourLevel = xform2 c_th1s_setcontourlevel+  setDirectory = xform1 c_th1s_setdirectory+  setEntries = xform1 c_th1s_setentries+  setError = xform1 c_th1s_seterror+  setLabelColorA = xform2 c_th1s_setlabelcolora+  setLabelSizeA = xform2 c_th1s_setlabelsizea+  setLabelFontA = xform2 c_th1s_setlabelfonta+  setLabelOffsetA = xform2 c_th1s_setlabeloffseta+  setMaximum = xform1 c_th1s_setmaximum+  setMinimum = xform1 c_th1s_setminimum+  setNormFactor = xform1 c_th1s_setnormfactor+  setStats = xform1 c_th1s_setstats+  setOption = xform1 c_th1s_setoption+  setXTitle = xform1 c_th1s_setxtitle+  setYTitle = xform1 c_th1s_setytitle+  setZTitle = xform1 c_th1s_setztitle+  showBackground = xform2 c_th1s_showbackground+  showPeaks = xform3 c_th1s_showpeaks+  smooth = xform2 c_th1s_smooth+  sumw2 = xform0 c_th1s_sumw2+instance ITArrayS TH1S where+instance ITObject TH1S where+  draw = xform1 c_th1s_draw+  findObject = xform1 c_th1s_findobject+  getName = xform0 c_th1s_getname+  isA = xform0 c_th1s_isa+  paint = xform1 c_th1s_paint+  printObj = xform1 c_th1s_printobj+  saveAs = xform2 c_th1s_saveas+  write = xform3 c_th1s_write+instance ITAttLine TH1S where+  getLineColor = xform0 c_th1s_getlinecolor+  getLineStyle = xform0 c_th1s_getlinestyle+  getLineWidth = xform0 c_th1s_getlinewidth+  resetAttLine = xform1 c_th1s_resetattline+  setLineAttributes = xform0 c_th1s_setlineattributes+  setLineColor = xform1 c_th1s_setlinecolor+  setLineStyle = xform1 c_th1s_setlinestyle+  setLineWidth = xform1 c_th1s_setlinewidth+instance ITAttFill TH1S where+  setFillColor = xform1 c_th1s_setfillcolor+  setFillStyle = xform1 c_th1s_setfillstyle+instance ITAttMarker TH1S where+  getMarkerColor = xform0 c_th1s_getmarkercolor+  getMarkerStyle = xform0 c_th1s_getmarkerstyle+  getMarkerSize = xform0 c_th1s_getmarkersize+  resetAttMarker = xform1 c_th1s_resetattmarker+  setMarkerAttributes = xform0 c_th1s_setmarkerattributes+  setMarkerColor = xform1 c_th1s_setmarkercolor+  setMarkerStyle = xform1 c_th1s_setmarkerstyle+  setMarkerSize = xform1 c_th1s_setmarkersize+instance IDeletable TH1S where+  delete = xform0 c_th1s_delete+instance ITArray TH1S where++instance ITH1S (Exist TH1S) where++instance ITH1 (Exist TH1S) where+  add (ETH1S x) = add x+  addBinContent (ETH1S x) = addBinContent x+  chi2Test (ETH1S x) = chi2Test x+  computeIntegral (ETH1S x) = computeIntegral x+  directoryAutoAdd (ETH1S x) = directoryAutoAdd x+  divide (ETH1S x) = divide x+  drawCopyTH1 (ETH1S x) a1 = return . ETH1S =<< drawCopyTH1 x a1+  drawNormalized (ETH1S x) = drawNormalized x+  drawPanelTH1 (ETH1S x) = drawPanelTH1 x+  bufferEmpty (ETH1S x) = bufferEmpty x+  evalF (ETH1S x) = evalF x+  fFT (ETH1S x) = fFT x+  fill1 (ETH1S x) = fill1 x+  fill1w (ETH1S x) = fill1w x+  fillN1 (ETH1S x) = fillN1 x+  fillRandom (ETH1S x) = fillRandom x+  findBin (ETH1S x) = findBin x+  findFixBin (ETH1S x) = findFixBin x+  findFirstBinAbove (ETH1S x) = findFirstBinAbove x+  findLastBinAbove (ETH1S x) = findLastBinAbove x+  fitPanelTH1 (ETH1S x) = fitPanelTH1 x+  getNdivisionA (ETH1S x) = getNdivisionA x+  getAxisColorA (ETH1S x) = getAxisColorA x+  getLabelColorA (ETH1S x) = getLabelColorA x+  getLabelFontA (ETH1S x) = getLabelFontA x+  getLabelOffsetA (ETH1S x) = getLabelOffsetA x+  getLabelSizeA (ETH1S x) = getLabelSizeA x+  getTitleFontA (ETH1S x) = getTitleFontA x+  getTitleOffsetA (ETH1S x) = getTitleOffsetA x+  getTitleSizeA (ETH1S x) = getTitleSizeA x+  getTickLengthA (ETH1S x) = getTickLengthA x+  getBarOffset (ETH1S x) = getBarOffset x+  getBarWidth (ETH1S x) = getBarWidth x+  getContour (ETH1S x) = getContour x+  getContourLevel (ETH1S x) = getContourLevel x+  getContourLevelPad (ETH1S x) = getContourLevelPad x+  getBin (ETH1S x) = getBin x+  getBinCenter (ETH1S x) = getBinCenter x+  getBinContent1 (ETH1S x) = getBinContent1 x+  getBinContent2 (ETH1S x) = getBinContent2 x+  getBinContent3 (ETH1S x) = getBinContent3 x+  getBinError1 (ETH1S x) = getBinError1 x+  getBinError2 (ETH1S x) = getBinError2 x+  getBinError3 (ETH1S x) = getBinError3 x+  getBinLowEdge (ETH1S x) = getBinLowEdge x+  getBinWidth (ETH1S x) = getBinWidth x+  getCellContent (ETH1S x) = getCellContent x+  getCellError (ETH1S x) = getCellError x+  getEntries (ETH1S x) = getEntries x+  getEffectiveEntries (ETH1S x) = getEffectiveEntries x+  getFunction (ETH1S x) = getFunction x+  getDimension (ETH1S x) = getDimension x+  getKurtosis (ETH1S x) = getKurtosis x+  getLowEdge (ETH1S x) = getLowEdge x+  getMaximumTH1 (ETH1S x) = getMaximumTH1 x+  getMaximumBin (ETH1S x) = getMaximumBin x+  getMaximumStored (ETH1S x) = getMaximumStored x+  getMinimumTH1 (ETH1S x) = getMinimumTH1 x+  getMinimumBin (ETH1S x) = getMinimumBin x+  getMinimumStored (ETH1S x) = getMinimumStored x+  getMean (ETH1S x) = getMean x+  getMeanError (ETH1S x) = getMeanError x+  getNbinsX (ETH1S x) = getNbinsX x+  getNbinsY (ETH1S x) = getNbinsY x+  getNbinsZ (ETH1S x) = getNbinsZ x+  getQuantilesTH1 (ETH1S x) = getQuantilesTH1 x+  getRandom (ETH1S x) = getRandom x+  getStats (ETH1S x) = getStats x+  getSumOfWeights (ETH1S x) = getSumOfWeights x+  getSumw2 (ETH1S x) = getSumw2 x+  getSumw2N (ETH1S x) = getSumw2N x+  getRMS (ETH1S x) = getRMS x+  getRMSError (ETH1S x) = getRMSError x+  getSkewness (ETH1S x) = getSkewness x+  integral1 (ETH1S x) = integral1 x+  interpolate1 (ETH1S x) = interpolate1 x+  interpolate2 (ETH1S x) = interpolate2 x+  interpolate3 (ETH1S x) = interpolate3 x+  kolmogorovTest (ETH1S x) = kolmogorovTest x+  labelsDeflate (ETH1S x) = labelsDeflate x+  labelsInflate (ETH1S x) = labelsInflate x+  labelsOption (ETH1S x) = labelsOption x+  multiflyF (ETH1S x) = multiflyF x+  multiply (ETH1S x) = multiply x+  putStats (ETH1S x) = putStats x+  rebin (ETH1S x) = rebin x+  rebinAxis (ETH1S x) = rebinAxis x+  rebuild (ETH1S x) = rebuild x+  recursiveRemove (ETH1S x) = recursiveRemove x+  reset (ETH1S x) = reset x+  resetStats (ETH1S x) = resetStats x+  scale (ETH1S x) = scale x+  setAxisColorA (ETH1S x) = setAxisColorA x+  setAxisRange (ETH1S x) = setAxisRange x+  setBarOffset (ETH1S x) = setBarOffset x+  setBarWidth (ETH1S x) = setBarWidth x+  setBinContent1 (ETH1S x) = setBinContent1 x+  setBinContent2 (ETH1S x) = setBinContent2 x+  setBinContent3 (ETH1S x) = setBinContent3 x+  setBinError1 (ETH1S x) = setBinError1 x+  setBinError2 (ETH1S x) = setBinError2 x+  setBinError3 (ETH1S x) = setBinError3 x+  setBins1 (ETH1S x) = setBins1 x+  setBins2 (ETH1S x) = setBins2 x+  setBins3 (ETH1S x) = setBins3 x+  setBinsLength (ETH1S x) = setBinsLength x+  setBuffer (ETH1S x) = setBuffer x+  setCellContent (ETH1S x) = setCellContent x+  setContent (ETH1S x) = setContent x+  setContour (ETH1S x) = setContour x+  setContourLevel (ETH1S x) = setContourLevel x+  setDirectory (ETH1S x) = setDirectory x+  setEntries (ETH1S x) = setEntries x+  setError (ETH1S x) = setError x+  setLabelColorA (ETH1S x) = setLabelColorA x+  setLabelSizeA (ETH1S x) = setLabelSizeA x+  setLabelFontA (ETH1S x) = setLabelFontA x+  setLabelOffsetA (ETH1S x) = setLabelOffsetA x+  setMaximum (ETH1S x) = setMaximum x+  setMinimum (ETH1S x) = setMinimum x+  setNormFactor (ETH1S x) = setNormFactor x+  setStats (ETH1S x) = setStats x+  setOption (ETH1S x) = setOption x+  setXTitle (ETH1S x) = setXTitle x+  setYTitle (ETH1S x) = setYTitle x+  setZTitle (ETH1S x) = setZTitle x+  showBackground (ETH1S x) = showBackground x+  showPeaks (ETH1S x) = showPeaks x+  smooth (ETH1S x) = smooth x+  sumw2 (ETH1S x) = sumw2 x+instance ITArrayS (Exist TH1S) where++instance ITObject (Exist TH1S) where+  draw (ETH1S x) = draw x+  findObject (ETH1S x) = findObject x+  getName (ETH1S x) = getName x+  isA (ETH1S x) = isA x+  paint (ETH1S x) = paint x+  printObj (ETH1S x) = printObj x+  saveAs (ETH1S x) = saveAs x+  write (ETH1S x) = write x+instance ITAttLine (Exist TH1S) where+  getLineColor (ETH1S x) = getLineColor x+  getLineStyle (ETH1S x) = getLineStyle x+  getLineWidth (ETH1S x) = getLineWidth x+  resetAttLine (ETH1S x) = resetAttLine x+  setLineAttributes (ETH1S x) = setLineAttributes x+  setLineColor (ETH1S x) = setLineColor x+  setLineStyle (ETH1S x) = setLineStyle x+  setLineWidth (ETH1S x) = setLineWidth x+instance ITAttFill (Exist TH1S) where+  setFillColor (ETH1S x) = setFillColor x+  setFillStyle (ETH1S x) = setFillStyle x+instance ITAttMarker (Exist TH1S) where+  getMarkerColor (ETH1S x) = getMarkerColor x+  getMarkerStyle (ETH1S x) = getMarkerStyle x+  getMarkerSize (ETH1S x) = getMarkerSize x+  resetAttMarker (ETH1S x) = resetAttMarker x+  setMarkerAttributes (ETH1S x) = setMarkerAttributes x+  setMarkerColor (ETH1S x) = setMarkerColor x+  setMarkerStyle (ETH1S x) = setMarkerStyle x+  setMarkerSize (ETH1S x) = setMarkerSize x+instance IDeletable (Exist TH1S) where+  delete (ETH1S x) = delete x+instance ITArray (Exist TH1S) where+++++++++instance FPtr (Exist TH1S) where+  type Raw (Exist TH1S) = RawTH1S+  get_fptr (ETH1S obj) = castForeignPtr (get_fptr obj)+  cast_fptr_to_obj fptr = ETH1S (cast_fptr_to_obj (fptr :: ForeignPtr RawTH1S) :: TH1S)
+ src/HROOT/Hist/TH1S/Interface.hs view
@@ -0,0 +1,37 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++-- module HROOT.Class.Interface where++module HROOT.Hist.TH1S.Interface where+++import Data.Word+import Foreign.C+import Foreign.Ptr+import Foreign.ForeignPtr+import FFICXX.Runtime.Cast++import HROOT.Hist.TH1S.RawType++import HROOT.Hist.TH1.Interface+import HROOT.Core.TArrayS.Interface+---- ============ ----++++class (ITH1 a,ITArrayS a) => ITH1S a where++instance Existable TH1S where+  data Exist TH1S = forall a. (FPtr a, ITH1S a) => ETH1S a++upcastTH1S :: (FPtr a, ITH1S a) => a -> TH1S+upcastTH1S h = let fh = get_fptr h+                   fh2 :: ForeignPtr RawTH1S = castForeignPtr fh+               in cast_fptr_to_obj fh2++downcastTH1S :: (FPtr a, ITH1S a) => TH1S -> a +downcastTH1S h = let fh = get_fptr h+                     fh2 = castForeignPtr fh+                 in cast_fptr_to_obj fh2
+ src/HROOT/Hist/TH1S/RawType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++module HROOT.Hist.TH1S.RawType where+++import Foreign.ForeignPtr+import FFICXX.Runtime.Cast  ++data RawTH1S+newtype TH1S = TH1S (ForeignPtr RawTH1S) deriving (Eq, Ord, Show)+instance FPtr TH1S where+   type Raw TH1S = RawTH1S+   get_fptr (TH1S fptr) = fptr+   cast_fptr_to_obj = TH1S
+ src/HROOT/Hist/TH2.hs view
@@ -0,0 +1,16 @@+module HROOT.Hist.TH2+  (+    TH2(..)+  , ITH2(..)+  , upcastTH2+  , downcastTH2+  , tH2ProjectionX+  , tH2ProjectionY+ +  ) where++import HROOT.Hist.TH2.RawType+import HROOT.Hist.TH2.Interface+import HROOT.Hist.TH2.Implementation++
+ src/HROOT/Hist/TH2/Cast.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeFamilies, +             MultiParamTypeClasses, OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH2.Cast where+++import Foreign.Ptr+import Foreign.ForeignPtr (castForeignPtr, newForeignPtr_)+import Foreign.ForeignPtr.Unsafe+import FFICXX.Runtime.Cast+import System.IO.Unsafe++import HROOT.Hist.TH2.RawType+import HROOT.Hist.TH2.Interface++instance (ITH2 a, FPtr a) => Castable a (Ptr RawTH2) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ ++instance Castable TH2 (Ptr RawTH2) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+ src/HROOT/Hist/TH2/FFI.hsc view
@@ -0,0 +1,552 @@+{-# LANGUAGE ForeignFunctionInterface #-}++-- module HROOT.Class.FFI where++module HROOT.Hist.TH2.FFI where+++import Foreign.C            +import Foreign.Ptr++-- import HROOT.Class.Interface++-- #include ""++import HROOT.Hist.TH2.RawType+import HROOT.Hist.TH1.RawType+import HROOT.Core.TDirectory.RawType+import HROOT.Hist.TF1.RawType+import HROOT.Core.TArrayD.RawType+import HROOT.Hist.TAxis.RawType+import HROOT.Core.TObject.RawType+import HROOT.Core.TClass.RawType+import HROOT.Hist.TH1D.RawType+import HROOT.Core.TObjArray.RawType++#include "HROOTHistTH2.h"++foreign import ccall "HROOTHistTH2.h TH2_Add" c_th2_add +  :: (Ptr RawTH2) -> (Ptr RawTH1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_AddBinContent" c_th2_addbincontent +  :: (Ptr RawTH2) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_Chi2Test" c_th2_chi2test +  :: (Ptr RawTH2) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_ComputeIntegral" c_th2_computeintegral +  :: (Ptr RawTH2) -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_DirectoryAutoAdd" c_th2_directoryautoadd +  :: (Ptr RawTH2) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_Divide" c_th2_divide +  :: (Ptr RawTH2) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_drawCopyTH1" c_th2_drawcopyth1 +  :: (Ptr RawTH2) -> CString -> IO (Ptr RawTH2)++foreign import ccall "HROOTHistTH2.h TH2_DrawNormalized" c_th2_drawnormalized +  :: (Ptr RawTH2) -> CString -> CDouble -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH2.h TH2_drawPanelTH1" c_th2_drawpanelth1 +  :: (Ptr RawTH2) -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_BufferEmpty" c_th2_bufferempty +  :: (Ptr RawTH2) -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2.h TH2_evalF" c_th2_evalf +  :: (Ptr RawTH2) -> (Ptr RawTF1) -> CString -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_FFT" c_th2_fft +  :: (Ptr RawTH2) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH2.h TH2_fill1" c_th2_fill1 +  :: (Ptr RawTH2) -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2.h TH2_fill1w" c_th2_fill1w +  :: (Ptr RawTH2) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2.h TH2_fillN1" c_th2_filln1 +  :: (Ptr RawTH2) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_FillRandom" c_th2_fillrandom +  :: (Ptr RawTH2) -> (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_FindBin" c_th2_findbin +  :: (Ptr RawTH2) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2.h TH2_FindFixBin" c_th2_findfixbin +  :: (Ptr RawTH2) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2.h TH2_FindFirstBinAbove" c_th2_findfirstbinabove +  :: (Ptr RawTH2) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2.h TH2_FindLastBinAbove" c_th2_findlastbinabove +  :: (Ptr RawTH2) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2.h TH2_FitPanelTH1" c_th2_fitpanelth1 +  :: (Ptr RawTH2) -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_getNdivisionA" c_th2_getndivisiona +  :: (Ptr RawTH2) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2.h TH2_getAxisColorA" c_th2_getaxiscolora +  :: (Ptr RawTH2) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2.h TH2_getLabelColorA" c_th2_getlabelcolora +  :: (Ptr RawTH2) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2.h TH2_getLabelFontA" c_th2_getlabelfonta +  :: (Ptr RawTH2) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2.h TH2_getLabelOffsetA" c_th2_getlabeloffseta +  :: (Ptr RawTH2) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_getLabelSizeA" c_th2_getlabelsizea +  :: (Ptr RawTH2) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_getTitleFontA" c_th2_gettitlefonta +  :: (Ptr RawTH2) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2.h TH2_getTitleOffsetA" c_th2_gettitleoffseta +  :: (Ptr RawTH2) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_getTitleSizeA" c_th2_gettitlesizea +  :: (Ptr RawTH2) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_getTickLengthA" c_th2_getticklengtha +  :: (Ptr RawTH2) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_GetBarOffset" c_th2_getbaroffset +  :: (Ptr RawTH2) -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_GetBarWidth" c_th2_getbarwidth +  :: (Ptr RawTH2) -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_GetContour" c_th2_getcontour +  :: (Ptr RawTH2) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH2.h TH2_GetContourLevel" c_th2_getcontourlevel +  :: (Ptr RawTH2) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_GetContourLevelPad" c_th2_getcontourlevelpad +  :: (Ptr RawTH2) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_GetBin" c_th2_getbin +  :: (Ptr RawTH2) -> CInt -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2.h TH2_GetBinCenter" c_th2_getbincenter +  :: (Ptr RawTH2) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_GetBinContent1" c_th2_getbincontent1 +  :: (Ptr RawTH2) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_GetBinContent2" c_th2_getbincontent2 +  :: (Ptr RawTH2) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_GetBinContent3" c_th2_getbincontent3 +  :: (Ptr RawTH2) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_GetBinError1" c_th2_getbinerror1 +  :: (Ptr RawTH2) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_GetBinError2" c_th2_getbinerror2 +  :: (Ptr RawTH2) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_GetBinError3" c_th2_getbinerror3 +  :: (Ptr RawTH2) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_GetBinLowEdge" c_th2_getbinlowedge +  :: (Ptr RawTH2) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_GetBinWidth" c_th2_getbinwidth +  :: (Ptr RawTH2) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_GetCellContent" c_th2_getcellcontent +  :: (Ptr RawTH2) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_GetCellError" c_th2_getcellerror +  :: (Ptr RawTH2) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_GetEntries" c_th2_getentries +  :: (Ptr RawTH2) -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_GetEffectiveEntries" c_th2_geteffectiveentries +  :: (Ptr RawTH2) -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_GetFunction" c_th2_getfunction +  :: (Ptr RawTH2) -> CString -> IO (Ptr RawTF1)++foreign import ccall "HROOTHistTH2.h TH2_GetDimension" c_th2_getdimension +  :: (Ptr RawTH2) -> IO CInt++foreign import ccall "HROOTHistTH2.h TH2_GetKurtosis" c_th2_getkurtosis +  :: (Ptr RawTH2) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_GetLowEdge" c_th2_getlowedge +  :: (Ptr RawTH2) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_getMaximumTH1" c_th2_getmaximumth1 +  :: (Ptr RawTH2) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_GetMaximumBin" c_th2_getmaximumbin +  :: (Ptr RawTH2) -> IO CInt++foreign import ccall "HROOTHistTH2.h TH2_GetMaximumStored" c_th2_getmaximumstored +  :: (Ptr RawTH2) -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_getMinimumTH1" c_th2_getminimumth1 +  :: (Ptr RawTH2) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_GetMinimumBin" c_th2_getminimumbin +  :: (Ptr RawTH2) -> IO CInt++foreign import ccall "HROOTHistTH2.h TH2_GetMinimumStored" c_th2_getminimumstored +  :: (Ptr RawTH2) -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_GetMean" c_th2_getmean +  :: (Ptr RawTH2) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_GetMeanError" c_th2_getmeanerror +  :: (Ptr RawTH2) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_GetNbinsX" c_th2_getnbinsx +  :: (Ptr RawTH2) -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_GetNbinsY" c_th2_getnbinsy +  :: (Ptr RawTH2) -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_GetNbinsZ" c_th2_getnbinsz +  :: (Ptr RawTH2) -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_getQuantilesTH1" c_th2_getquantilesth1 +  :: (Ptr RawTH2) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH2.h TH2_GetRandom" c_th2_getrandom +  :: (Ptr RawTH2) -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_GetStats" c_th2_getstats +  :: (Ptr RawTH2) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_GetSumOfWeights" c_th2_getsumofweights +  :: (Ptr RawTH2) -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_GetSumw2" c_th2_getsumw2 +  :: (Ptr RawTH2) -> IO (Ptr RawTArrayD)++foreign import ccall "HROOTHistTH2.h TH2_GetSumw2N" c_th2_getsumw2n +  :: (Ptr RawTH2) -> IO CInt++foreign import ccall "HROOTHistTH2.h TH2_GetRMS" c_th2_getrms +  :: (Ptr RawTH2) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_GetRMSError" c_th2_getrmserror +  :: (Ptr RawTH2) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_GetSkewness" c_th2_getskewness +  :: (Ptr RawTH2) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_integral1" c_th2_integral1 +  :: (Ptr RawTH2) -> CInt -> CInt -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_interpolate1" c_th2_interpolate1 +  :: (Ptr RawTH2) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_interpolate2" c_th2_interpolate2 +  :: (Ptr RawTH2) -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_interpolate3" c_th2_interpolate3 +  :: (Ptr RawTH2) -> CDouble -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_KolmogorovTest" c_th2_kolmogorovtest +  :: (Ptr RawTH2) -> (Ptr RawTH1) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_LabelsDeflate" c_th2_labelsdeflate +  :: (Ptr RawTH2) -> CString -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_LabelsInflate" c_th2_labelsinflate +  :: (Ptr RawTH2) -> CString -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_LabelsOption" c_th2_labelsoption +  :: (Ptr RawTH2) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_multiflyF" c_th2_multiflyf +  :: (Ptr RawTH2) -> (Ptr RawTF1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_Multiply" c_th2_multiply +  :: (Ptr RawTH2) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_PutStats" c_th2_putstats +  :: (Ptr RawTH2) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_Rebin" c_th2_rebin +  :: (Ptr RawTH2) -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH2.h TH2_RebinAxis" c_th2_rebinaxis +  :: (Ptr RawTH2) -> CDouble -> (Ptr RawTAxis) -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_Rebuild" c_th2_rebuild +  :: (Ptr RawTH2) -> CString -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_RecursiveRemove" c_th2_recursiveremove +  :: (Ptr RawTH2) -> (Ptr RawTObject) -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_Reset" c_th2_reset +  :: (Ptr RawTH2) -> CString -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_ResetStats" c_th2_resetstats +  :: (Ptr RawTH2) -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_Scale" c_th2_scale +  :: (Ptr RawTH2) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_setAxisColorA" c_th2_setaxiscolora +  :: (Ptr RawTH2) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetAxisRange" c_th2_setaxisrange +  :: (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetBarOffset" c_th2_setbaroffset +  :: (Ptr RawTH2) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetBarWidth" c_th2_setbarwidth +  :: (Ptr RawTH2) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_setBinContent1" c_th2_setbincontent1 +  :: (Ptr RawTH2) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_setBinContent2" c_th2_setbincontent2 +  :: (Ptr RawTH2) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_setBinContent3" c_th2_setbincontent3 +  :: (Ptr RawTH2) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_setBinError1" c_th2_setbinerror1 +  :: (Ptr RawTH2) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_setBinError2" c_th2_setbinerror2 +  :: (Ptr RawTH2) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_setBinError3" c_th2_setbinerror3 +  :: (Ptr RawTH2) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_setBins1" c_th2_setbins1 +  :: (Ptr RawTH2) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_setBins2" c_th2_setbins2 +  :: (Ptr RawTH2) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_setBins3" c_th2_setbins3 +  :: (Ptr RawTH2) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetBinsLength" c_th2_setbinslength +  :: (Ptr RawTH2) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetBuffer" c_th2_setbuffer +  :: (Ptr RawTH2) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetCellContent" c_th2_setcellcontent +  :: (Ptr RawTH2) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetContent" c_th2_setcontent +  :: (Ptr RawTH2) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetContour" c_th2_setcontour +  :: (Ptr RawTH2) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetContourLevel" c_th2_setcontourlevel +  :: (Ptr RawTH2) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetDirectory" c_th2_setdirectory +  :: (Ptr RawTH2) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetEntries" c_th2_setentries +  :: (Ptr RawTH2) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetError" c_th2_seterror +  :: (Ptr RawTH2) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_setLabelColorA" c_th2_setlabelcolora +  :: (Ptr RawTH2) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_setLabelSizeA" c_th2_setlabelsizea +  :: (Ptr RawTH2) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_setLabelFontA" c_th2_setlabelfonta +  :: (Ptr RawTH2) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_setLabelOffsetA" c_th2_setlabeloffseta +  :: (Ptr RawTH2) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetMaximum" c_th2_setmaximum +  :: (Ptr RawTH2) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetMinimum" c_th2_setminimum +  :: (Ptr RawTH2) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetNormFactor" c_th2_setnormfactor +  :: (Ptr RawTH2) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetStats" c_th2_setstats +  :: (Ptr RawTH2) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetOption" c_th2_setoption +  :: (Ptr RawTH2) -> CString -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetXTitle" c_th2_setxtitle +  :: (Ptr RawTH2) -> CString -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetYTitle" c_th2_setytitle +  :: (Ptr RawTH2) -> CString -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetZTitle" c_th2_setztitle +  :: (Ptr RawTH2) -> CString -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_ShowBackground" c_th2_showbackground +  :: (Ptr RawTH2) -> CInt -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH2.h TH2_ShowPeaks" c_th2_showpeaks +  :: (Ptr RawTH2) -> CDouble -> CString -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2.h TH2_Smooth" c_th2_smooth +  :: (Ptr RawTH2) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_Sumw2" c_th2_sumw2 +  :: (Ptr RawTH2) -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_Draw" c_th2_draw +  :: (Ptr RawTH2) -> CString -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_FindObject" c_th2_findobject +  :: (Ptr RawTH2) -> CString -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTH2.h TH2_GetName" c_th2_getname +  :: (Ptr RawTH2) -> IO CString++foreign import ccall "HROOTHistTH2.h TH2_IsA" c_th2_isa +  :: (Ptr RawTH2) -> IO (Ptr RawTClass)++foreign import ccall "HROOTHistTH2.h TH2_Paint" c_th2_paint +  :: (Ptr RawTH2) -> CString -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_printObj" c_th2_printobj +  :: (Ptr RawTH2) -> CString -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SaveAs" c_th2_saveas +  :: (Ptr RawTH2) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_Write" c_th2_write +  :: (Ptr RawTH2) -> CString -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2.h TH2_GetLineColor" c_th2_getlinecolor +  :: (Ptr RawTH2) -> IO CInt++foreign import ccall "HROOTHistTH2.h TH2_GetLineStyle" c_th2_getlinestyle +  :: (Ptr RawTH2) -> IO CInt++foreign import ccall "HROOTHistTH2.h TH2_GetLineWidth" c_th2_getlinewidth +  :: (Ptr RawTH2) -> IO CInt++foreign import ccall "HROOTHistTH2.h TH2_ResetAttLine" c_th2_resetattline +  :: (Ptr RawTH2) -> CString -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetLineAttributes" c_th2_setlineattributes +  :: (Ptr RawTH2) -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetLineColor" c_th2_setlinecolor +  :: (Ptr RawTH2) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetLineStyle" c_th2_setlinestyle +  :: (Ptr RawTH2) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetLineWidth" c_th2_setlinewidth +  :: (Ptr RawTH2) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetFillColor" c_th2_setfillcolor +  :: (Ptr RawTH2) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetFillStyle" c_th2_setfillstyle +  :: (Ptr RawTH2) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_GetMarkerColor" c_th2_getmarkercolor +  :: (Ptr RawTH2) -> IO CInt++foreign import ccall "HROOTHistTH2.h TH2_GetMarkerStyle" c_th2_getmarkerstyle +  :: (Ptr RawTH2) -> IO CInt++foreign import ccall "HROOTHistTH2.h TH2_GetMarkerSize" c_th2_getmarkersize +  :: (Ptr RawTH2) -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_ResetAttMarker" c_th2_resetattmarker +  :: (Ptr RawTH2) -> CString -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetMarkerAttributes" c_th2_setmarkerattributes +  :: (Ptr RawTH2) -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetMarkerColor" c_th2_setmarkercolor +  :: (Ptr RawTH2) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetMarkerStyle" c_th2_setmarkerstyle +  :: (Ptr RawTH2) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetMarkerSize" c_th2_setmarkersize +  :: (Ptr RawTH2) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_delete" c_th2_delete +  :: (Ptr RawTH2) -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_fill2" c_th2_fill2 +  :: (Ptr RawTH2) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2.h TH2_fill2w" c_th2_fill2w +  :: (Ptr RawTH2) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2.h TH2_fillN2" c_th2_filln2 +  :: (Ptr RawTH2) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_fillRandom2" c_th2_fillrandom2 +  :: (Ptr RawTH2) -> (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_findFirstBinAbove2" c_th2_findfirstbinabove2 +  :: (Ptr RawTH2) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2.h TH2_findLastBinAbove2" c_th2_findlastbinabove2 +  :: (Ptr RawTH2) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2.h TH2_FitSlicesX" c_th2_fitslicesx +  :: (Ptr RawTH2) -> (Ptr RawTF1) -> CInt -> CInt -> CInt -> CString -> (Ptr RawTObjArray) -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_FitSlicesY" c_th2_fitslicesy +  :: (Ptr RawTH2) -> (Ptr RawTF1) -> CInt -> CInt -> CInt -> CString -> (Ptr RawTObjArray) -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_getCorrelationFactor2" c_th2_getcorrelationfactor2 +  :: (Ptr RawTH2) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_getCovariance2" c_th2_getcovariance2 +  :: (Ptr RawTH2) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_integral2" c_th2_integral2 +  :: (Ptr RawTH2) -> CInt -> CInt -> CInt -> CInt -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2.h TH2_tH2ProjectionX" c_th2_th2projectionx +  :: (Ptr RawTH2) -> CString -> CInt -> CInt -> CString -> IO (Ptr RawTH1D)++foreign import ccall "HROOTHistTH2.h TH2_tH2ProjectionY" c_th2_th2projectiony +  :: (Ptr RawTH2) -> CString -> CInt -> CInt -> CString -> IO (Ptr RawTH1D)++foreign import ccall "HROOTHistTH2.h TH2_rebinX2" c_th2_rebinx2 +  :: (Ptr RawTH2) -> CInt -> CString -> IO (Ptr RawTH2)++foreign import ccall "HROOTHistTH2.h TH2_rebinY2" c_th2_rebiny2 +  :: (Ptr RawTH2) -> CInt -> CString -> IO (Ptr RawTH2)++foreign import ccall "HROOTHistTH2.h TH2_Rebin2D" c_th2_rebin2d +  :: (Ptr RawTH2) -> CInt -> CInt -> CString -> IO (Ptr RawTH2)++foreign import ccall "HROOTHistTH2.h TH2_SetShowProjectionX" c_th2_setshowprojectionx +  :: (Ptr RawTH2) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2.h TH2_SetShowProjectionY" c_th2_setshowprojectiony +  :: (Ptr RawTH2) -> CInt -> IO ()+
+ src/HROOT/Hist/TH2/Implementation.hs view
@@ -0,0 +1,437 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, +             OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH2.Implementation where+++import FFICXX.Runtime.Cast++import HROOT.Hist.TH2.RawType+import HROOT.Hist.TH2.FFI+import HROOT.Hist.TH2.Interface+import HROOT.Hist.TH2.Cast+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TDirectory.Cast+import HROOT.Core.TDirectory.Interface+import HROOT.Hist.TF1.RawType+import HROOT.Hist.TF1.Cast+import HROOT.Hist.TF1.Interface+import HROOT.Core.TArrayD.RawType+import HROOT.Core.TArrayD.Cast+import HROOT.Core.TArrayD.Interface+import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.Cast+import HROOT.Hist.TAxis.Interface+import HROOT.Core.TClass.RawType+import HROOT.Core.TClass.Cast+import HROOT.Core.TClass.Interface+import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH1D.Cast+import HROOT.Hist.TH1D.Interface+import HROOT.Core.TObjArray.RawType+import HROOT.Core.TObjArray.Cast+import HROOT.Core.TObjArray.Interface+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH1.Cast+import HROOT.Hist.TH1.Interface+import HROOT.Core.TObject.RawType+import HROOT.Core.TObject.Cast+import HROOT.Core.TObject.Interface+import HROOT.Core.TAttLine.RawType+import HROOT.Core.TAttLine.Cast+import HROOT.Core.TAttLine.Interface+import HROOT.Core.TAttFill.RawType+import HROOT.Core.TAttFill.Cast+import HROOT.Core.TAttFill.Interface+import HROOT.Core.TAttMarker.RawType+import HROOT.Core.TAttMarker.Cast+import HROOT.Core.TAttMarker.Interface+import HROOT.Core.Deletable.RawType+import HROOT.Core.Deletable.Cast+import HROOT.Core.Deletable.Interface++import Data.Word+import Foreign.C+import Foreign.Ptr +import Foreign.ForeignPtr++import System.IO.Unsafe+++instance ITH2 TH2 where+  fill2 = xform2 c_th2_fill2+  fill2w = xform3 c_th2_fill2w+  fillN2 = xform5 c_th2_filln2+  fillRandom2 = xform2 c_th2_fillrandom2+  findFirstBinAbove2 = xform2 c_th2_findfirstbinabove2+  findLastBinAbove2 = xform2 c_th2_findlastbinabove2+  fitSlicesX = xform6 c_th2_fitslicesx+  fitSlicesY = xform6 c_th2_fitslicesy+  getCorrelationFactor2 = xform2 c_th2_getcorrelationfactor2+  getCovariance2 = xform2 c_th2_getcovariance2+  integral2 = xform5 c_th2_integral2+  rebinX2 = xform2 c_th2_rebinx2+  rebinY2 = xform2 c_th2_rebiny2+  rebin2D = xform3 c_th2_rebin2d+  setShowProjectionX = xform1 c_th2_setshowprojectionx+  setShowProjectionY = xform1 c_th2_setshowprojectiony+instance ITH1 TH2 where+  add = xform2 c_th2_add+  addBinContent = xform2 c_th2_addbincontent+  chi2Test = xform3 c_th2_chi2test+  computeIntegral = xform0 c_th2_computeintegral+  directoryAutoAdd = xform1 c_th2_directoryautoadd+  divide = xform5 c_th2_divide+  drawCopyTH1 = xform1 c_th2_drawcopyth1+  drawNormalized = xform2 c_th2_drawnormalized+  drawPanelTH1 = xform0 c_th2_drawpanelth1+  bufferEmpty = xform1 c_th2_bufferempty+  evalF = xform2 c_th2_evalf+  fFT = xform2 c_th2_fft+  fill1 = xform1 c_th2_fill1+  fill1w = xform2 c_th2_fill1w+  fillN1 = xform4 c_th2_filln1+  fillRandom = xform2 c_th2_fillrandom+  findBin = xform3 c_th2_findbin+  findFixBin = xform3 c_th2_findfixbin+  findFirstBinAbove = xform2 c_th2_findfirstbinabove+  findLastBinAbove = xform2 c_th2_findlastbinabove+  fitPanelTH1 = xform0 c_th2_fitpanelth1+  getNdivisionA = xform1 c_th2_getndivisiona+  getAxisColorA = xform1 c_th2_getaxiscolora+  getLabelColorA = xform1 c_th2_getlabelcolora+  getLabelFontA = xform1 c_th2_getlabelfonta+  getLabelOffsetA = xform1 c_th2_getlabeloffseta+  getLabelSizeA = xform1 c_th2_getlabelsizea+  getTitleFontA = xform1 c_th2_gettitlefonta+  getTitleOffsetA = xform1 c_th2_gettitleoffseta+  getTitleSizeA = xform1 c_th2_gettitlesizea+  getTickLengthA = xform1 c_th2_getticklengtha+  getBarOffset = xform0 c_th2_getbaroffset+  getBarWidth = xform0 c_th2_getbarwidth+  getContour = xform1 c_th2_getcontour+  getContourLevel = xform1 c_th2_getcontourlevel+  getContourLevelPad = xform1 c_th2_getcontourlevelpad+  getBin = xform3 c_th2_getbin+  getBinCenter = xform1 c_th2_getbincenter+  getBinContent1 = xform1 c_th2_getbincontent1+  getBinContent2 = xform2 c_th2_getbincontent2+  getBinContent3 = xform3 c_th2_getbincontent3+  getBinError1 = xform1 c_th2_getbinerror1+  getBinError2 = xform2 c_th2_getbinerror2+  getBinError3 = xform3 c_th2_getbinerror3+  getBinLowEdge = xform1 c_th2_getbinlowedge+  getBinWidth = xform1 c_th2_getbinwidth+  getCellContent = xform2 c_th2_getcellcontent+  getCellError = xform2 c_th2_getcellerror+  getEntries = xform0 c_th2_getentries+  getEffectiveEntries = xform0 c_th2_geteffectiveentries+  getFunction = xform1 c_th2_getfunction+  getDimension = xform0 c_th2_getdimension+  getKurtosis = xform1 c_th2_getkurtosis+  getLowEdge = xform1 c_th2_getlowedge+  getMaximumTH1 = xform1 c_th2_getmaximumth1+  getMaximumBin = xform0 c_th2_getmaximumbin+  getMaximumStored = xform0 c_th2_getmaximumstored+  getMinimumTH1 = xform1 c_th2_getminimumth1+  getMinimumBin = xform0 c_th2_getminimumbin+  getMinimumStored = xform0 c_th2_getminimumstored+  getMean = xform1 c_th2_getmean+  getMeanError = xform1 c_th2_getmeanerror+  getNbinsX = xform0 c_th2_getnbinsx+  getNbinsY = xform0 c_th2_getnbinsy+  getNbinsZ = xform0 c_th2_getnbinsz+  getQuantilesTH1 = xform3 c_th2_getquantilesth1+  getRandom = xform0 c_th2_getrandom+  getStats = xform1 c_th2_getstats+  getSumOfWeights = xform0 c_th2_getsumofweights+  getSumw2 = xform0 c_th2_getsumw2+  getSumw2N = xform0 c_th2_getsumw2n+  getRMS = xform1 c_th2_getrms+  getRMSError = xform1 c_th2_getrmserror+  getSkewness = xform1 c_th2_getskewness+  integral1 = xform3 c_th2_integral1+  interpolate1 = xform1 c_th2_interpolate1+  interpolate2 = xform2 c_th2_interpolate2+  interpolate3 = xform3 c_th2_interpolate3+  kolmogorovTest = xform2 c_th2_kolmogorovtest+  labelsDeflate = xform1 c_th2_labelsdeflate+  labelsInflate = xform1 c_th2_labelsinflate+  labelsOption = xform2 c_th2_labelsoption+  multiflyF = xform2 c_th2_multiflyf+  multiply = xform5 c_th2_multiply+  putStats = xform1 c_th2_putstats+  rebin = xform3 c_th2_rebin+  rebinAxis = xform2 c_th2_rebinaxis+  rebuild = xform1 c_th2_rebuild+  recursiveRemove = xform1 c_th2_recursiveremove+  reset = xform1 c_th2_reset+  resetStats = xform0 c_th2_resetstats+  scale = xform2 c_th2_scale+  setAxisColorA = xform2 c_th2_setaxiscolora+  setAxisRange = xform3 c_th2_setaxisrange+  setBarOffset = xform1 c_th2_setbaroffset+  setBarWidth = xform1 c_th2_setbarwidth+  setBinContent1 = xform2 c_th2_setbincontent1+  setBinContent2 = xform3 c_th2_setbincontent2+  setBinContent3 = xform4 c_th2_setbincontent3+  setBinError1 = xform2 c_th2_setbinerror1+  setBinError2 = xform3 c_th2_setbinerror2+  setBinError3 = xform4 c_th2_setbinerror3+  setBins1 = xform2 c_th2_setbins1+  setBins2 = xform4 c_th2_setbins2+  setBins3 = xform6 c_th2_setbins3+  setBinsLength = xform1 c_th2_setbinslength+  setBuffer = xform2 c_th2_setbuffer+  setCellContent = xform3 c_th2_setcellcontent+  setContent = xform1 c_th2_setcontent+  setContour = xform2 c_th2_setcontour+  setContourLevel = xform2 c_th2_setcontourlevel+  setDirectory = xform1 c_th2_setdirectory+  setEntries = xform1 c_th2_setentries+  setError = xform1 c_th2_seterror+  setLabelColorA = xform2 c_th2_setlabelcolora+  setLabelSizeA = xform2 c_th2_setlabelsizea+  setLabelFontA = xform2 c_th2_setlabelfonta+  setLabelOffsetA = xform2 c_th2_setlabeloffseta+  setMaximum = xform1 c_th2_setmaximum+  setMinimum = xform1 c_th2_setminimum+  setNormFactor = xform1 c_th2_setnormfactor+  setStats = xform1 c_th2_setstats+  setOption = xform1 c_th2_setoption+  setXTitle = xform1 c_th2_setxtitle+  setYTitle = xform1 c_th2_setytitle+  setZTitle = xform1 c_th2_setztitle+  showBackground = xform2 c_th2_showbackground+  showPeaks = xform3 c_th2_showpeaks+  smooth = xform2 c_th2_smooth+  sumw2 = xform0 c_th2_sumw2+instance ITObject TH2 where+  draw = xform1 c_th2_draw+  findObject = xform1 c_th2_findobject+  getName = xform0 c_th2_getname+  isA = xform0 c_th2_isa+  paint = xform1 c_th2_paint+  printObj = xform1 c_th2_printobj+  saveAs = xform2 c_th2_saveas+  write = xform3 c_th2_write+instance ITAttLine TH2 where+  getLineColor = xform0 c_th2_getlinecolor+  getLineStyle = xform0 c_th2_getlinestyle+  getLineWidth = xform0 c_th2_getlinewidth+  resetAttLine = xform1 c_th2_resetattline+  setLineAttributes = xform0 c_th2_setlineattributes+  setLineColor = xform1 c_th2_setlinecolor+  setLineStyle = xform1 c_th2_setlinestyle+  setLineWidth = xform1 c_th2_setlinewidth+instance ITAttFill TH2 where+  setFillColor = xform1 c_th2_setfillcolor+  setFillStyle = xform1 c_th2_setfillstyle+instance ITAttMarker TH2 where+  getMarkerColor = xform0 c_th2_getmarkercolor+  getMarkerStyle = xform0 c_th2_getmarkerstyle+  getMarkerSize = xform0 c_th2_getmarkersize+  resetAttMarker = xform1 c_th2_resetattmarker+  setMarkerAttributes = xform0 c_th2_setmarkerattributes+  setMarkerColor = xform1 c_th2_setmarkercolor+  setMarkerStyle = xform1 c_th2_setmarkerstyle+  setMarkerSize = xform1 c_th2_setmarkersize+instance IDeletable TH2 where+  delete = xform0 c_th2_delete++instance ITH2 (Exist TH2) where+  fill2 (ETH2 x) = fill2 x+  fill2w (ETH2 x) = fill2w x+  fillN2 (ETH2 x) = fillN2 x+  fillRandom2 (ETH2 x) = fillRandom2 x+  findFirstBinAbove2 (ETH2 x) = findFirstBinAbove2 x+  findLastBinAbove2 (ETH2 x) = findLastBinAbove2 x+  fitSlicesX (ETH2 x) = fitSlicesX x+  fitSlicesY (ETH2 x) = fitSlicesY x+  getCorrelationFactor2 (ETH2 x) = getCorrelationFactor2 x+  getCovariance2 (ETH2 x) = getCovariance2 x+  integral2 (ETH2 x) = integral2 x+  rebinX2 (ETH2 x) = rebinX2 x+  rebinY2 (ETH2 x) = rebinY2 x+  rebin2D (ETH2 x) = rebin2D x+  setShowProjectionX (ETH2 x) = setShowProjectionX x+  setShowProjectionY (ETH2 x) = setShowProjectionY x+instance ITH1 (Exist TH2) where+  add (ETH2 x) = add x+  addBinContent (ETH2 x) = addBinContent x+  chi2Test (ETH2 x) = chi2Test x+  computeIntegral (ETH2 x) = computeIntegral x+  directoryAutoAdd (ETH2 x) = directoryAutoAdd x+  divide (ETH2 x) = divide x+  drawCopyTH1 (ETH2 x) a1 = return . ETH2 =<< drawCopyTH1 x a1+  drawNormalized (ETH2 x) = drawNormalized x+  drawPanelTH1 (ETH2 x) = drawPanelTH1 x+  bufferEmpty (ETH2 x) = bufferEmpty x+  evalF (ETH2 x) = evalF x+  fFT (ETH2 x) = fFT x+  fill1 (ETH2 x) = fill1 x+  fill1w (ETH2 x) = fill1w x+  fillN1 (ETH2 x) = fillN1 x+  fillRandom (ETH2 x) = fillRandom x+  findBin (ETH2 x) = findBin x+  findFixBin (ETH2 x) = findFixBin x+  findFirstBinAbove (ETH2 x) = findFirstBinAbove x+  findLastBinAbove (ETH2 x) = findLastBinAbove x+  fitPanelTH1 (ETH2 x) = fitPanelTH1 x+  getNdivisionA (ETH2 x) = getNdivisionA x+  getAxisColorA (ETH2 x) = getAxisColorA x+  getLabelColorA (ETH2 x) = getLabelColorA x+  getLabelFontA (ETH2 x) = getLabelFontA x+  getLabelOffsetA (ETH2 x) = getLabelOffsetA x+  getLabelSizeA (ETH2 x) = getLabelSizeA x+  getTitleFontA (ETH2 x) = getTitleFontA x+  getTitleOffsetA (ETH2 x) = getTitleOffsetA x+  getTitleSizeA (ETH2 x) = getTitleSizeA x+  getTickLengthA (ETH2 x) = getTickLengthA x+  getBarOffset (ETH2 x) = getBarOffset x+  getBarWidth (ETH2 x) = getBarWidth x+  getContour (ETH2 x) = getContour x+  getContourLevel (ETH2 x) = getContourLevel x+  getContourLevelPad (ETH2 x) = getContourLevelPad x+  getBin (ETH2 x) = getBin x+  getBinCenter (ETH2 x) = getBinCenter x+  getBinContent1 (ETH2 x) = getBinContent1 x+  getBinContent2 (ETH2 x) = getBinContent2 x+  getBinContent3 (ETH2 x) = getBinContent3 x+  getBinError1 (ETH2 x) = getBinError1 x+  getBinError2 (ETH2 x) = getBinError2 x+  getBinError3 (ETH2 x) = getBinError3 x+  getBinLowEdge (ETH2 x) = getBinLowEdge x+  getBinWidth (ETH2 x) = getBinWidth x+  getCellContent (ETH2 x) = getCellContent x+  getCellError (ETH2 x) = getCellError x+  getEntries (ETH2 x) = getEntries x+  getEffectiveEntries (ETH2 x) = getEffectiveEntries x+  getFunction (ETH2 x) = getFunction x+  getDimension (ETH2 x) = getDimension x+  getKurtosis (ETH2 x) = getKurtosis x+  getLowEdge (ETH2 x) = getLowEdge x+  getMaximumTH1 (ETH2 x) = getMaximumTH1 x+  getMaximumBin (ETH2 x) = getMaximumBin x+  getMaximumStored (ETH2 x) = getMaximumStored x+  getMinimumTH1 (ETH2 x) = getMinimumTH1 x+  getMinimumBin (ETH2 x) = getMinimumBin x+  getMinimumStored (ETH2 x) = getMinimumStored x+  getMean (ETH2 x) = getMean x+  getMeanError (ETH2 x) = getMeanError x+  getNbinsX (ETH2 x) = getNbinsX x+  getNbinsY (ETH2 x) = getNbinsY x+  getNbinsZ (ETH2 x) = getNbinsZ x+  getQuantilesTH1 (ETH2 x) = getQuantilesTH1 x+  getRandom (ETH2 x) = getRandom x+  getStats (ETH2 x) = getStats x+  getSumOfWeights (ETH2 x) = getSumOfWeights x+  getSumw2 (ETH2 x) = getSumw2 x+  getSumw2N (ETH2 x) = getSumw2N x+  getRMS (ETH2 x) = getRMS x+  getRMSError (ETH2 x) = getRMSError x+  getSkewness (ETH2 x) = getSkewness x+  integral1 (ETH2 x) = integral1 x+  interpolate1 (ETH2 x) = interpolate1 x+  interpolate2 (ETH2 x) = interpolate2 x+  interpolate3 (ETH2 x) = interpolate3 x+  kolmogorovTest (ETH2 x) = kolmogorovTest x+  labelsDeflate (ETH2 x) = labelsDeflate x+  labelsInflate (ETH2 x) = labelsInflate x+  labelsOption (ETH2 x) = labelsOption x+  multiflyF (ETH2 x) = multiflyF x+  multiply (ETH2 x) = multiply x+  putStats (ETH2 x) = putStats x+  rebin (ETH2 x) = rebin x+  rebinAxis (ETH2 x) = rebinAxis x+  rebuild (ETH2 x) = rebuild x+  recursiveRemove (ETH2 x) = recursiveRemove x+  reset (ETH2 x) = reset x+  resetStats (ETH2 x) = resetStats x+  scale (ETH2 x) = scale x+  setAxisColorA (ETH2 x) = setAxisColorA x+  setAxisRange (ETH2 x) = setAxisRange x+  setBarOffset (ETH2 x) = setBarOffset x+  setBarWidth (ETH2 x) = setBarWidth x+  setBinContent1 (ETH2 x) = setBinContent1 x+  setBinContent2 (ETH2 x) = setBinContent2 x+  setBinContent3 (ETH2 x) = setBinContent3 x+  setBinError1 (ETH2 x) = setBinError1 x+  setBinError2 (ETH2 x) = setBinError2 x+  setBinError3 (ETH2 x) = setBinError3 x+  setBins1 (ETH2 x) = setBins1 x+  setBins2 (ETH2 x) = setBins2 x+  setBins3 (ETH2 x) = setBins3 x+  setBinsLength (ETH2 x) = setBinsLength x+  setBuffer (ETH2 x) = setBuffer x+  setCellContent (ETH2 x) = setCellContent x+  setContent (ETH2 x) = setContent x+  setContour (ETH2 x) = setContour x+  setContourLevel (ETH2 x) = setContourLevel x+  setDirectory (ETH2 x) = setDirectory x+  setEntries (ETH2 x) = setEntries x+  setError (ETH2 x) = setError x+  setLabelColorA (ETH2 x) = setLabelColorA x+  setLabelSizeA (ETH2 x) = setLabelSizeA x+  setLabelFontA (ETH2 x) = setLabelFontA x+  setLabelOffsetA (ETH2 x) = setLabelOffsetA x+  setMaximum (ETH2 x) = setMaximum x+  setMinimum (ETH2 x) = setMinimum x+  setNormFactor (ETH2 x) = setNormFactor x+  setStats (ETH2 x) = setStats x+  setOption (ETH2 x) = setOption x+  setXTitle (ETH2 x) = setXTitle x+  setYTitle (ETH2 x) = setYTitle x+  setZTitle (ETH2 x) = setZTitle x+  showBackground (ETH2 x) = showBackground x+  showPeaks (ETH2 x) = showPeaks x+  smooth (ETH2 x) = smooth x+  sumw2 (ETH2 x) = sumw2 x+instance ITObject (Exist TH2) where+  draw (ETH2 x) = draw x+  findObject (ETH2 x) = findObject x+  getName (ETH2 x) = getName x+  isA (ETH2 x) = isA x+  paint (ETH2 x) = paint x+  printObj (ETH2 x) = printObj x+  saveAs (ETH2 x) = saveAs x+  write (ETH2 x) = write x+instance ITAttLine (Exist TH2) where+  getLineColor (ETH2 x) = getLineColor x+  getLineStyle (ETH2 x) = getLineStyle x+  getLineWidth (ETH2 x) = getLineWidth x+  resetAttLine (ETH2 x) = resetAttLine x+  setLineAttributes (ETH2 x) = setLineAttributes x+  setLineColor (ETH2 x) = setLineColor x+  setLineStyle (ETH2 x) = setLineStyle x+  setLineWidth (ETH2 x) = setLineWidth x+instance ITAttFill (Exist TH2) where+  setFillColor (ETH2 x) = setFillColor x+  setFillStyle (ETH2 x) = setFillStyle x+instance ITAttMarker (Exist TH2) where+  getMarkerColor (ETH2 x) = getMarkerColor x+  getMarkerStyle (ETH2 x) = getMarkerStyle x+  getMarkerSize (ETH2 x) = getMarkerSize x+  resetAttMarker (ETH2 x) = resetAttMarker x+  setMarkerAttributes (ETH2 x) = setMarkerAttributes x+  setMarkerColor (ETH2 x) = setMarkerColor x+  setMarkerStyle (ETH2 x) = setMarkerStyle x+  setMarkerSize (ETH2 x) = setMarkerSize x+instance IDeletable (Exist TH2) where+  delete (ETH2 x) = delete x++++tH2ProjectionX :: TH2 -> CString -> CInt -> CInt -> CString -> IO TH1D+tH2ProjectionX = xform4 c_th2_th2projectionx++tH2ProjectionY :: TH2 -> CString -> CInt -> CInt -> CString -> IO TH1D+tH2ProjectionY = xform4 c_th2_th2projectiony++++instance FPtr (Exist TH2) where+  type Raw (Exist TH2) = RawTH2+  get_fptr (ETH2 obj) = castForeignPtr (get_fptr obj)+  cast_fptr_to_obj fptr = ETH2 (cast_fptr_to_obj (fptr :: ForeignPtr RawTH2) :: TH2)
+ src/HROOT/Hist/TH2/Interface.hs view
@@ -0,0 +1,95 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++-- module HROOT.Class.Interface where++module HROOT.Hist.TH2.Interface where+++import Data.Word+import Foreign.C+import Foreign.Ptr+import Foreign.ForeignPtr+import FFICXX.Runtime.Cast++import HROOT.Hist.TH2.RawType+import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH1.Interface+import HROOT.Core.TObjArray.Interface+---- ============ ----+import {-# SOURCE #-} HROOT.Hist.TF1.Interface+++class (ITH1 a) => ITH2 a where+    -- | +    --   > Int_t    Fill(Double_t x, Double_t y);++    fill2 :: a -> CDouble -> CDouble -> IO CInt ++    fill2w :: a -> CDouble -> CDouble -> CDouble -> IO CInt ++    fillN2 :: a -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO () +    -- | +    --   > void     FillRandom(TH1 *h, Int_t ntimes=5000);+    --   ++    fillRandom2 :: (ITH1 c0, FPtr c0) => a -> c0 -> CInt -> IO () +    -- | +    --   > Int_t    FindFirstBinAbove(Double_t threshold=0, Int_t axis=1) const;+    --   ++    findFirstBinAbove2 :: a -> CDouble -> CInt -> IO CInt +    -- | +    --   > Int_t    FindLastBinAbove (Double_t threshold=0, Int_t axis=1) const;+    --   ++    findLastBinAbove2 :: a -> CDouble -> CInt -> IO CInt +    -- | +    --   > void     FitSlicesX(TF1 *f1=0,Int_t firstybin=0, Int_t lastybin=-1, Int_t cut=0, Option_t *option="QNR", TObjArray* arr = 0); // *MENU*+    --   ++    fitSlicesX :: (ITObjArray c1, FPtr c1, ITF1 c0, FPtr c0) => a -> c0 -> CInt -> CInt -> CInt -> CString -> c1 -> IO () +    -- | +    --   > void     FitSlicesY(TF1 *f1=0,Int_t firstxbin=0, Int_t lastxbin=-1, Int_t cut=0, Option_t *option="QNR", TObjArray* arr = 0); // *MENU*+    --   ++    fitSlicesY :: (ITObjArray c1, FPtr c1, ITF1 c0, FPtr c0) => a -> c0 -> CInt -> CInt -> CInt -> CString -> c1 -> IO () ++    getCorrelationFactor2 :: a -> CInt -> CInt -> IO CDouble ++    getCovariance2 :: a -> CInt -> CInt -> IO CDouble ++    integral2 :: a -> CInt -> CInt -> CInt -> CInt -> CString -> IO CDouble ++    rebinX2 :: a -> CInt -> CString -> IO TH2 ++    rebinY2 :: a -> CInt -> CString -> IO TH2 +    -- | +    --   > TH2     *Rebin2D(Int_t nxgroup=2, Int_t nygroup=2, const char *newname="");     +    --   ++    rebin2D :: a -> CInt -> CInt -> CString -> IO TH2 +    -- | +    --   > void     SetShowProjectionX(Int_t nbins);  // *MENU*+    --   ++    setShowProjectionX :: a -> CInt -> IO () +    -- | +    --   > void     SetShowProjectionY(Int_t nbins);  // *MENU*+    --   ++    setShowProjectionY :: a -> CInt -> IO () ++instance Existable TH2 where+  data Exist TH2 = forall a. (FPtr a, ITH2 a) => ETH2 a++upcastTH2 :: (FPtr a, ITH2 a) => a -> TH2+upcastTH2 h = let fh = get_fptr h+                  fh2 :: ForeignPtr RawTH2 = castForeignPtr fh+              in cast_fptr_to_obj fh2++downcastTH2 :: (FPtr a, ITH2 a) => TH2 -> a +downcastTH2 h = let fh = get_fptr h+                    fh2 = castForeignPtr fh+                in cast_fptr_to_obj fh2
+ src/HROOT/Hist/TH2/RawType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++module HROOT.Hist.TH2.RawType where+++import Foreign.ForeignPtr+import FFICXX.Runtime.Cast  ++data RawTH2+newtype TH2 = TH2 (ForeignPtr RawTH2) deriving (Eq, Ord, Show)+instance FPtr TH2 where+   type Raw TH2 = RawTH2+   get_fptr (TH2 fptr) = fptr+   cast_fptr_to_obj = TH2
+ src/HROOT/Hist/TH2C.hs view
@@ -0,0 +1,15 @@+module HROOT.Hist.TH2C+  (+    TH2C(..)+  , ITH2C+  , upcastTH2C+  , downcastTH2C++ +  ) where++import HROOT.Hist.TH2C.RawType+import HROOT.Hist.TH2C.Interface+import HROOT.Hist.TH2C.Implementation++
+ src/HROOT/Hist/TH2C/Cast.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeFamilies, +             MultiParamTypeClasses, OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH2C.Cast where+++import Foreign.Ptr+import Foreign.ForeignPtr (castForeignPtr, newForeignPtr_)+import Foreign.ForeignPtr.Unsafe+import FFICXX.Runtime.Cast+import System.IO.Unsafe++import HROOT.Hist.TH2C.RawType+import HROOT.Hist.TH2C.Interface++instance (ITH2C a, FPtr a) => Castable a (Ptr RawTH2C) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ ++instance Castable TH2C (Ptr RawTH2C) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+ src/HROOT/Hist/TH2C/FFI.hsc view
@@ -0,0 +1,547 @@+{-# LANGUAGE ForeignFunctionInterface #-}++-- module HROOT.Class.FFI where++module HROOT.Hist.TH2C.FFI where+++import Foreign.C            +import Foreign.Ptr++-- import HROOT.Class.Interface++-- #include ""++import HROOT.Hist.TH2C.RawType+import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH2.RawType+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TF1.RawType+import HROOT.Core.TObjArray.RawType+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TArrayD.RawType+import HROOT.Hist.TAxis.RawType+import HROOT.Core.TObject.RawType+import HROOT.Core.TClass.RawType++#include "HROOTHistTH2C.h"++foreign import ccall "HROOTHistTH2C.h TH2C_fill2" c_th2c_fill2 +  :: (Ptr RawTH2C) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2C.h TH2C_fill2w" c_th2c_fill2w +  :: (Ptr RawTH2C) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2C.h TH2C_fillN2" c_th2c_filln2 +  :: (Ptr RawTH2C) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_fillRandom2" c_th2c_fillrandom2 +  :: (Ptr RawTH2C) -> (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_findFirstBinAbove2" c_th2c_findfirstbinabove2 +  :: (Ptr RawTH2C) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2C.h TH2C_findLastBinAbove2" c_th2c_findlastbinabove2 +  :: (Ptr RawTH2C) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2C.h TH2C_FitSlicesX" c_th2c_fitslicesx +  :: (Ptr RawTH2C) -> (Ptr RawTF1) -> CInt -> CInt -> CInt -> CString -> (Ptr RawTObjArray) -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_FitSlicesY" c_th2c_fitslicesy +  :: (Ptr RawTH2C) -> (Ptr RawTF1) -> CInt -> CInt -> CInt -> CString -> (Ptr RawTObjArray) -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_getCorrelationFactor2" c_th2c_getcorrelationfactor2 +  :: (Ptr RawTH2C) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_getCovariance2" c_th2c_getcovariance2 +  :: (Ptr RawTH2C) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_integral2" c_th2c_integral2 +  :: (Ptr RawTH2C) -> CInt -> CInt -> CInt -> CInt -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_rebinX2" c_th2c_rebinx2 +  :: (Ptr RawTH2C) -> CInt -> CString -> IO (Ptr RawTH2)++foreign import ccall "HROOTHistTH2C.h TH2C_rebinY2" c_th2c_rebiny2 +  :: (Ptr RawTH2C) -> CInt -> CString -> IO (Ptr RawTH2)++foreign import ccall "HROOTHistTH2C.h TH2C_Rebin2D" c_th2c_rebin2d +  :: (Ptr RawTH2C) -> CInt -> CInt -> CString -> IO (Ptr RawTH2)++foreign import ccall "HROOTHistTH2C.h TH2C_SetShowProjectionX" c_th2c_setshowprojectionx +  :: (Ptr RawTH2C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetShowProjectionY" c_th2c_setshowprojectiony +  :: (Ptr RawTH2C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_Add" c_th2c_add +  :: (Ptr RawTH2C) -> (Ptr RawTH1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_AddBinContent" c_th2c_addbincontent +  :: (Ptr RawTH2C) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_Chi2Test" c_th2c_chi2test +  :: (Ptr RawTH2C) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_ComputeIntegral" c_th2c_computeintegral +  :: (Ptr RawTH2C) -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_DirectoryAutoAdd" c_th2c_directoryautoadd +  :: (Ptr RawTH2C) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_Divide" c_th2c_divide +  :: (Ptr RawTH2C) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_drawCopyTH1" c_th2c_drawcopyth1 +  :: (Ptr RawTH2C) -> CString -> IO (Ptr RawTH2C)++foreign import ccall "HROOTHistTH2C.h TH2C_DrawNormalized" c_th2c_drawnormalized +  :: (Ptr RawTH2C) -> CString -> CDouble -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH2C.h TH2C_drawPanelTH1" c_th2c_drawpanelth1 +  :: (Ptr RawTH2C) -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_BufferEmpty" c_th2c_bufferempty +  :: (Ptr RawTH2C) -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2C.h TH2C_evalF" c_th2c_evalf +  :: (Ptr RawTH2C) -> (Ptr RawTF1) -> CString -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_FFT" c_th2c_fft +  :: (Ptr RawTH2C) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH2C.h TH2C_fill1" c_th2c_fill1 +  :: (Ptr RawTH2C) -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2C.h TH2C_fill1w" c_th2c_fill1w +  :: (Ptr RawTH2C) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2C.h TH2C_fillN1" c_th2c_filln1 +  :: (Ptr RawTH2C) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_FillRandom" c_th2c_fillrandom +  :: (Ptr RawTH2C) -> (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_FindBin" c_th2c_findbin +  :: (Ptr RawTH2C) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2C.h TH2C_FindFixBin" c_th2c_findfixbin +  :: (Ptr RawTH2C) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2C.h TH2C_FindFirstBinAbove" c_th2c_findfirstbinabove +  :: (Ptr RawTH2C) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2C.h TH2C_FindLastBinAbove" c_th2c_findlastbinabove +  :: (Ptr RawTH2C) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2C.h TH2C_FitPanelTH1" c_th2c_fitpanelth1 +  :: (Ptr RawTH2C) -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_getNdivisionA" c_th2c_getndivisiona +  :: (Ptr RawTH2C) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2C.h TH2C_getAxisColorA" c_th2c_getaxiscolora +  :: (Ptr RawTH2C) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2C.h TH2C_getLabelColorA" c_th2c_getlabelcolora +  :: (Ptr RawTH2C) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2C.h TH2C_getLabelFontA" c_th2c_getlabelfonta +  :: (Ptr RawTH2C) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2C.h TH2C_getLabelOffsetA" c_th2c_getlabeloffseta +  :: (Ptr RawTH2C) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_getLabelSizeA" c_th2c_getlabelsizea +  :: (Ptr RawTH2C) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_getTitleFontA" c_th2c_gettitlefonta +  :: (Ptr RawTH2C) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2C.h TH2C_getTitleOffsetA" c_th2c_gettitleoffseta +  :: (Ptr RawTH2C) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_getTitleSizeA" c_th2c_gettitlesizea +  :: (Ptr RawTH2C) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_getTickLengthA" c_th2c_getticklengtha +  :: (Ptr RawTH2C) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_GetBarOffset" c_th2c_getbaroffset +  :: (Ptr RawTH2C) -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_GetBarWidth" c_th2c_getbarwidth +  :: (Ptr RawTH2C) -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_GetContour" c_th2c_getcontour +  :: (Ptr RawTH2C) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH2C.h TH2C_GetContourLevel" c_th2c_getcontourlevel +  :: (Ptr RawTH2C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_GetContourLevelPad" c_th2c_getcontourlevelpad +  :: (Ptr RawTH2C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_GetBin" c_th2c_getbin +  :: (Ptr RawTH2C) -> CInt -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2C.h TH2C_GetBinCenter" c_th2c_getbincenter +  :: (Ptr RawTH2C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_GetBinContent1" c_th2c_getbincontent1 +  :: (Ptr RawTH2C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_GetBinContent2" c_th2c_getbincontent2 +  :: (Ptr RawTH2C) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_GetBinContent3" c_th2c_getbincontent3 +  :: (Ptr RawTH2C) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_GetBinError1" c_th2c_getbinerror1 +  :: (Ptr RawTH2C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_GetBinError2" c_th2c_getbinerror2 +  :: (Ptr RawTH2C) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_GetBinError3" c_th2c_getbinerror3 +  :: (Ptr RawTH2C) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_GetBinLowEdge" c_th2c_getbinlowedge +  :: (Ptr RawTH2C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_GetBinWidth" c_th2c_getbinwidth +  :: (Ptr RawTH2C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_GetCellContent" c_th2c_getcellcontent +  :: (Ptr RawTH2C) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_GetCellError" c_th2c_getcellerror +  :: (Ptr RawTH2C) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_GetEntries" c_th2c_getentries +  :: (Ptr RawTH2C) -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_GetEffectiveEntries" c_th2c_geteffectiveentries +  :: (Ptr RawTH2C) -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_GetFunction" c_th2c_getfunction +  :: (Ptr RawTH2C) -> CString -> IO (Ptr RawTF1)++foreign import ccall "HROOTHistTH2C.h TH2C_GetDimension" c_th2c_getdimension +  :: (Ptr RawTH2C) -> IO CInt++foreign import ccall "HROOTHistTH2C.h TH2C_GetKurtosis" c_th2c_getkurtosis +  :: (Ptr RawTH2C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_GetLowEdge" c_th2c_getlowedge +  :: (Ptr RawTH2C) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_getMaximumTH1" c_th2c_getmaximumth1 +  :: (Ptr RawTH2C) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_GetMaximumBin" c_th2c_getmaximumbin +  :: (Ptr RawTH2C) -> IO CInt++foreign import ccall "HROOTHistTH2C.h TH2C_GetMaximumStored" c_th2c_getmaximumstored +  :: (Ptr RawTH2C) -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_getMinimumTH1" c_th2c_getminimumth1 +  :: (Ptr RawTH2C) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_GetMinimumBin" c_th2c_getminimumbin +  :: (Ptr RawTH2C) -> IO CInt++foreign import ccall "HROOTHistTH2C.h TH2C_GetMinimumStored" c_th2c_getminimumstored +  :: (Ptr RawTH2C) -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_GetMean" c_th2c_getmean +  :: (Ptr RawTH2C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_GetMeanError" c_th2c_getmeanerror +  :: (Ptr RawTH2C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_GetNbinsX" c_th2c_getnbinsx +  :: (Ptr RawTH2C) -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_GetNbinsY" c_th2c_getnbinsy +  :: (Ptr RawTH2C) -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_GetNbinsZ" c_th2c_getnbinsz +  :: (Ptr RawTH2C) -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_getQuantilesTH1" c_th2c_getquantilesth1 +  :: (Ptr RawTH2C) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH2C.h TH2C_GetRandom" c_th2c_getrandom +  :: (Ptr RawTH2C) -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_GetStats" c_th2c_getstats +  :: (Ptr RawTH2C) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_GetSumOfWeights" c_th2c_getsumofweights +  :: (Ptr RawTH2C) -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_GetSumw2" c_th2c_getsumw2 +  :: (Ptr RawTH2C) -> IO (Ptr RawTArrayD)++foreign import ccall "HROOTHistTH2C.h TH2C_GetSumw2N" c_th2c_getsumw2n +  :: (Ptr RawTH2C) -> IO CInt++foreign import ccall "HROOTHistTH2C.h TH2C_GetRMS" c_th2c_getrms +  :: (Ptr RawTH2C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_GetRMSError" c_th2c_getrmserror +  :: (Ptr RawTH2C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_GetSkewness" c_th2c_getskewness +  :: (Ptr RawTH2C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_integral1" c_th2c_integral1 +  :: (Ptr RawTH2C) -> CInt -> CInt -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_interpolate1" c_th2c_interpolate1 +  :: (Ptr RawTH2C) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_interpolate2" c_th2c_interpolate2 +  :: (Ptr RawTH2C) -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_interpolate3" c_th2c_interpolate3 +  :: (Ptr RawTH2C) -> CDouble -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_KolmogorovTest" c_th2c_kolmogorovtest +  :: (Ptr RawTH2C) -> (Ptr RawTH1) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_LabelsDeflate" c_th2c_labelsdeflate +  :: (Ptr RawTH2C) -> CString -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_LabelsInflate" c_th2c_labelsinflate +  :: (Ptr RawTH2C) -> CString -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_LabelsOption" c_th2c_labelsoption +  :: (Ptr RawTH2C) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_multiflyF" c_th2c_multiflyf +  :: (Ptr RawTH2C) -> (Ptr RawTF1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_Multiply" c_th2c_multiply +  :: (Ptr RawTH2C) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_PutStats" c_th2c_putstats +  :: (Ptr RawTH2C) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_Rebin" c_th2c_rebin +  :: (Ptr RawTH2C) -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH2C.h TH2C_RebinAxis" c_th2c_rebinaxis +  :: (Ptr RawTH2C) -> CDouble -> (Ptr RawTAxis) -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_Rebuild" c_th2c_rebuild +  :: (Ptr RawTH2C) -> CString -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_RecursiveRemove" c_th2c_recursiveremove +  :: (Ptr RawTH2C) -> (Ptr RawTObject) -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_Reset" c_th2c_reset +  :: (Ptr RawTH2C) -> CString -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_ResetStats" c_th2c_resetstats +  :: (Ptr RawTH2C) -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_Scale" c_th2c_scale +  :: (Ptr RawTH2C) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_setAxisColorA" c_th2c_setaxiscolora +  :: (Ptr RawTH2C) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetAxisRange" c_th2c_setaxisrange +  :: (Ptr RawTH2C) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetBarOffset" c_th2c_setbaroffset +  :: (Ptr RawTH2C) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetBarWidth" c_th2c_setbarwidth +  :: (Ptr RawTH2C) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_setBinContent1" c_th2c_setbincontent1 +  :: (Ptr RawTH2C) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_setBinContent2" c_th2c_setbincontent2 +  :: (Ptr RawTH2C) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_setBinContent3" c_th2c_setbincontent3 +  :: (Ptr RawTH2C) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_setBinError1" c_th2c_setbinerror1 +  :: (Ptr RawTH2C) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_setBinError2" c_th2c_setbinerror2 +  :: (Ptr RawTH2C) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_setBinError3" c_th2c_setbinerror3 +  :: (Ptr RawTH2C) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_setBins1" c_th2c_setbins1 +  :: (Ptr RawTH2C) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_setBins2" c_th2c_setbins2 +  :: (Ptr RawTH2C) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_setBins3" c_th2c_setbins3 +  :: (Ptr RawTH2C) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetBinsLength" c_th2c_setbinslength +  :: (Ptr RawTH2C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetBuffer" c_th2c_setbuffer +  :: (Ptr RawTH2C) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetCellContent" c_th2c_setcellcontent +  :: (Ptr RawTH2C) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetContent" c_th2c_setcontent +  :: (Ptr RawTH2C) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetContour" c_th2c_setcontour +  :: (Ptr RawTH2C) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetContourLevel" c_th2c_setcontourlevel +  :: (Ptr RawTH2C) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetDirectory" c_th2c_setdirectory +  :: (Ptr RawTH2C) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetEntries" c_th2c_setentries +  :: (Ptr RawTH2C) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetError" c_th2c_seterror +  :: (Ptr RawTH2C) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_setLabelColorA" c_th2c_setlabelcolora +  :: (Ptr RawTH2C) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_setLabelSizeA" c_th2c_setlabelsizea +  :: (Ptr RawTH2C) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_setLabelFontA" c_th2c_setlabelfonta +  :: (Ptr RawTH2C) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_setLabelOffsetA" c_th2c_setlabeloffseta +  :: (Ptr RawTH2C) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetMaximum" c_th2c_setmaximum +  :: (Ptr RawTH2C) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetMinimum" c_th2c_setminimum +  :: (Ptr RawTH2C) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetNormFactor" c_th2c_setnormfactor +  :: (Ptr RawTH2C) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetStats" c_th2c_setstats +  :: (Ptr RawTH2C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetOption" c_th2c_setoption +  :: (Ptr RawTH2C) -> CString -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetXTitle" c_th2c_setxtitle +  :: (Ptr RawTH2C) -> CString -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetYTitle" c_th2c_setytitle +  :: (Ptr RawTH2C) -> CString -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetZTitle" c_th2c_setztitle +  :: (Ptr RawTH2C) -> CString -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_ShowBackground" c_th2c_showbackground +  :: (Ptr RawTH2C) -> CInt -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH2C.h TH2C_ShowPeaks" c_th2c_showpeaks +  :: (Ptr RawTH2C) -> CDouble -> CString -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2C.h TH2C_Smooth" c_th2c_smooth +  :: (Ptr RawTH2C) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_Sumw2" c_th2c_sumw2 +  :: (Ptr RawTH2C) -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_Draw" c_th2c_draw +  :: (Ptr RawTH2C) -> CString -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_FindObject" c_th2c_findobject +  :: (Ptr RawTH2C) -> CString -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTH2C.h TH2C_GetName" c_th2c_getname +  :: (Ptr RawTH2C) -> IO CString++foreign import ccall "HROOTHistTH2C.h TH2C_IsA" c_th2c_isa +  :: (Ptr RawTH2C) -> IO (Ptr RawTClass)++foreign import ccall "HROOTHistTH2C.h TH2C_Paint" c_th2c_paint +  :: (Ptr RawTH2C) -> CString -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_printObj" c_th2c_printobj +  :: (Ptr RawTH2C) -> CString -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SaveAs" c_th2c_saveas +  :: (Ptr RawTH2C) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_Write" c_th2c_write +  :: (Ptr RawTH2C) -> CString -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2C.h TH2C_GetLineColor" c_th2c_getlinecolor +  :: (Ptr RawTH2C) -> IO CInt++foreign import ccall "HROOTHistTH2C.h TH2C_GetLineStyle" c_th2c_getlinestyle +  :: (Ptr RawTH2C) -> IO CInt++foreign import ccall "HROOTHistTH2C.h TH2C_GetLineWidth" c_th2c_getlinewidth +  :: (Ptr RawTH2C) -> IO CInt++foreign import ccall "HROOTHistTH2C.h TH2C_ResetAttLine" c_th2c_resetattline +  :: (Ptr RawTH2C) -> CString -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetLineAttributes" c_th2c_setlineattributes +  :: (Ptr RawTH2C) -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetLineColor" c_th2c_setlinecolor +  :: (Ptr RawTH2C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetLineStyle" c_th2c_setlinestyle +  :: (Ptr RawTH2C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetLineWidth" c_th2c_setlinewidth +  :: (Ptr RawTH2C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetFillColor" c_th2c_setfillcolor +  :: (Ptr RawTH2C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetFillStyle" c_th2c_setfillstyle +  :: (Ptr RawTH2C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_GetMarkerColor" c_th2c_getmarkercolor +  :: (Ptr RawTH2C) -> IO CInt++foreign import ccall "HROOTHistTH2C.h TH2C_GetMarkerStyle" c_th2c_getmarkerstyle +  :: (Ptr RawTH2C) -> IO CInt++foreign import ccall "HROOTHistTH2C.h TH2C_GetMarkerSize" c_th2c_getmarkersize +  :: (Ptr RawTH2C) -> IO CDouble++foreign import ccall "HROOTHistTH2C.h TH2C_ResetAttMarker" c_th2c_resetattmarker +  :: (Ptr RawTH2C) -> CString -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetMarkerAttributes" c_th2c_setmarkerattributes +  :: (Ptr RawTH2C) -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetMarkerColor" c_th2c_setmarkercolor +  :: (Ptr RawTH2C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetMarkerStyle" c_th2c_setmarkerstyle +  :: (Ptr RawTH2C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_SetMarkerSize" c_th2c_setmarkersize +  :: (Ptr RawTH2C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2C.h TH2C_delete" c_th2c_delete +  :: (Ptr RawTH2C) -> IO ()+
+ src/HROOT/Hist/TH2C/Implementation.hs view
@@ -0,0 +1,451 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, +             OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH2C.Implementation where+++import FFICXX.Runtime.Cast++import HROOT.Hist.TH2C.RawType+import HROOT.Hist.TH2C.FFI+import HROOT.Hist.TH2C.Interface+import HROOT.Hist.TH2C.Cast+import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH1D.Cast+import HROOT.Hist.TH1D.Interface+import HROOT.Hist.TF1.RawType+import HROOT.Hist.TF1.Cast+import HROOT.Hist.TF1.Interface+import HROOT.Core.TObjArray.RawType+import HROOT.Core.TObjArray.Cast+import HROOT.Core.TObjArray.Interface+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TDirectory.Cast+import HROOT.Core.TDirectory.Interface+import HROOT.Core.TArrayD.RawType+import HROOT.Core.TArrayD.Cast+import HROOT.Core.TArrayD.Interface+import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.Cast+import HROOT.Hist.TAxis.Interface+import HROOT.Core.TClass.RawType+import HROOT.Core.TClass.Cast+import HROOT.Core.TClass.Interface+import HROOT.Hist.TH2.RawType+import HROOT.Hist.TH2.Cast+import HROOT.Hist.TH2.Interface+import HROOT.Core.TArrayC.RawType+import HROOT.Core.TArrayC.Cast+import HROOT.Core.TArrayC.Interface+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH1.Cast+import HROOT.Hist.TH1.Interface+import HROOT.Core.TObject.RawType+import HROOT.Core.TObject.Cast+import HROOT.Core.TObject.Interface+import HROOT.Core.TAttLine.RawType+import HROOT.Core.TAttLine.Cast+import HROOT.Core.TAttLine.Interface+import HROOT.Core.TAttFill.RawType+import HROOT.Core.TAttFill.Cast+import HROOT.Core.TAttFill.Interface+import HROOT.Core.TAttMarker.RawType+import HROOT.Core.TAttMarker.Cast+import HROOT.Core.TAttMarker.Interface+import HROOT.Core.Deletable.RawType+import HROOT.Core.Deletable.Cast+import HROOT.Core.Deletable.Interface+import HROOT.Core.TArray.RawType+import HROOT.Core.TArray.Cast+import HROOT.Core.TArray.Interface++import Data.Word+import Foreign.C+import Foreign.Ptr +import Foreign.ForeignPtr++import System.IO.Unsafe+++instance ITH2C TH2C where+instance ITH2 TH2C where+  fill2 = xform2 c_th2c_fill2+  fill2w = xform3 c_th2c_fill2w+  fillN2 = xform5 c_th2c_filln2+  fillRandom2 = xform2 c_th2c_fillrandom2+  findFirstBinAbove2 = xform2 c_th2c_findfirstbinabove2+  findLastBinAbove2 = xform2 c_th2c_findlastbinabove2+  fitSlicesX = xform6 c_th2c_fitslicesx+  fitSlicesY = xform6 c_th2c_fitslicesy+  getCorrelationFactor2 = xform2 c_th2c_getcorrelationfactor2+  getCovariance2 = xform2 c_th2c_getcovariance2+  integral2 = xform5 c_th2c_integral2+  rebinX2 = xform2 c_th2c_rebinx2+  rebinY2 = xform2 c_th2c_rebiny2+  rebin2D = xform3 c_th2c_rebin2d+  setShowProjectionX = xform1 c_th2c_setshowprojectionx+  setShowProjectionY = xform1 c_th2c_setshowprojectiony+instance ITArrayC TH2C where+instance ITH1 TH2C where+  add = xform2 c_th2c_add+  addBinContent = xform2 c_th2c_addbincontent+  chi2Test = xform3 c_th2c_chi2test+  computeIntegral = xform0 c_th2c_computeintegral+  directoryAutoAdd = xform1 c_th2c_directoryautoadd+  divide = xform5 c_th2c_divide+  drawCopyTH1 = xform1 c_th2c_drawcopyth1+  drawNormalized = xform2 c_th2c_drawnormalized+  drawPanelTH1 = xform0 c_th2c_drawpanelth1+  bufferEmpty = xform1 c_th2c_bufferempty+  evalF = xform2 c_th2c_evalf+  fFT = xform2 c_th2c_fft+  fill1 = xform1 c_th2c_fill1+  fill1w = xform2 c_th2c_fill1w+  fillN1 = xform4 c_th2c_filln1+  fillRandom = xform2 c_th2c_fillrandom+  findBin = xform3 c_th2c_findbin+  findFixBin = xform3 c_th2c_findfixbin+  findFirstBinAbove = xform2 c_th2c_findfirstbinabove+  findLastBinAbove = xform2 c_th2c_findlastbinabove+  fitPanelTH1 = xform0 c_th2c_fitpanelth1+  getNdivisionA = xform1 c_th2c_getndivisiona+  getAxisColorA = xform1 c_th2c_getaxiscolora+  getLabelColorA = xform1 c_th2c_getlabelcolora+  getLabelFontA = xform1 c_th2c_getlabelfonta+  getLabelOffsetA = xform1 c_th2c_getlabeloffseta+  getLabelSizeA = xform1 c_th2c_getlabelsizea+  getTitleFontA = xform1 c_th2c_gettitlefonta+  getTitleOffsetA = xform1 c_th2c_gettitleoffseta+  getTitleSizeA = xform1 c_th2c_gettitlesizea+  getTickLengthA = xform1 c_th2c_getticklengtha+  getBarOffset = xform0 c_th2c_getbaroffset+  getBarWidth = xform0 c_th2c_getbarwidth+  getContour = xform1 c_th2c_getcontour+  getContourLevel = xform1 c_th2c_getcontourlevel+  getContourLevelPad = xform1 c_th2c_getcontourlevelpad+  getBin = xform3 c_th2c_getbin+  getBinCenter = xform1 c_th2c_getbincenter+  getBinContent1 = xform1 c_th2c_getbincontent1+  getBinContent2 = xform2 c_th2c_getbincontent2+  getBinContent3 = xform3 c_th2c_getbincontent3+  getBinError1 = xform1 c_th2c_getbinerror1+  getBinError2 = xform2 c_th2c_getbinerror2+  getBinError3 = xform3 c_th2c_getbinerror3+  getBinLowEdge = xform1 c_th2c_getbinlowedge+  getBinWidth = xform1 c_th2c_getbinwidth+  getCellContent = xform2 c_th2c_getcellcontent+  getCellError = xform2 c_th2c_getcellerror+  getEntries = xform0 c_th2c_getentries+  getEffectiveEntries = xform0 c_th2c_geteffectiveentries+  getFunction = xform1 c_th2c_getfunction+  getDimension = xform0 c_th2c_getdimension+  getKurtosis = xform1 c_th2c_getkurtosis+  getLowEdge = xform1 c_th2c_getlowedge+  getMaximumTH1 = xform1 c_th2c_getmaximumth1+  getMaximumBin = xform0 c_th2c_getmaximumbin+  getMaximumStored = xform0 c_th2c_getmaximumstored+  getMinimumTH1 = xform1 c_th2c_getminimumth1+  getMinimumBin = xform0 c_th2c_getminimumbin+  getMinimumStored = xform0 c_th2c_getminimumstored+  getMean = xform1 c_th2c_getmean+  getMeanError = xform1 c_th2c_getmeanerror+  getNbinsX = xform0 c_th2c_getnbinsx+  getNbinsY = xform0 c_th2c_getnbinsy+  getNbinsZ = xform0 c_th2c_getnbinsz+  getQuantilesTH1 = xform3 c_th2c_getquantilesth1+  getRandom = xform0 c_th2c_getrandom+  getStats = xform1 c_th2c_getstats+  getSumOfWeights = xform0 c_th2c_getsumofweights+  getSumw2 = xform0 c_th2c_getsumw2+  getSumw2N = xform0 c_th2c_getsumw2n+  getRMS = xform1 c_th2c_getrms+  getRMSError = xform1 c_th2c_getrmserror+  getSkewness = xform1 c_th2c_getskewness+  integral1 = xform3 c_th2c_integral1+  interpolate1 = xform1 c_th2c_interpolate1+  interpolate2 = xform2 c_th2c_interpolate2+  interpolate3 = xform3 c_th2c_interpolate3+  kolmogorovTest = xform2 c_th2c_kolmogorovtest+  labelsDeflate = xform1 c_th2c_labelsdeflate+  labelsInflate = xform1 c_th2c_labelsinflate+  labelsOption = xform2 c_th2c_labelsoption+  multiflyF = xform2 c_th2c_multiflyf+  multiply = xform5 c_th2c_multiply+  putStats = xform1 c_th2c_putstats+  rebin = xform3 c_th2c_rebin+  rebinAxis = xform2 c_th2c_rebinaxis+  rebuild = xform1 c_th2c_rebuild+  recursiveRemove = xform1 c_th2c_recursiveremove+  reset = xform1 c_th2c_reset+  resetStats = xform0 c_th2c_resetstats+  scale = xform2 c_th2c_scale+  setAxisColorA = xform2 c_th2c_setaxiscolora+  setAxisRange = xform3 c_th2c_setaxisrange+  setBarOffset = xform1 c_th2c_setbaroffset+  setBarWidth = xform1 c_th2c_setbarwidth+  setBinContent1 = xform2 c_th2c_setbincontent1+  setBinContent2 = xform3 c_th2c_setbincontent2+  setBinContent3 = xform4 c_th2c_setbincontent3+  setBinError1 = xform2 c_th2c_setbinerror1+  setBinError2 = xform3 c_th2c_setbinerror2+  setBinError3 = xform4 c_th2c_setbinerror3+  setBins1 = xform2 c_th2c_setbins1+  setBins2 = xform4 c_th2c_setbins2+  setBins3 = xform6 c_th2c_setbins3+  setBinsLength = xform1 c_th2c_setbinslength+  setBuffer = xform2 c_th2c_setbuffer+  setCellContent = xform3 c_th2c_setcellcontent+  setContent = xform1 c_th2c_setcontent+  setContour = xform2 c_th2c_setcontour+  setContourLevel = xform2 c_th2c_setcontourlevel+  setDirectory = xform1 c_th2c_setdirectory+  setEntries = xform1 c_th2c_setentries+  setError = xform1 c_th2c_seterror+  setLabelColorA = xform2 c_th2c_setlabelcolora+  setLabelSizeA = xform2 c_th2c_setlabelsizea+  setLabelFontA = xform2 c_th2c_setlabelfonta+  setLabelOffsetA = xform2 c_th2c_setlabeloffseta+  setMaximum = xform1 c_th2c_setmaximum+  setMinimum = xform1 c_th2c_setminimum+  setNormFactor = xform1 c_th2c_setnormfactor+  setStats = xform1 c_th2c_setstats+  setOption = xform1 c_th2c_setoption+  setXTitle = xform1 c_th2c_setxtitle+  setYTitle = xform1 c_th2c_setytitle+  setZTitle = xform1 c_th2c_setztitle+  showBackground = xform2 c_th2c_showbackground+  showPeaks = xform3 c_th2c_showpeaks+  smooth = xform2 c_th2c_smooth+  sumw2 = xform0 c_th2c_sumw2+instance ITObject TH2C where+  draw = xform1 c_th2c_draw+  findObject = xform1 c_th2c_findobject+  getName = xform0 c_th2c_getname+  isA = xform0 c_th2c_isa+  paint = xform1 c_th2c_paint+  printObj = xform1 c_th2c_printobj+  saveAs = xform2 c_th2c_saveas+  write = xform3 c_th2c_write+instance ITAttLine TH2C where+  getLineColor = xform0 c_th2c_getlinecolor+  getLineStyle = xform0 c_th2c_getlinestyle+  getLineWidth = xform0 c_th2c_getlinewidth+  resetAttLine = xform1 c_th2c_resetattline+  setLineAttributes = xform0 c_th2c_setlineattributes+  setLineColor = xform1 c_th2c_setlinecolor+  setLineStyle = xform1 c_th2c_setlinestyle+  setLineWidth = xform1 c_th2c_setlinewidth+instance ITAttFill TH2C where+  setFillColor = xform1 c_th2c_setfillcolor+  setFillStyle = xform1 c_th2c_setfillstyle+instance ITAttMarker TH2C where+  getMarkerColor = xform0 c_th2c_getmarkercolor+  getMarkerStyle = xform0 c_th2c_getmarkerstyle+  getMarkerSize = xform0 c_th2c_getmarkersize+  resetAttMarker = xform1 c_th2c_resetattmarker+  setMarkerAttributes = xform0 c_th2c_setmarkerattributes+  setMarkerColor = xform1 c_th2c_setmarkercolor+  setMarkerStyle = xform1 c_th2c_setmarkerstyle+  setMarkerSize = xform1 c_th2c_setmarkersize+instance IDeletable TH2C where+  delete = xform0 c_th2c_delete+instance ITArray TH2C where++instance ITH2C (Exist TH2C) where++instance ITH2 (Exist TH2C) where+  fill2 (ETH2C x) = fill2 x+  fill2w (ETH2C x) = fill2w x+  fillN2 (ETH2C x) = fillN2 x+  fillRandom2 (ETH2C x) = fillRandom2 x+  findFirstBinAbove2 (ETH2C x) = findFirstBinAbove2 x+  findLastBinAbove2 (ETH2C x) = findLastBinAbove2 x+  fitSlicesX (ETH2C x) = fitSlicesX x+  fitSlicesY (ETH2C x) = fitSlicesY x+  getCorrelationFactor2 (ETH2C x) = getCorrelationFactor2 x+  getCovariance2 (ETH2C x) = getCovariance2 x+  integral2 (ETH2C x) = integral2 x+  rebinX2 (ETH2C x) = rebinX2 x+  rebinY2 (ETH2C x) = rebinY2 x+  rebin2D (ETH2C x) = rebin2D x+  setShowProjectionX (ETH2C x) = setShowProjectionX x+  setShowProjectionY (ETH2C x) = setShowProjectionY x+instance ITArrayC (Exist TH2C) where++instance ITH1 (Exist TH2C) where+  add (ETH2C x) = add x+  addBinContent (ETH2C x) = addBinContent x+  chi2Test (ETH2C x) = chi2Test x+  computeIntegral (ETH2C x) = computeIntegral x+  directoryAutoAdd (ETH2C x) = directoryAutoAdd x+  divide (ETH2C x) = divide x+  drawCopyTH1 (ETH2C x) a1 = return . ETH2C =<< drawCopyTH1 x a1+  drawNormalized (ETH2C x) = drawNormalized x+  drawPanelTH1 (ETH2C x) = drawPanelTH1 x+  bufferEmpty (ETH2C x) = bufferEmpty x+  evalF (ETH2C x) = evalF x+  fFT (ETH2C x) = fFT x+  fill1 (ETH2C x) = fill1 x+  fill1w (ETH2C x) = fill1w x+  fillN1 (ETH2C x) = fillN1 x+  fillRandom (ETH2C x) = fillRandom x+  findBin (ETH2C x) = findBin x+  findFixBin (ETH2C x) = findFixBin x+  findFirstBinAbove (ETH2C x) = findFirstBinAbove x+  findLastBinAbove (ETH2C x) = findLastBinAbove x+  fitPanelTH1 (ETH2C x) = fitPanelTH1 x+  getNdivisionA (ETH2C x) = getNdivisionA x+  getAxisColorA (ETH2C x) = getAxisColorA x+  getLabelColorA (ETH2C x) = getLabelColorA x+  getLabelFontA (ETH2C x) = getLabelFontA x+  getLabelOffsetA (ETH2C x) = getLabelOffsetA x+  getLabelSizeA (ETH2C x) = getLabelSizeA x+  getTitleFontA (ETH2C x) = getTitleFontA x+  getTitleOffsetA (ETH2C x) = getTitleOffsetA x+  getTitleSizeA (ETH2C x) = getTitleSizeA x+  getTickLengthA (ETH2C x) = getTickLengthA x+  getBarOffset (ETH2C x) = getBarOffset x+  getBarWidth (ETH2C x) = getBarWidth x+  getContour (ETH2C x) = getContour x+  getContourLevel (ETH2C x) = getContourLevel x+  getContourLevelPad (ETH2C x) = getContourLevelPad x+  getBin (ETH2C x) = getBin x+  getBinCenter (ETH2C x) = getBinCenter x+  getBinContent1 (ETH2C x) = getBinContent1 x+  getBinContent2 (ETH2C x) = getBinContent2 x+  getBinContent3 (ETH2C x) = getBinContent3 x+  getBinError1 (ETH2C x) = getBinError1 x+  getBinError2 (ETH2C x) = getBinError2 x+  getBinError3 (ETH2C x) = getBinError3 x+  getBinLowEdge (ETH2C x) = getBinLowEdge x+  getBinWidth (ETH2C x) = getBinWidth x+  getCellContent (ETH2C x) = getCellContent x+  getCellError (ETH2C x) = getCellError x+  getEntries (ETH2C x) = getEntries x+  getEffectiveEntries (ETH2C x) = getEffectiveEntries x+  getFunction (ETH2C x) = getFunction x+  getDimension (ETH2C x) = getDimension x+  getKurtosis (ETH2C x) = getKurtosis x+  getLowEdge (ETH2C x) = getLowEdge x+  getMaximumTH1 (ETH2C x) = getMaximumTH1 x+  getMaximumBin (ETH2C x) = getMaximumBin x+  getMaximumStored (ETH2C x) = getMaximumStored x+  getMinimumTH1 (ETH2C x) = getMinimumTH1 x+  getMinimumBin (ETH2C x) = getMinimumBin x+  getMinimumStored (ETH2C x) = getMinimumStored x+  getMean (ETH2C x) = getMean x+  getMeanError (ETH2C x) = getMeanError x+  getNbinsX (ETH2C x) = getNbinsX x+  getNbinsY (ETH2C x) = getNbinsY x+  getNbinsZ (ETH2C x) = getNbinsZ x+  getQuantilesTH1 (ETH2C x) = getQuantilesTH1 x+  getRandom (ETH2C x) = getRandom x+  getStats (ETH2C x) = getStats x+  getSumOfWeights (ETH2C x) = getSumOfWeights x+  getSumw2 (ETH2C x) = getSumw2 x+  getSumw2N (ETH2C x) = getSumw2N x+  getRMS (ETH2C x) = getRMS x+  getRMSError (ETH2C x) = getRMSError x+  getSkewness (ETH2C x) = getSkewness x+  integral1 (ETH2C x) = integral1 x+  interpolate1 (ETH2C x) = interpolate1 x+  interpolate2 (ETH2C x) = interpolate2 x+  interpolate3 (ETH2C x) = interpolate3 x+  kolmogorovTest (ETH2C x) = kolmogorovTest x+  labelsDeflate (ETH2C x) = labelsDeflate x+  labelsInflate (ETH2C x) = labelsInflate x+  labelsOption (ETH2C x) = labelsOption x+  multiflyF (ETH2C x) = multiflyF x+  multiply (ETH2C x) = multiply x+  putStats (ETH2C x) = putStats x+  rebin (ETH2C x) = rebin x+  rebinAxis (ETH2C x) = rebinAxis x+  rebuild (ETH2C x) = rebuild x+  recursiveRemove (ETH2C x) = recursiveRemove x+  reset (ETH2C x) = reset x+  resetStats (ETH2C x) = resetStats x+  scale (ETH2C x) = scale x+  setAxisColorA (ETH2C x) = setAxisColorA x+  setAxisRange (ETH2C x) = setAxisRange x+  setBarOffset (ETH2C x) = setBarOffset x+  setBarWidth (ETH2C x) = setBarWidth x+  setBinContent1 (ETH2C x) = setBinContent1 x+  setBinContent2 (ETH2C x) = setBinContent2 x+  setBinContent3 (ETH2C x) = setBinContent3 x+  setBinError1 (ETH2C x) = setBinError1 x+  setBinError2 (ETH2C x) = setBinError2 x+  setBinError3 (ETH2C x) = setBinError3 x+  setBins1 (ETH2C x) = setBins1 x+  setBins2 (ETH2C x) = setBins2 x+  setBins3 (ETH2C x) = setBins3 x+  setBinsLength (ETH2C x) = setBinsLength x+  setBuffer (ETH2C x) = setBuffer x+  setCellContent (ETH2C x) = setCellContent x+  setContent (ETH2C x) = setContent x+  setContour (ETH2C x) = setContour x+  setContourLevel (ETH2C x) = setContourLevel x+  setDirectory (ETH2C x) = setDirectory x+  setEntries (ETH2C x) = setEntries x+  setError (ETH2C x) = setError x+  setLabelColorA (ETH2C x) = setLabelColorA x+  setLabelSizeA (ETH2C x) = setLabelSizeA x+  setLabelFontA (ETH2C x) = setLabelFontA x+  setLabelOffsetA (ETH2C x) = setLabelOffsetA x+  setMaximum (ETH2C x) = setMaximum x+  setMinimum (ETH2C x) = setMinimum x+  setNormFactor (ETH2C x) = setNormFactor x+  setStats (ETH2C x) = setStats x+  setOption (ETH2C x) = setOption x+  setXTitle (ETH2C x) = setXTitle x+  setYTitle (ETH2C x) = setYTitle x+  setZTitle (ETH2C x) = setZTitle x+  showBackground (ETH2C x) = showBackground x+  showPeaks (ETH2C x) = showPeaks x+  smooth (ETH2C x) = smooth x+  sumw2 (ETH2C x) = sumw2 x+instance ITObject (Exist TH2C) where+  draw (ETH2C x) = draw x+  findObject (ETH2C x) = findObject x+  getName (ETH2C x) = getName x+  isA (ETH2C x) = isA x+  paint (ETH2C x) = paint x+  printObj (ETH2C x) = printObj x+  saveAs (ETH2C x) = saveAs x+  write (ETH2C x) = write x+instance ITAttLine (Exist TH2C) where+  getLineColor (ETH2C x) = getLineColor x+  getLineStyle (ETH2C x) = getLineStyle x+  getLineWidth (ETH2C x) = getLineWidth x+  resetAttLine (ETH2C x) = resetAttLine x+  setLineAttributes (ETH2C x) = setLineAttributes x+  setLineColor (ETH2C x) = setLineColor x+  setLineStyle (ETH2C x) = setLineStyle x+  setLineWidth (ETH2C x) = setLineWidth x+instance ITAttFill (Exist TH2C) where+  setFillColor (ETH2C x) = setFillColor x+  setFillStyle (ETH2C x) = setFillStyle x+instance ITAttMarker (Exist TH2C) where+  getMarkerColor (ETH2C x) = getMarkerColor x+  getMarkerStyle (ETH2C x) = getMarkerStyle x+  getMarkerSize (ETH2C x) = getMarkerSize x+  resetAttMarker (ETH2C x) = resetAttMarker x+  setMarkerAttributes (ETH2C x) = setMarkerAttributes x+  setMarkerColor (ETH2C x) = setMarkerColor x+  setMarkerStyle (ETH2C x) = setMarkerStyle x+  setMarkerSize (ETH2C x) = setMarkerSize x+instance IDeletable (Exist TH2C) where+  delete (ETH2C x) = delete x+instance ITArray (Exist TH2C) where+++++++++instance FPtr (Exist TH2C) where+  type Raw (Exist TH2C) = RawTH2C+  get_fptr (ETH2C obj) = castForeignPtr (get_fptr obj)+  cast_fptr_to_obj fptr = ETH2C (cast_fptr_to_obj (fptr :: ForeignPtr RawTH2C) :: TH2C)
+ src/HROOT/Hist/TH2C/Interface.hs view
@@ -0,0 +1,37 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++-- module HROOT.Class.Interface where++module HROOT.Hist.TH2C.Interface where+++import Data.Word+import Foreign.C+import Foreign.Ptr+import Foreign.ForeignPtr+import FFICXX.Runtime.Cast++import HROOT.Hist.TH2C.RawType++import HROOT.Hist.TH2.Interface+import HROOT.Core.TArrayC.Interface+---- ============ ----++++class (ITH2 a,ITArrayC a) => ITH2C a where++instance Existable TH2C where+  data Exist TH2C = forall a. (FPtr a, ITH2C a) => ETH2C a++upcastTH2C :: (FPtr a, ITH2C a) => a -> TH2C+upcastTH2C h = let fh = get_fptr h+                   fh2 :: ForeignPtr RawTH2C = castForeignPtr fh+               in cast_fptr_to_obj fh2++downcastTH2C :: (FPtr a, ITH2C a) => TH2C -> a +downcastTH2C h = let fh = get_fptr h+                     fh2 = castForeignPtr fh+                 in cast_fptr_to_obj fh2
+ src/HROOT/Hist/TH2C/RawType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++module HROOT.Hist.TH2C.RawType where+++import Foreign.ForeignPtr+import FFICXX.Runtime.Cast  ++data RawTH2C+newtype TH2C = TH2C (ForeignPtr RawTH2C) deriving (Eq, Ord, Show)+instance FPtr TH2C where+   type Raw TH2C = RawTH2C+   get_fptr (TH2C fptr) = fptr+   cast_fptr_to_obj = TH2C
+ src/HROOT/Hist/TH2D.hs view
@@ -0,0 +1,15 @@+module HROOT.Hist.TH2D+  (+    TH2D(..)+  , ITH2D+  , upcastTH2D+  , downcastTH2D+  , newTH2D+ +  ) where++import HROOT.Hist.TH2D.RawType+import HROOT.Hist.TH2D.Interface+import HROOT.Hist.TH2D.Implementation++
+ src/HROOT/Hist/TH2D/Cast.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeFamilies, +             MultiParamTypeClasses, OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH2D.Cast where+++import Foreign.Ptr+import Foreign.ForeignPtr (castForeignPtr, newForeignPtr_)+import Foreign.ForeignPtr.Unsafe+import FFICXX.Runtime.Cast+import System.IO.Unsafe++import HROOT.Hist.TH2D.RawType+import HROOT.Hist.TH2D.Interface++instance (ITH2D a, FPtr a) => Castable a (Ptr RawTH2D) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ ++instance Castable TH2D (Ptr RawTH2D) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+ src/HROOT/Hist/TH2D/FFI.hsc view
@@ -0,0 +1,550 @@+{-# LANGUAGE ForeignFunctionInterface #-}++-- module HROOT.Class.FFI where++module HROOT.Hist.TH2D.FFI where+++import Foreign.C            +import Foreign.Ptr++-- import HROOT.Class.Interface++-- #include ""++import HROOT.Hist.TH2D.RawType+import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH2.RawType+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TF1.RawType+import HROOT.Core.TObjArray.RawType+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TArrayD.RawType+import HROOT.Hist.TAxis.RawType+import HROOT.Core.TObject.RawType+import HROOT.Core.TClass.RawType++#include "HROOTHistTH2D.h"++foreign import ccall "HROOTHistTH2D.h TH2D_fill2" c_th2d_fill2 +  :: (Ptr RawTH2D) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2D.h TH2D_fill2w" c_th2d_fill2w +  :: (Ptr RawTH2D) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2D.h TH2D_fillN2" c_th2d_filln2 +  :: (Ptr RawTH2D) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_fillRandom2" c_th2d_fillrandom2 +  :: (Ptr RawTH2D) -> (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_findFirstBinAbove2" c_th2d_findfirstbinabove2 +  :: (Ptr RawTH2D) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2D.h TH2D_findLastBinAbove2" c_th2d_findlastbinabove2 +  :: (Ptr RawTH2D) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2D.h TH2D_FitSlicesX" c_th2d_fitslicesx +  :: (Ptr RawTH2D) -> (Ptr RawTF1) -> CInt -> CInt -> CInt -> CString -> (Ptr RawTObjArray) -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_FitSlicesY" c_th2d_fitslicesy +  :: (Ptr RawTH2D) -> (Ptr RawTF1) -> CInt -> CInt -> CInt -> CString -> (Ptr RawTObjArray) -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_getCorrelationFactor2" c_th2d_getcorrelationfactor2 +  :: (Ptr RawTH2D) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_getCovariance2" c_th2d_getcovariance2 +  :: (Ptr RawTH2D) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_integral2" c_th2d_integral2 +  :: (Ptr RawTH2D) -> CInt -> CInt -> CInt -> CInt -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_rebinX2" c_th2d_rebinx2 +  :: (Ptr RawTH2D) -> CInt -> CString -> IO (Ptr RawTH2)++foreign import ccall "HROOTHistTH2D.h TH2D_rebinY2" c_th2d_rebiny2 +  :: (Ptr RawTH2D) -> CInt -> CString -> IO (Ptr RawTH2)++foreign import ccall "HROOTHistTH2D.h TH2D_Rebin2D" c_th2d_rebin2d +  :: (Ptr RawTH2D) -> CInt -> CInt -> CString -> IO (Ptr RawTH2)++foreign import ccall "HROOTHistTH2D.h TH2D_SetShowProjectionX" c_th2d_setshowprojectionx +  :: (Ptr RawTH2D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetShowProjectionY" c_th2d_setshowprojectiony +  :: (Ptr RawTH2D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_Add" c_th2d_add +  :: (Ptr RawTH2D) -> (Ptr RawTH1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_AddBinContent" c_th2d_addbincontent +  :: (Ptr RawTH2D) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_Chi2Test" c_th2d_chi2test +  :: (Ptr RawTH2D) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_ComputeIntegral" c_th2d_computeintegral +  :: (Ptr RawTH2D) -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_DirectoryAutoAdd" c_th2d_directoryautoadd +  :: (Ptr RawTH2D) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_Divide" c_th2d_divide +  :: (Ptr RawTH2D) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_drawCopyTH1" c_th2d_drawcopyth1 +  :: (Ptr RawTH2D) -> CString -> IO (Ptr RawTH2D)++foreign import ccall "HROOTHistTH2D.h TH2D_DrawNormalized" c_th2d_drawnormalized +  :: (Ptr RawTH2D) -> CString -> CDouble -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH2D.h TH2D_drawPanelTH1" c_th2d_drawpanelth1 +  :: (Ptr RawTH2D) -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_BufferEmpty" c_th2d_bufferempty +  :: (Ptr RawTH2D) -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2D.h TH2D_evalF" c_th2d_evalf +  :: (Ptr RawTH2D) -> (Ptr RawTF1) -> CString -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_FFT" c_th2d_fft +  :: (Ptr RawTH2D) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH2D.h TH2D_fill1" c_th2d_fill1 +  :: (Ptr RawTH2D) -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2D.h TH2D_fill1w" c_th2d_fill1w +  :: (Ptr RawTH2D) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2D.h TH2D_fillN1" c_th2d_filln1 +  :: (Ptr RawTH2D) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_FillRandom" c_th2d_fillrandom +  :: (Ptr RawTH2D) -> (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_FindBin" c_th2d_findbin +  :: (Ptr RawTH2D) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2D.h TH2D_FindFixBin" c_th2d_findfixbin +  :: (Ptr RawTH2D) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2D.h TH2D_FindFirstBinAbove" c_th2d_findfirstbinabove +  :: (Ptr RawTH2D) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2D.h TH2D_FindLastBinAbove" c_th2d_findlastbinabove +  :: (Ptr RawTH2D) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2D.h TH2D_FitPanelTH1" c_th2d_fitpanelth1 +  :: (Ptr RawTH2D) -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_getNdivisionA" c_th2d_getndivisiona +  :: (Ptr RawTH2D) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2D.h TH2D_getAxisColorA" c_th2d_getaxiscolora +  :: (Ptr RawTH2D) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2D.h TH2D_getLabelColorA" c_th2d_getlabelcolora +  :: (Ptr RawTH2D) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2D.h TH2D_getLabelFontA" c_th2d_getlabelfonta +  :: (Ptr RawTH2D) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2D.h TH2D_getLabelOffsetA" c_th2d_getlabeloffseta +  :: (Ptr RawTH2D) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_getLabelSizeA" c_th2d_getlabelsizea +  :: (Ptr RawTH2D) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_getTitleFontA" c_th2d_gettitlefonta +  :: (Ptr RawTH2D) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2D.h TH2D_getTitleOffsetA" c_th2d_gettitleoffseta +  :: (Ptr RawTH2D) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_getTitleSizeA" c_th2d_gettitlesizea +  :: (Ptr RawTH2D) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_getTickLengthA" c_th2d_getticklengtha +  :: (Ptr RawTH2D) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_GetBarOffset" c_th2d_getbaroffset +  :: (Ptr RawTH2D) -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_GetBarWidth" c_th2d_getbarwidth +  :: (Ptr RawTH2D) -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_GetContour" c_th2d_getcontour +  :: (Ptr RawTH2D) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH2D.h TH2D_GetContourLevel" c_th2d_getcontourlevel +  :: (Ptr RawTH2D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_GetContourLevelPad" c_th2d_getcontourlevelpad +  :: (Ptr RawTH2D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_GetBin" c_th2d_getbin +  :: (Ptr RawTH2D) -> CInt -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2D.h TH2D_GetBinCenter" c_th2d_getbincenter +  :: (Ptr RawTH2D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_GetBinContent1" c_th2d_getbincontent1 +  :: (Ptr RawTH2D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_GetBinContent2" c_th2d_getbincontent2 +  :: (Ptr RawTH2D) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_GetBinContent3" c_th2d_getbincontent3 +  :: (Ptr RawTH2D) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_GetBinError1" c_th2d_getbinerror1 +  :: (Ptr RawTH2D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_GetBinError2" c_th2d_getbinerror2 +  :: (Ptr RawTH2D) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_GetBinError3" c_th2d_getbinerror3 +  :: (Ptr RawTH2D) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_GetBinLowEdge" c_th2d_getbinlowedge +  :: (Ptr RawTH2D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_GetBinWidth" c_th2d_getbinwidth +  :: (Ptr RawTH2D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_GetCellContent" c_th2d_getcellcontent +  :: (Ptr RawTH2D) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_GetCellError" c_th2d_getcellerror +  :: (Ptr RawTH2D) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_GetEntries" c_th2d_getentries +  :: (Ptr RawTH2D) -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_GetEffectiveEntries" c_th2d_geteffectiveentries +  :: (Ptr RawTH2D) -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_GetFunction" c_th2d_getfunction +  :: (Ptr RawTH2D) -> CString -> IO (Ptr RawTF1)++foreign import ccall "HROOTHistTH2D.h TH2D_GetDimension" c_th2d_getdimension +  :: (Ptr RawTH2D) -> IO CInt++foreign import ccall "HROOTHistTH2D.h TH2D_GetKurtosis" c_th2d_getkurtosis +  :: (Ptr RawTH2D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_GetLowEdge" c_th2d_getlowedge +  :: (Ptr RawTH2D) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_getMaximumTH1" c_th2d_getmaximumth1 +  :: (Ptr RawTH2D) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_GetMaximumBin" c_th2d_getmaximumbin +  :: (Ptr RawTH2D) -> IO CInt++foreign import ccall "HROOTHistTH2D.h TH2D_GetMaximumStored" c_th2d_getmaximumstored +  :: (Ptr RawTH2D) -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_getMinimumTH1" c_th2d_getminimumth1 +  :: (Ptr RawTH2D) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_GetMinimumBin" c_th2d_getminimumbin +  :: (Ptr RawTH2D) -> IO CInt++foreign import ccall "HROOTHistTH2D.h TH2D_GetMinimumStored" c_th2d_getminimumstored +  :: (Ptr RawTH2D) -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_GetMean" c_th2d_getmean +  :: (Ptr RawTH2D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_GetMeanError" c_th2d_getmeanerror +  :: (Ptr RawTH2D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_GetNbinsX" c_th2d_getnbinsx +  :: (Ptr RawTH2D) -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_GetNbinsY" c_th2d_getnbinsy +  :: (Ptr RawTH2D) -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_GetNbinsZ" c_th2d_getnbinsz +  :: (Ptr RawTH2D) -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_getQuantilesTH1" c_th2d_getquantilesth1 +  :: (Ptr RawTH2D) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH2D.h TH2D_GetRandom" c_th2d_getrandom +  :: (Ptr RawTH2D) -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_GetStats" c_th2d_getstats +  :: (Ptr RawTH2D) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_GetSumOfWeights" c_th2d_getsumofweights +  :: (Ptr RawTH2D) -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_GetSumw2" c_th2d_getsumw2 +  :: (Ptr RawTH2D) -> IO (Ptr RawTArrayD)++foreign import ccall "HROOTHistTH2D.h TH2D_GetSumw2N" c_th2d_getsumw2n +  :: (Ptr RawTH2D) -> IO CInt++foreign import ccall "HROOTHistTH2D.h TH2D_GetRMS" c_th2d_getrms +  :: (Ptr RawTH2D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_GetRMSError" c_th2d_getrmserror +  :: (Ptr RawTH2D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_GetSkewness" c_th2d_getskewness +  :: (Ptr RawTH2D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_integral1" c_th2d_integral1 +  :: (Ptr RawTH2D) -> CInt -> CInt -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_interpolate1" c_th2d_interpolate1 +  :: (Ptr RawTH2D) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_interpolate2" c_th2d_interpolate2 +  :: (Ptr RawTH2D) -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_interpolate3" c_th2d_interpolate3 +  :: (Ptr RawTH2D) -> CDouble -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_KolmogorovTest" c_th2d_kolmogorovtest +  :: (Ptr RawTH2D) -> (Ptr RawTH1) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_LabelsDeflate" c_th2d_labelsdeflate +  :: (Ptr RawTH2D) -> CString -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_LabelsInflate" c_th2d_labelsinflate +  :: (Ptr RawTH2D) -> CString -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_LabelsOption" c_th2d_labelsoption +  :: (Ptr RawTH2D) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_multiflyF" c_th2d_multiflyf +  :: (Ptr RawTH2D) -> (Ptr RawTF1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_Multiply" c_th2d_multiply +  :: (Ptr RawTH2D) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_PutStats" c_th2d_putstats +  :: (Ptr RawTH2D) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_Rebin" c_th2d_rebin +  :: (Ptr RawTH2D) -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH2D.h TH2D_RebinAxis" c_th2d_rebinaxis +  :: (Ptr RawTH2D) -> CDouble -> (Ptr RawTAxis) -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_Rebuild" c_th2d_rebuild +  :: (Ptr RawTH2D) -> CString -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_RecursiveRemove" c_th2d_recursiveremove +  :: (Ptr RawTH2D) -> (Ptr RawTObject) -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_Reset" c_th2d_reset +  :: (Ptr RawTH2D) -> CString -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_ResetStats" c_th2d_resetstats +  :: (Ptr RawTH2D) -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_Scale" c_th2d_scale +  :: (Ptr RawTH2D) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_setAxisColorA" c_th2d_setaxiscolora +  :: (Ptr RawTH2D) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetAxisRange" c_th2d_setaxisrange +  :: (Ptr RawTH2D) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetBarOffset" c_th2d_setbaroffset +  :: (Ptr RawTH2D) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetBarWidth" c_th2d_setbarwidth +  :: (Ptr RawTH2D) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_setBinContent1" c_th2d_setbincontent1 +  :: (Ptr RawTH2D) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_setBinContent2" c_th2d_setbincontent2 +  :: (Ptr RawTH2D) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_setBinContent3" c_th2d_setbincontent3 +  :: (Ptr RawTH2D) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_setBinError1" c_th2d_setbinerror1 +  :: (Ptr RawTH2D) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_setBinError2" c_th2d_setbinerror2 +  :: (Ptr RawTH2D) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_setBinError3" c_th2d_setbinerror3 +  :: (Ptr RawTH2D) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_setBins1" c_th2d_setbins1 +  :: (Ptr RawTH2D) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_setBins2" c_th2d_setbins2 +  :: (Ptr RawTH2D) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_setBins3" c_th2d_setbins3 +  :: (Ptr RawTH2D) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetBinsLength" c_th2d_setbinslength +  :: (Ptr RawTH2D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetBuffer" c_th2d_setbuffer +  :: (Ptr RawTH2D) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetCellContent" c_th2d_setcellcontent +  :: (Ptr RawTH2D) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetContent" c_th2d_setcontent +  :: (Ptr RawTH2D) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetContour" c_th2d_setcontour +  :: (Ptr RawTH2D) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetContourLevel" c_th2d_setcontourlevel +  :: (Ptr RawTH2D) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetDirectory" c_th2d_setdirectory +  :: (Ptr RawTH2D) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetEntries" c_th2d_setentries +  :: (Ptr RawTH2D) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetError" c_th2d_seterror +  :: (Ptr RawTH2D) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_setLabelColorA" c_th2d_setlabelcolora +  :: (Ptr RawTH2D) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_setLabelSizeA" c_th2d_setlabelsizea +  :: (Ptr RawTH2D) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_setLabelFontA" c_th2d_setlabelfonta +  :: (Ptr RawTH2D) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_setLabelOffsetA" c_th2d_setlabeloffseta +  :: (Ptr RawTH2D) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetMaximum" c_th2d_setmaximum +  :: (Ptr RawTH2D) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetMinimum" c_th2d_setminimum +  :: (Ptr RawTH2D) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetNormFactor" c_th2d_setnormfactor +  :: (Ptr RawTH2D) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetStats" c_th2d_setstats +  :: (Ptr RawTH2D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetOption" c_th2d_setoption +  :: (Ptr RawTH2D) -> CString -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetXTitle" c_th2d_setxtitle +  :: (Ptr RawTH2D) -> CString -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetYTitle" c_th2d_setytitle +  :: (Ptr RawTH2D) -> CString -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetZTitle" c_th2d_setztitle +  :: (Ptr RawTH2D) -> CString -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_ShowBackground" c_th2d_showbackground +  :: (Ptr RawTH2D) -> CInt -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH2D.h TH2D_ShowPeaks" c_th2d_showpeaks +  :: (Ptr RawTH2D) -> CDouble -> CString -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2D.h TH2D_Smooth" c_th2d_smooth +  :: (Ptr RawTH2D) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_Sumw2" c_th2d_sumw2 +  :: (Ptr RawTH2D) -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_Draw" c_th2d_draw +  :: (Ptr RawTH2D) -> CString -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_FindObject" c_th2d_findobject +  :: (Ptr RawTH2D) -> CString -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTH2D.h TH2D_GetName" c_th2d_getname +  :: (Ptr RawTH2D) -> IO CString++foreign import ccall "HROOTHistTH2D.h TH2D_IsA" c_th2d_isa +  :: (Ptr RawTH2D) -> IO (Ptr RawTClass)++foreign import ccall "HROOTHistTH2D.h TH2D_Paint" c_th2d_paint +  :: (Ptr RawTH2D) -> CString -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_printObj" c_th2d_printobj +  :: (Ptr RawTH2D) -> CString -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SaveAs" c_th2d_saveas +  :: (Ptr RawTH2D) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_Write" c_th2d_write +  :: (Ptr RawTH2D) -> CString -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2D.h TH2D_GetLineColor" c_th2d_getlinecolor +  :: (Ptr RawTH2D) -> IO CInt++foreign import ccall "HROOTHistTH2D.h TH2D_GetLineStyle" c_th2d_getlinestyle +  :: (Ptr RawTH2D) -> IO CInt++foreign import ccall "HROOTHistTH2D.h TH2D_GetLineWidth" c_th2d_getlinewidth +  :: (Ptr RawTH2D) -> IO CInt++foreign import ccall "HROOTHistTH2D.h TH2D_ResetAttLine" c_th2d_resetattline +  :: (Ptr RawTH2D) -> CString -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetLineAttributes" c_th2d_setlineattributes +  :: (Ptr RawTH2D) -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetLineColor" c_th2d_setlinecolor +  :: (Ptr RawTH2D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetLineStyle" c_th2d_setlinestyle +  :: (Ptr RawTH2D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetLineWidth" c_th2d_setlinewidth +  :: (Ptr RawTH2D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetFillColor" c_th2d_setfillcolor +  :: (Ptr RawTH2D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetFillStyle" c_th2d_setfillstyle +  :: (Ptr RawTH2D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_GetMarkerColor" c_th2d_getmarkercolor +  :: (Ptr RawTH2D) -> IO CInt++foreign import ccall "HROOTHistTH2D.h TH2D_GetMarkerStyle" c_th2d_getmarkerstyle +  :: (Ptr RawTH2D) -> IO CInt++foreign import ccall "HROOTHistTH2D.h TH2D_GetMarkerSize" c_th2d_getmarkersize +  :: (Ptr RawTH2D) -> IO CDouble++foreign import ccall "HROOTHistTH2D.h TH2D_ResetAttMarker" c_th2d_resetattmarker +  :: (Ptr RawTH2D) -> CString -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetMarkerAttributes" c_th2d_setmarkerattributes +  :: (Ptr RawTH2D) -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetMarkerColor" c_th2d_setmarkercolor +  :: (Ptr RawTH2D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetMarkerStyle" c_th2d_setmarkerstyle +  :: (Ptr RawTH2D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_SetMarkerSize" c_th2d_setmarkersize +  :: (Ptr RawTH2D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_delete" c_th2d_delete +  :: (Ptr RawTH2D) -> IO ()++foreign import ccall "HROOTHistTH2D.h TH2D_newTH2D" c_th2d_newth2d +  :: CString -> CString -> CInt -> CDouble -> CDouble -> CInt -> CDouble -> CDouble -> IO (Ptr RawTH2D)+
+ src/HROOT/Hist/TH2D/Implementation.hs view
@@ -0,0 +1,450 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, +             OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH2D.Implementation where+++import FFICXX.Runtime.Cast++import HROOT.Hist.TH2D.RawType+import HROOT.Hist.TH2D.FFI+import HROOT.Hist.TH2D.Interface+import HROOT.Hist.TH2D.Cast+import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH1D.Cast+import HROOT.Hist.TH1D.Interface+import HROOT.Hist.TF1.RawType+import HROOT.Hist.TF1.Cast+import HROOT.Hist.TF1.Interface+import HROOT.Core.TObjArray.RawType+import HROOT.Core.TObjArray.Cast+import HROOT.Core.TObjArray.Interface+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TDirectory.Cast+import HROOT.Core.TDirectory.Interface+import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.Cast+import HROOT.Hist.TAxis.Interface+import HROOT.Core.TClass.RawType+import HROOT.Core.TClass.Cast+import HROOT.Core.TClass.Interface+import HROOT.Hist.TH2.RawType+import HROOT.Hist.TH2.Cast+import HROOT.Hist.TH2.Interface+import HROOT.Core.TArrayD.RawType+import HROOT.Core.TArrayD.Cast+import HROOT.Core.TArrayD.Interface+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH1.Cast+import HROOT.Hist.TH1.Interface+import HROOT.Core.TObject.RawType+import HROOT.Core.TObject.Cast+import HROOT.Core.TObject.Interface+import HROOT.Core.TAttLine.RawType+import HROOT.Core.TAttLine.Cast+import HROOT.Core.TAttLine.Interface+import HROOT.Core.TAttFill.RawType+import HROOT.Core.TAttFill.Cast+import HROOT.Core.TAttFill.Interface+import HROOT.Core.TAttMarker.RawType+import HROOT.Core.TAttMarker.Cast+import HROOT.Core.TAttMarker.Interface+import HROOT.Core.Deletable.RawType+import HROOT.Core.Deletable.Cast+import HROOT.Core.Deletable.Interface+import HROOT.Core.TArray.RawType+import HROOT.Core.TArray.Cast+import HROOT.Core.TArray.Interface++import Data.Word+import Foreign.C+import Foreign.Ptr +import Foreign.ForeignPtr++import System.IO.Unsafe+++instance ITH2D TH2D where+instance ITH2 TH2D where+  fill2 = xform2 c_th2d_fill2+  fill2w = xform3 c_th2d_fill2w+  fillN2 = xform5 c_th2d_filln2+  fillRandom2 = xform2 c_th2d_fillrandom2+  findFirstBinAbove2 = xform2 c_th2d_findfirstbinabove2+  findLastBinAbove2 = xform2 c_th2d_findlastbinabove2+  fitSlicesX = xform6 c_th2d_fitslicesx+  fitSlicesY = xform6 c_th2d_fitslicesy+  getCorrelationFactor2 = xform2 c_th2d_getcorrelationfactor2+  getCovariance2 = xform2 c_th2d_getcovariance2+  integral2 = xform5 c_th2d_integral2+  rebinX2 = xform2 c_th2d_rebinx2+  rebinY2 = xform2 c_th2d_rebiny2+  rebin2D = xform3 c_th2d_rebin2d+  setShowProjectionX = xform1 c_th2d_setshowprojectionx+  setShowProjectionY = xform1 c_th2d_setshowprojectiony+instance ITArrayD TH2D where+instance ITH1 TH2D where+  add = xform2 c_th2d_add+  addBinContent = xform2 c_th2d_addbincontent+  chi2Test = xform3 c_th2d_chi2test+  computeIntegral = xform0 c_th2d_computeintegral+  directoryAutoAdd = xform1 c_th2d_directoryautoadd+  divide = xform5 c_th2d_divide+  drawCopyTH1 = xform1 c_th2d_drawcopyth1+  drawNormalized = xform2 c_th2d_drawnormalized+  drawPanelTH1 = xform0 c_th2d_drawpanelth1+  bufferEmpty = xform1 c_th2d_bufferempty+  evalF = xform2 c_th2d_evalf+  fFT = xform2 c_th2d_fft+  fill1 = xform1 c_th2d_fill1+  fill1w = xform2 c_th2d_fill1w+  fillN1 = xform4 c_th2d_filln1+  fillRandom = xform2 c_th2d_fillrandom+  findBin = xform3 c_th2d_findbin+  findFixBin = xform3 c_th2d_findfixbin+  findFirstBinAbove = xform2 c_th2d_findfirstbinabove+  findLastBinAbove = xform2 c_th2d_findlastbinabove+  fitPanelTH1 = xform0 c_th2d_fitpanelth1+  getNdivisionA = xform1 c_th2d_getndivisiona+  getAxisColorA = xform1 c_th2d_getaxiscolora+  getLabelColorA = xform1 c_th2d_getlabelcolora+  getLabelFontA = xform1 c_th2d_getlabelfonta+  getLabelOffsetA = xform1 c_th2d_getlabeloffseta+  getLabelSizeA = xform1 c_th2d_getlabelsizea+  getTitleFontA = xform1 c_th2d_gettitlefonta+  getTitleOffsetA = xform1 c_th2d_gettitleoffseta+  getTitleSizeA = xform1 c_th2d_gettitlesizea+  getTickLengthA = xform1 c_th2d_getticklengtha+  getBarOffset = xform0 c_th2d_getbaroffset+  getBarWidth = xform0 c_th2d_getbarwidth+  getContour = xform1 c_th2d_getcontour+  getContourLevel = xform1 c_th2d_getcontourlevel+  getContourLevelPad = xform1 c_th2d_getcontourlevelpad+  getBin = xform3 c_th2d_getbin+  getBinCenter = xform1 c_th2d_getbincenter+  getBinContent1 = xform1 c_th2d_getbincontent1+  getBinContent2 = xform2 c_th2d_getbincontent2+  getBinContent3 = xform3 c_th2d_getbincontent3+  getBinError1 = xform1 c_th2d_getbinerror1+  getBinError2 = xform2 c_th2d_getbinerror2+  getBinError3 = xform3 c_th2d_getbinerror3+  getBinLowEdge = xform1 c_th2d_getbinlowedge+  getBinWidth = xform1 c_th2d_getbinwidth+  getCellContent = xform2 c_th2d_getcellcontent+  getCellError = xform2 c_th2d_getcellerror+  getEntries = xform0 c_th2d_getentries+  getEffectiveEntries = xform0 c_th2d_geteffectiveentries+  getFunction = xform1 c_th2d_getfunction+  getDimension = xform0 c_th2d_getdimension+  getKurtosis = xform1 c_th2d_getkurtosis+  getLowEdge = xform1 c_th2d_getlowedge+  getMaximumTH1 = xform1 c_th2d_getmaximumth1+  getMaximumBin = xform0 c_th2d_getmaximumbin+  getMaximumStored = xform0 c_th2d_getmaximumstored+  getMinimumTH1 = xform1 c_th2d_getminimumth1+  getMinimumBin = xform0 c_th2d_getminimumbin+  getMinimumStored = xform0 c_th2d_getminimumstored+  getMean = xform1 c_th2d_getmean+  getMeanError = xform1 c_th2d_getmeanerror+  getNbinsX = xform0 c_th2d_getnbinsx+  getNbinsY = xform0 c_th2d_getnbinsy+  getNbinsZ = xform0 c_th2d_getnbinsz+  getQuantilesTH1 = xform3 c_th2d_getquantilesth1+  getRandom = xform0 c_th2d_getrandom+  getStats = xform1 c_th2d_getstats+  getSumOfWeights = xform0 c_th2d_getsumofweights+  getSumw2 = xform0 c_th2d_getsumw2+  getSumw2N = xform0 c_th2d_getsumw2n+  getRMS = xform1 c_th2d_getrms+  getRMSError = xform1 c_th2d_getrmserror+  getSkewness = xform1 c_th2d_getskewness+  integral1 = xform3 c_th2d_integral1+  interpolate1 = xform1 c_th2d_interpolate1+  interpolate2 = xform2 c_th2d_interpolate2+  interpolate3 = xform3 c_th2d_interpolate3+  kolmogorovTest = xform2 c_th2d_kolmogorovtest+  labelsDeflate = xform1 c_th2d_labelsdeflate+  labelsInflate = xform1 c_th2d_labelsinflate+  labelsOption = xform2 c_th2d_labelsoption+  multiflyF = xform2 c_th2d_multiflyf+  multiply = xform5 c_th2d_multiply+  putStats = xform1 c_th2d_putstats+  rebin = xform3 c_th2d_rebin+  rebinAxis = xform2 c_th2d_rebinaxis+  rebuild = xform1 c_th2d_rebuild+  recursiveRemove = xform1 c_th2d_recursiveremove+  reset = xform1 c_th2d_reset+  resetStats = xform0 c_th2d_resetstats+  scale = xform2 c_th2d_scale+  setAxisColorA = xform2 c_th2d_setaxiscolora+  setAxisRange = xform3 c_th2d_setaxisrange+  setBarOffset = xform1 c_th2d_setbaroffset+  setBarWidth = xform1 c_th2d_setbarwidth+  setBinContent1 = xform2 c_th2d_setbincontent1+  setBinContent2 = xform3 c_th2d_setbincontent2+  setBinContent3 = xform4 c_th2d_setbincontent3+  setBinError1 = xform2 c_th2d_setbinerror1+  setBinError2 = xform3 c_th2d_setbinerror2+  setBinError3 = xform4 c_th2d_setbinerror3+  setBins1 = xform2 c_th2d_setbins1+  setBins2 = xform4 c_th2d_setbins2+  setBins3 = xform6 c_th2d_setbins3+  setBinsLength = xform1 c_th2d_setbinslength+  setBuffer = xform2 c_th2d_setbuffer+  setCellContent = xform3 c_th2d_setcellcontent+  setContent = xform1 c_th2d_setcontent+  setContour = xform2 c_th2d_setcontour+  setContourLevel = xform2 c_th2d_setcontourlevel+  setDirectory = xform1 c_th2d_setdirectory+  setEntries = xform1 c_th2d_setentries+  setError = xform1 c_th2d_seterror+  setLabelColorA = xform2 c_th2d_setlabelcolora+  setLabelSizeA = xform2 c_th2d_setlabelsizea+  setLabelFontA = xform2 c_th2d_setlabelfonta+  setLabelOffsetA = xform2 c_th2d_setlabeloffseta+  setMaximum = xform1 c_th2d_setmaximum+  setMinimum = xform1 c_th2d_setminimum+  setNormFactor = xform1 c_th2d_setnormfactor+  setStats = xform1 c_th2d_setstats+  setOption = xform1 c_th2d_setoption+  setXTitle = xform1 c_th2d_setxtitle+  setYTitle = xform1 c_th2d_setytitle+  setZTitle = xform1 c_th2d_setztitle+  showBackground = xform2 c_th2d_showbackground+  showPeaks = xform3 c_th2d_showpeaks+  smooth = xform2 c_th2d_smooth+  sumw2 = xform0 c_th2d_sumw2+instance ITObject TH2D where+  draw = xform1 c_th2d_draw+  findObject = xform1 c_th2d_findobject+  getName = xform0 c_th2d_getname+  isA = xform0 c_th2d_isa+  paint = xform1 c_th2d_paint+  printObj = xform1 c_th2d_printobj+  saveAs = xform2 c_th2d_saveas+  write = xform3 c_th2d_write+instance ITAttLine TH2D where+  getLineColor = xform0 c_th2d_getlinecolor+  getLineStyle = xform0 c_th2d_getlinestyle+  getLineWidth = xform0 c_th2d_getlinewidth+  resetAttLine = xform1 c_th2d_resetattline+  setLineAttributes = xform0 c_th2d_setlineattributes+  setLineColor = xform1 c_th2d_setlinecolor+  setLineStyle = xform1 c_th2d_setlinestyle+  setLineWidth = xform1 c_th2d_setlinewidth+instance ITAttFill TH2D where+  setFillColor = xform1 c_th2d_setfillcolor+  setFillStyle = xform1 c_th2d_setfillstyle+instance ITAttMarker TH2D where+  getMarkerColor = xform0 c_th2d_getmarkercolor+  getMarkerStyle = xform0 c_th2d_getmarkerstyle+  getMarkerSize = xform0 c_th2d_getmarkersize+  resetAttMarker = xform1 c_th2d_resetattmarker+  setMarkerAttributes = xform0 c_th2d_setmarkerattributes+  setMarkerColor = xform1 c_th2d_setmarkercolor+  setMarkerStyle = xform1 c_th2d_setmarkerstyle+  setMarkerSize = xform1 c_th2d_setmarkersize+instance IDeletable TH2D where+  delete = xform0 c_th2d_delete+instance ITArray TH2D where++instance ITH2D (Exist TH2D) where++instance ITH2 (Exist TH2D) where+  fill2 (ETH2D x) = fill2 x+  fill2w (ETH2D x) = fill2w x+  fillN2 (ETH2D x) = fillN2 x+  fillRandom2 (ETH2D x) = fillRandom2 x+  findFirstBinAbove2 (ETH2D x) = findFirstBinAbove2 x+  findLastBinAbove2 (ETH2D x) = findLastBinAbove2 x+  fitSlicesX (ETH2D x) = fitSlicesX x+  fitSlicesY (ETH2D x) = fitSlicesY x+  getCorrelationFactor2 (ETH2D x) = getCorrelationFactor2 x+  getCovariance2 (ETH2D x) = getCovariance2 x+  integral2 (ETH2D x) = integral2 x+  rebinX2 (ETH2D x) = rebinX2 x+  rebinY2 (ETH2D x) = rebinY2 x+  rebin2D (ETH2D x) = rebin2D x+  setShowProjectionX (ETH2D x) = setShowProjectionX x+  setShowProjectionY (ETH2D x) = setShowProjectionY x+instance ITArrayD (Exist TH2D) where++instance ITH1 (Exist TH2D) where+  add (ETH2D x) = add x+  addBinContent (ETH2D x) = addBinContent x+  chi2Test (ETH2D x) = chi2Test x+  computeIntegral (ETH2D x) = computeIntegral x+  directoryAutoAdd (ETH2D x) = directoryAutoAdd x+  divide (ETH2D x) = divide x+  drawCopyTH1 (ETH2D x) a1 = return . ETH2D =<< drawCopyTH1 x a1+  drawNormalized (ETH2D x) = drawNormalized x+  drawPanelTH1 (ETH2D x) = drawPanelTH1 x+  bufferEmpty (ETH2D x) = bufferEmpty x+  evalF (ETH2D x) = evalF x+  fFT (ETH2D x) = fFT x+  fill1 (ETH2D x) = fill1 x+  fill1w (ETH2D x) = fill1w x+  fillN1 (ETH2D x) = fillN1 x+  fillRandom (ETH2D x) = fillRandom x+  findBin (ETH2D x) = findBin x+  findFixBin (ETH2D x) = findFixBin x+  findFirstBinAbove (ETH2D x) = findFirstBinAbove x+  findLastBinAbove (ETH2D x) = findLastBinAbove x+  fitPanelTH1 (ETH2D x) = fitPanelTH1 x+  getNdivisionA (ETH2D x) = getNdivisionA x+  getAxisColorA (ETH2D x) = getAxisColorA x+  getLabelColorA (ETH2D x) = getLabelColorA x+  getLabelFontA (ETH2D x) = getLabelFontA x+  getLabelOffsetA (ETH2D x) = getLabelOffsetA x+  getLabelSizeA (ETH2D x) = getLabelSizeA x+  getTitleFontA (ETH2D x) = getTitleFontA x+  getTitleOffsetA (ETH2D x) = getTitleOffsetA x+  getTitleSizeA (ETH2D x) = getTitleSizeA x+  getTickLengthA (ETH2D x) = getTickLengthA x+  getBarOffset (ETH2D x) = getBarOffset x+  getBarWidth (ETH2D x) = getBarWidth x+  getContour (ETH2D x) = getContour x+  getContourLevel (ETH2D x) = getContourLevel x+  getContourLevelPad (ETH2D x) = getContourLevelPad x+  getBin (ETH2D x) = getBin x+  getBinCenter (ETH2D x) = getBinCenter x+  getBinContent1 (ETH2D x) = getBinContent1 x+  getBinContent2 (ETH2D x) = getBinContent2 x+  getBinContent3 (ETH2D x) = getBinContent3 x+  getBinError1 (ETH2D x) = getBinError1 x+  getBinError2 (ETH2D x) = getBinError2 x+  getBinError3 (ETH2D x) = getBinError3 x+  getBinLowEdge (ETH2D x) = getBinLowEdge x+  getBinWidth (ETH2D x) = getBinWidth x+  getCellContent (ETH2D x) = getCellContent x+  getCellError (ETH2D x) = getCellError x+  getEntries (ETH2D x) = getEntries x+  getEffectiveEntries (ETH2D x) = getEffectiveEntries x+  getFunction (ETH2D x) = getFunction x+  getDimension (ETH2D x) = getDimension x+  getKurtosis (ETH2D x) = getKurtosis x+  getLowEdge (ETH2D x) = getLowEdge x+  getMaximumTH1 (ETH2D x) = getMaximumTH1 x+  getMaximumBin (ETH2D x) = getMaximumBin x+  getMaximumStored (ETH2D x) = getMaximumStored x+  getMinimumTH1 (ETH2D x) = getMinimumTH1 x+  getMinimumBin (ETH2D x) = getMinimumBin x+  getMinimumStored (ETH2D x) = getMinimumStored x+  getMean (ETH2D x) = getMean x+  getMeanError (ETH2D x) = getMeanError x+  getNbinsX (ETH2D x) = getNbinsX x+  getNbinsY (ETH2D x) = getNbinsY x+  getNbinsZ (ETH2D x) = getNbinsZ x+  getQuantilesTH1 (ETH2D x) = getQuantilesTH1 x+  getRandom (ETH2D x) = getRandom x+  getStats (ETH2D x) = getStats x+  getSumOfWeights (ETH2D x) = getSumOfWeights x+  getSumw2 (ETH2D x) = getSumw2 x+  getSumw2N (ETH2D x) = getSumw2N x+  getRMS (ETH2D x) = getRMS x+  getRMSError (ETH2D x) = getRMSError x+  getSkewness (ETH2D x) = getSkewness x+  integral1 (ETH2D x) = integral1 x+  interpolate1 (ETH2D x) = interpolate1 x+  interpolate2 (ETH2D x) = interpolate2 x+  interpolate3 (ETH2D x) = interpolate3 x+  kolmogorovTest (ETH2D x) = kolmogorovTest x+  labelsDeflate (ETH2D x) = labelsDeflate x+  labelsInflate (ETH2D x) = labelsInflate x+  labelsOption (ETH2D x) = labelsOption x+  multiflyF (ETH2D x) = multiflyF x+  multiply (ETH2D x) = multiply x+  putStats (ETH2D x) = putStats x+  rebin (ETH2D x) = rebin x+  rebinAxis (ETH2D x) = rebinAxis x+  rebuild (ETH2D x) = rebuild x+  recursiveRemove (ETH2D x) = recursiveRemove x+  reset (ETH2D x) = reset x+  resetStats (ETH2D x) = resetStats x+  scale (ETH2D x) = scale x+  setAxisColorA (ETH2D x) = setAxisColorA x+  setAxisRange (ETH2D x) = setAxisRange x+  setBarOffset (ETH2D x) = setBarOffset x+  setBarWidth (ETH2D x) = setBarWidth x+  setBinContent1 (ETH2D x) = setBinContent1 x+  setBinContent2 (ETH2D x) = setBinContent2 x+  setBinContent3 (ETH2D x) = setBinContent3 x+  setBinError1 (ETH2D x) = setBinError1 x+  setBinError2 (ETH2D x) = setBinError2 x+  setBinError3 (ETH2D x) = setBinError3 x+  setBins1 (ETH2D x) = setBins1 x+  setBins2 (ETH2D x) = setBins2 x+  setBins3 (ETH2D x) = setBins3 x+  setBinsLength (ETH2D x) = setBinsLength x+  setBuffer (ETH2D x) = setBuffer x+  setCellContent (ETH2D x) = setCellContent x+  setContent (ETH2D x) = setContent x+  setContour (ETH2D x) = setContour x+  setContourLevel (ETH2D x) = setContourLevel x+  setDirectory (ETH2D x) = setDirectory x+  setEntries (ETH2D x) = setEntries x+  setError (ETH2D x) = setError x+  setLabelColorA (ETH2D x) = setLabelColorA x+  setLabelSizeA (ETH2D x) = setLabelSizeA x+  setLabelFontA (ETH2D x) = setLabelFontA x+  setLabelOffsetA (ETH2D x) = setLabelOffsetA x+  setMaximum (ETH2D x) = setMaximum x+  setMinimum (ETH2D x) = setMinimum x+  setNormFactor (ETH2D x) = setNormFactor x+  setStats (ETH2D x) = setStats x+  setOption (ETH2D x) = setOption x+  setXTitle (ETH2D x) = setXTitle x+  setYTitle (ETH2D x) = setYTitle x+  setZTitle (ETH2D x) = setZTitle x+  showBackground (ETH2D x) = showBackground x+  showPeaks (ETH2D x) = showPeaks x+  smooth (ETH2D x) = smooth x+  sumw2 (ETH2D x) = sumw2 x+instance ITObject (Exist TH2D) where+  draw (ETH2D x) = draw x+  findObject (ETH2D x) = findObject x+  getName (ETH2D x) = getName x+  isA (ETH2D x) = isA x+  paint (ETH2D x) = paint x+  printObj (ETH2D x) = printObj x+  saveAs (ETH2D x) = saveAs x+  write (ETH2D x) = write x+instance ITAttLine (Exist TH2D) where+  getLineColor (ETH2D x) = getLineColor x+  getLineStyle (ETH2D x) = getLineStyle x+  getLineWidth (ETH2D x) = getLineWidth x+  resetAttLine (ETH2D x) = resetAttLine x+  setLineAttributes (ETH2D x) = setLineAttributes x+  setLineColor (ETH2D x) = setLineColor x+  setLineStyle (ETH2D x) = setLineStyle x+  setLineWidth (ETH2D x) = setLineWidth x+instance ITAttFill (Exist TH2D) where+  setFillColor (ETH2D x) = setFillColor x+  setFillStyle (ETH2D x) = setFillStyle x+instance ITAttMarker (Exist TH2D) where+  getMarkerColor (ETH2D x) = getMarkerColor x+  getMarkerStyle (ETH2D x) = getMarkerStyle x+  getMarkerSize (ETH2D x) = getMarkerSize x+  resetAttMarker (ETH2D x) = resetAttMarker x+  setMarkerAttributes (ETH2D x) = setMarkerAttributes x+  setMarkerColor (ETH2D x) = setMarkerColor x+  setMarkerStyle (ETH2D x) = setMarkerStyle x+  setMarkerSize (ETH2D x) = setMarkerSize x+instance IDeletable (Exist TH2D) where+  delete (ETH2D x) = delete x+instance ITArray (Exist TH2D) where++++newTH2D :: CString -> CString -> CInt -> CDouble -> CDouble -> CInt -> CDouble -> CDouble -> IO TH2D+newTH2D = xform7 c_th2d_newth2d++++++instance FPtr (Exist TH2D) where+  type Raw (Exist TH2D) = RawTH2D+  get_fptr (ETH2D obj) = castForeignPtr (get_fptr obj)+  cast_fptr_to_obj fptr = ETH2D (cast_fptr_to_obj (fptr :: ForeignPtr RawTH2D) :: TH2D)
+ src/HROOT/Hist/TH2D/Interface.hs view
@@ -0,0 +1,37 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++-- module HROOT.Class.Interface where++module HROOT.Hist.TH2D.Interface where+++import Data.Word+import Foreign.C+import Foreign.Ptr+import Foreign.ForeignPtr+import FFICXX.Runtime.Cast++import HROOT.Hist.TH2D.RawType++import HROOT.Hist.TH2.Interface+import HROOT.Core.TArrayD.Interface+---- ============ ----++++class (ITH2 a,ITArrayD a) => ITH2D a where++instance Existable TH2D where+  data Exist TH2D = forall a. (FPtr a, ITH2D a) => ETH2D a++upcastTH2D :: (FPtr a, ITH2D a) => a -> TH2D+upcastTH2D h = let fh = get_fptr h+                   fh2 :: ForeignPtr RawTH2D = castForeignPtr fh+               in cast_fptr_to_obj fh2++downcastTH2D :: (FPtr a, ITH2D a) => TH2D -> a +downcastTH2D h = let fh = get_fptr h+                     fh2 = castForeignPtr fh+                 in cast_fptr_to_obj fh2
+ src/HROOT/Hist/TH2D/RawType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++module HROOT.Hist.TH2D.RawType where+++import Foreign.ForeignPtr+import FFICXX.Runtime.Cast  ++data RawTH2D+newtype TH2D = TH2D (ForeignPtr RawTH2D) deriving (Eq, Ord, Show)+instance FPtr TH2D where+   type Raw TH2D = RawTH2D+   get_fptr (TH2D fptr) = fptr+   cast_fptr_to_obj = TH2D
+ src/HROOT/Hist/TH2F.hs view
@@ -0,0 +1,15 @@+module HROOT.Hist.TH2F+  (+    TH2F(..)+  , ITH2F+  , upcastTH2F+  , downcastTH2F+  , newTH2F+ +  ) where++import HROOT.Hist.TH2F.RawType+import HROOT.Hist.TH2F.Interface+import HROOT.Hist.TH2F.Implementation++
+ src/HROOT/Hist/TH2F/Cast.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeFamilies, +             MultiParamTypeClasses, OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH2F.Cast where+++import Foreign.Ptr+import Foreign.ForeignPtr (castForeignPtr, newForeignPtr_)+import Foreign.ForeignPtr.Unsafe+import FFICXX.Runtime.Cast+import System.IO.Unsafe++import HROOT.Hist.TH2F.RawType+import HROOT.Hist.TH2F.Interface++instance (ITH2F a, FPtr a) => Castable a (Ptr RawTH2F) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ ++instance Castable TH2F (Ptr RawTH2F) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+ src/HROOT/Hist/TH2F/FFI.hsc view
@@ -0,0 +1,550 @@+{-# LANGUAGE ForeignFunctionInterface #-}++-- module HROOT.Class.FFI where++module HROOT.Hist.TH2F.FFI where+++import Foreign.C            +import Foreign.Ptr++-- import HROOT.Class.Interface++-- #include ""++import HROOT.Hist.TH2F.RawType+import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH2.RawType+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TF1.RawType+import HROOT.Core.TObjArray.RawType+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TArrayD.RawType+import HROOT.Hist.TAxis.RawType+import HROOT.Core.TObject.RawType+import HROOT.Core.TClass.RawType++#include "HROOTHistTH2F.h"++foreign import ccall "HROOTHistTH2F.h TH2F_fill2" c_th2f_fill2 +  :: (Ptr RawTH2F) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2F.h TH2F_fill2w" c_th2f_fill2w +  :: (Ptr RawTH2F) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2F.h TH2F_fillN2" c_th2f_filln2 +  :: (Ptr RawTH2F) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_fillRandom2" c_th2f_fillrandom2 +  :: (Ptr RawTH2F) -> (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_findFirstBinAbove2" c_th2f_findfirstbinabove2 +  :: (Ptr RawTH2F) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2F.h TH2F_findLastBinAbove2" c_th2f_findlastbinabove2 +  :: (Ptr RawTH2F) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2F.h TH2F_FitSlicesX" c_th2f_fitslicesx +  :: (Ptr RawTH2F) -> (Ptr RawTF1) -> CInt -> CInt -> CInt -> CString -> (Ptr RawTObjArray) -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_FitSlicesY" c_th2f_fitslicesy +  :: (Ptr RawTH2F) -> (Ptr RawTF1) -> CInt -> CInt -> CInt -> CString -> (Ptr RawTObjArray) -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_getCorrelationFactor2" c_th2f_getcorrelationfactor2 +  :: (Ptr RawTH2F) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_getCovariance2" c_th2f_getcovariance2 +  :: (Ptr RawTH2F) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_integral2" c_th2f_integral2 +  :: (Ptr RawTH2F) -> CInt -> CInt -> CInt -> CInt -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_rebinX2" c_th2f_rebinx2 +  :: (Ptr RawTH2F) -> CInt -> CString -> IO (Ptr RawTH2)++foreign import ccall "HROOTHistTH2F.h TH2F_rebinY2" c_th2f_rebiny2 +  :: (Ptr RawTH2F) -> CInt -> CString -> IO (Ptr RawTH2)++foreign import ccall "HROOTHistTH2F.h TH2F_Rebin2D" c_th2f_rebin2d +  :: (Ptr RawTH2F) -> CInt -> CInt -> CString -> IO (Ptr RawTH2)++foreign import ccall "HROOTHistTH2F.h TH2F_SetShowProjectionX" c_th2f_setshowprojectionx +  :: (Ptr RawTH2F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetShowProjectionY" c_th2f_setshowprojectiony +  :: (Ptr RawTH2F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_Add" c_th2f_add +  :: (Ptr RawTH2F) -> (Ptr RawTH1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_AddBinContent" c_th2f_addbincontent +  :: (Ptr RawTH2F) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_Chi2Test" c_th2f_chi2test +  :: (Ptr RawTH2F) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_ComputeIntegral" c_th2f_computeintegral +  :: (Ptr RawTH2F) -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_DirectoryAutoAdd" c_th2f_directoryautoadd +  :: (Ptr RawTH2F) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_Divide" c_th2f_divide +  :: (Ptr RawTH2F) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_drawCopyTH1" c_th2f_drawcopyth1 +  :: (Ptr RawTH2F) -> CString -> IO (Ptr RawTH2F)++foreign import ccall "HROOTHistTH2F.h TH2F_DrawNormalized" c_th2f_drawnormalized +  :: (Ptr RawTH2F) -> CString -> CDouble -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH2F.h TH2F_drawPanelTH1" c_th2f_drawpanelth1 +  :: (Ptr RawTH2F) -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_BufferEmpty" c_th2f_bufferempty +  :: (Ptr RawTH2F) -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2F.h TH2F_evalF" c_th2f_evalf +  :: (Ptr RawTH2F) -> (Ptr RawTF1) -> CString -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_FFT" c_th2f_fft +  :: (Ptr RawTH2F) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH2F.h TH2F_fill1" c_th2f_fill1 +  :: (Ptr RawTH2F) -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2F.h TH2F_fill1w" c_th2f_fill1w +  :: (Ptr RawTH2F) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2F.h TH2F_fillN1" c_th2f_filln1 +  :: (Ptr RawTH2F) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_FillRandom" c_th2f_fillrandom +  :: (Ptr RawTH2F) -> (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_FindBin" c_th2f_findbin +  :: (Ptr RawTH2F) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2F.h TH2F_FindFixBin" c_th2f_findfixbin +  :: (Ptr RawTH2F) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2F.h TH2F_FindFirstBinAbove" c_th2f_findfirstbinabove +  :: (Ptr RawTH2F) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2F.h TH2F_FindLastBinAbove" c_th2f_findlastbinabove +  :: (Ptr RawTH2F) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2F.h TH2F_FitPanelTH1" c_th2f_fitpanelth1 +  :: (Ptr RawTH2F) -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_getNdivisionA" c_th2f_getndivisiona +  :: (Ptr RawTH2F) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2F.h TH2F_getAxisColorA" c_th2f_getaxiscolora +  :: (Ptr RawTH2F) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2F.h TH2F_getLabelColorA" c_th2f_getlabelcolora +  :: (Ptr RawTH2F) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2F.h TH2F_getLabelFontA" c_th2f_getlabelfonta +  :: (Ptr RawTH2F) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2F.h TH2F_getLabelOffsetA" c_th2f_getlabeloffseta +  :: (Ptr RawTH2F) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_getLabelSizeA" c_th2f_getlabelsizea +  :: (Ptr RawTH2F) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_getTitleFontA" c_th2f_gettitlefonta +  :: (Ptr RawTH2F) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2F.h TH2F_getTitleOffsetA" c_th2f_gettitleoffseta +  :: (Ptr RawTH2F) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_getTitleSizeA" c_th2f_gettitlesizea +  :: (Ptr RawTH2F) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_getTickLengthA" c_th2f_getticklengtha +  :: (Ptr RawTH2F) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_GetBarOffset" c_th2f_getbaroffset +  :: (Ptr RawTH2F) -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_GetBarWidth" c_th2f_getbarwidth +  :: (Ptr RawTH2F) -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_GetContour" c_th2f_getcontour +  :: (Ptr RawTH2F) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH2F.h TH2F_GetContourLevel" c_th2f_getcontourlevel +  :: (Ptr RawTH2F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_GetContourLevelPad" c_th2f_getcontourlevelpad +  :: (Ptr RawTH2F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_GetBin" c_th2f_getbin +  :: (Ptr RawTH2F) -> CInt -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2F.h TH2F_GetBinCenter" c_th2f_getbincenter +  :: (Ptr RawTH2F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_GetBinContent1" c_th2f_getbincontent1 +  :: (Ptr RawTH2F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_GetBinContent2" c_th2f_getbincontent2 +  :: (Ptr RawTH2F) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_GetBinContent3" c_th2f_getbincontent3 +  :: (Ptr RawTH2F) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_GetBinError1" c_th2f_getbinerror1 +  :: (Ptr RawTH2F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_GetBinError2" c_th2f_getbinerror2 +  :: (Ptr RawTH2F) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_GetBinError3" c_th2f_getbinerror3 +  :: (Ptr RawTH2F) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_GetBinLowEdge" c_th2f_getbinlowedge +  :: (Ptr RawTH2F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_GetBinWidth" c_th2f_getbinwidth +  :: (Ptr RawTH2F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_GetCellContent" c_th2f_getcellcontent +  :: (Ptr RawTH2F) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_GetCellError" c_th2f_getcellerror +  :: (Ptr RawTH2F) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_GetEntries" c_th2f_getentries +  :: (Ptr RawTH2F) -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_GetEffectiveEntries" c_th2f_geteffectiveentries +  :: (Ptr RawTH2F) -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_GetFunction" c_th2f_getfunction +  :: (Ptr RawTH2F) -> CString -> IO (Ptr RawTF1)++foreign import ccall "HROOTHistTH2F.h TH2F_GetDimension" c_th2f_getdimension +  :: (Ptr RawTH2F) -> IO CInt++foreign import ccall "HROOTHistTH2F.h TH2F_GetKurtosis" c_th2f_getkurtosis +  :: (Ptr RawTH2F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_GetLowEdge" c_th2f_getlowedge +  :: (Ptr RawTH2F) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_getMaximumTH1" c_th2f_getmaximumth1 +  :: (Ptr RawTH2F) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_GetMaximumBin" c_th2f_getmaximumbin +  :: (Ptr RawTH2F) -> IO CInt++foreign import ccall "HROOTHistTH2F.h TH2F_GetMaximumStored" c_th2f_getmaximumstored +  :: (Ptr RawTH2F) -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_getMinimumTH1" c_th2f_getminimumth1 +  :: (Ptr RawTH2F) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_GetMinimumBin" c_th2f_getminimumbin +  :: (Ptr RawTH2F) -> IO CInt++foreign import ccall "HROOTHistTH2F.h TH2F_GetMinimumStored" c_th2f_getminimumstored +  :: (Ptr RawTH2F) -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_GetMean" c_th2f_getmean +  :: (Ptr RawTH2F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_GetMeanError" c_th2f_getmeanerror +  :: (Ptr RawTH2F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_GetNbinsX" c_th2f_getnbinsx +  :: (Ptr RawTH2F) -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_GetNbinsY" c_th2f_getnbinsy +  :: (Ptr RawTH2F) -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_GetNbinsZ" c_th2f_getnbinsz +  :: (Ptr RawTH2F) -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_getQuantilesTH1" c_th2f_getquantilesth1 +  :: (Ptr RawTH2F) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH2F.h TH2F_GetRandom" c_th2f_getrandom +  :: (Ptr RawTH2F) -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_GetStats" c_th2f_getstats +  :: (Ptr RawTH2F) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_GetSumOfWeights" c_th2f_getsumofweights +  :: (Ptr RawTH2F) -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_GetSumw2" c_th2f_getsumw2 +  :: (Ptr RawTH2F) -> IO (Ptr RawTArrayD)++foreign import ccall "HROOTHistTH2F.h TH2F_GetSumw2N" c_th2f_getsumw2n +  :: (Ptr RawTH2F) -> IO CInt++foreign import ccall "HROOTHistTH2F.h TH2F_GetRMS" c_th2f_getrms +  :: (Ptr RawTH2F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_GetRMSError" c_th2f_getrmserror +  :: (Ptr RawTH2F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_GetSkewness" c_th2f_getskewness +  :: (Ptr RawTH2F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_integral1" c_th2f_integral1 +  :: (Ptr RawTH2F) -> CInt -> CInt -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_interpolate1" c_th2f_interpolate1 +  :: (Ptr RawTH2F) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_interpolate2" c_th2f_interpolate2 +  :: (Ptr RawTH2F) -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_interpolate3" c_th2f_interpolate3 +  :: (Ptr RawTH2F) -> CDouble -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_KolmogorovTest" c_th2f_kolmogorovtest +  :: (Ptr RawTH2F) -> (Ptr RawTH1) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_LabelsDeflate" c_th2f_labelsdeflate +  :: (Ptr RawTH2F) -> CString -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_LabelsInflate" c_th2f_labelsinflate +  :: (Ptr RawTH2F) -> CString -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_LabelsOption" c_th2f_labelsoption +  :: (Ptr RawTH2F) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_multiflyF" c_th2f_multiflyf +  :: (Ptr RawTH2F) -> (Ptr RawTF1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_Multiply" c_th2f_multiply +  :: (Ptr RawTH2F) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_PutStats" c_th2f_putstats +  :: (Ptr RawTH2F) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_Rebin" c_th2f_rebin +  :: (Ptr RawTH2F) -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH2F.h TH2F_RebinAxis" c_th2f_rebinaxis +  :: (Ptr RawTH2F) -> CDouble -> (Ptr RawTAxis) -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_Rebuild" c_th2f_rebuild +  :: (Ptr RawTH2F) -> CString -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_RecursiveRemove" c_th2f_recursiveremove +  :: (Ptr RawTH2F) -> (Ptr RawTObject) -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_Reset" c_th2f_reset +  :: (Ptr RawTH2F) -> CString -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_ResetStats" c_th2f_resetstats +  :: (Ptr RawTH2F) -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_Scale" c_th2f_scale +  :: (Ptr RawTH2F) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_setAxisColorA" c_th2f_setaxiscolora +  :: (Ptr RawTH2F) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetAxisRange" c_th2f_setaxisrange +  :: (Ptr RawTH2F) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetBarOffset" c_th2f_setbaroffset +  :: (Ptr RawTH2F) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetBarWidth" c_th2f_setbarwidth +  :: (Ptr RawTH2F) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_setBinContent1" c_th2f_setbincontent1 +  :: (Ptr RawTH2F) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_setBinContent2" c_th2f_setbincontent2 +  :: (Ptr RawTH2F) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_setBinContent3" c_th2f_setbincontent3 +  :: (Ptr RawTH2F) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_setBinError1" c_th2f_setbinerror1 +  :: (Ptr RawTH2F) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_setBinError2" c_th2f_setbinerror2 +  :: (Ptr RawTH2F) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_setBinError3" c_th2f_setbinerror3 +  :: (Ptr RawTH2F) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_setBins1" c_th2f_setbins1 +  :: (Ptr RawTH2F) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_setBins2" c_th2f_setbins2 +  :: (Ptr RawTH2F) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_setBins3" c_th2f_setbins3 +  :: (Ptr RawTH2F) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetBinsLength" c_th2f_setbinslength +  :: (Ptr RawTH2F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetBuffer" c_th2f_setbuffer +  :: (Ptr RawTH2F) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetCellContent" c_th2f_setcellcontent +  :: (Ptr RawTH2F) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetContent" c_th2f_setcontent +  :: (Ptr RawTH2F) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetContour" c_th2f_setcontour +  :: (Ptr RawTH2F) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetContourLevel" c_th2f_setcontourlevel +  :: (Ptr RawTH2F) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetDirectory" c_th2f_setdirectory +  :: (Ptr RawTH2F) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetEntries" c_th2f_setentries +  :: (Ptr RawTH2F) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetError" c_th2f_seterror +  :: (Ptr RawTH2F) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_setLabelColorA" c_th2f_setlabelcolora +  :: (Ptr RawTH2F) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_setLabelSizeA" c_th2f_setlabelsizea +  :: (Ptr RawTH2F) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_setLabelFontA" c_th2f_setlabelfonta +  :: (Ptr RawTH2F) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_setLabelOffsetA" c_th2f_setlabeloffseta +  :: (Ptr RawTH2F) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetMaximum" c_th2f_setmaximum +  :: (Ptr RawTH2F) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetMinimum" c_th2f_setminimum +  :: (Ptr RawTH2F) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetNormFactor" c_th2f_setnormfactor +  :: (Ptr RawTH2F) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetStats" c_th2f_setstats +  :: (Ptr RawTH2F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetOption" c_th2f_setoption +  :: (Ptr RawTH2F) -> CString -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetXTitle" c_th2f_setxtitle +  :: (Ptr RawTH2F) -> CString -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetYTitle" c_th2f_setytitle +  :: (Ptr RawTH2F) -> CString -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetZTitle" c_th2f_setztitle +  :: (Ptr RawTH2F) -> CString -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_ShowBackground" c_th2f_showbackground +  :: (Ptr RawTH2F) -> CInt -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH2F.h TH2F_ShowPeaks" c_th2f_showpeaks +  :: (Ptr RawTH2F) -> CDouble -> CString -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2F.h TH2F_Smooth" c_th2f_smooth +  :: (Ptr RawTH2F) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_Sumw2" c_th2f_sumw2 +  :: (Ptr RawTH2F) -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_Draw" c_th2f_draw +  :: (Ptr RawTH2F) -> CString -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_FindObject" c_th2f_findobject +  :: (Ptr RawTH2F) -> CString -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTH2F.h TH2F_GetName" c_th2f_getname +  :: (Ptr RawTH2F) -> IO CString++foreign import ccall "HROOTHistTH2F.h TH2F_IsA" c_th2f_isa +  :: (Ptr RawTH2F) -> IO (Ptr RawTClass)++foreign import ccall "HROOTHistTH2F.h TH2F_Paint" c_th2f_paint +  :: (Ptr RawTH2F) -> CString -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_printObj" c_th2f_printobj +  :: (Ptr RawTH2F) -> CString -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SaveAs" c_th2f_saveas +  :: (Ptr RawTH2F) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_Write" c_th2f_write +  :: (Ptr RawTH2F) -> CString -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2F.h TH2F_GetLineColor" c_th2f_getlinecolor +  :: (Ptr RawTH2F) -> IO CInt++foreign import ccall "HROOTHistTH2F.h TH2F_GetLineStyle" c_th2f_getlinestyle +  :: (Ptr RawTH2F) -> IO CInt++foreign import ccall "HROOTHistTH2F.h TH2F_GetLineWidth" c_th2f_getlinewidth +  :: (Ptr RawTH2F) -> IO CInt++foreign import ccall "HROOTHistTH2F.h TH2F_ResetAttLine" c_th2f_resetattline +  :: (Ptr RawTH2F) -> CString -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetLineAttributes" c_th2f_setlineattributes +  :: (Ptr RawTH2F) -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetLineColor" c_th2f_setlinecolor +  :: (Ptr RawTH2F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetLineStyle" c_th2f_setlinestyle +  :: (Ptr RawTH2F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetLineWidth" c_th2f_setlinewidth +  :: (Ptr RawTH2F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetFillColor" c_th2f_setfillcolor +  :: (Ptr RawTH2F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetFillStyle" c_th2f_setfillstyle +  :: (Ptr RawTH2F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_GetMarkerColor" c_th2f_getmarkercolor +  :: (Ptr RawTH2F) -> IO CInt++foreign import ccall "HROOTHistTH2F.h TH2F_GetMarkerStyle" c_th2f_getmarkerstyle +  :: (Ptr RawTH2F) -> IO CInt++foreign import ccall "HROOTHistTH2F.h TH2F_GetMarkerSize" c_th2f_getmarkersize +  :: (Ptr RawTH2F) -> IO CDouble++foreign import ccall "HROOTHistTH2F.h TH2F_ResetAttMarker" c_th2f_resetattmarker +  :: (Ptr RawTH2F) -> CString -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetMarkerAttributes" c_th2f_setmarkerattributes +  :: (Ptr RawTH2F) -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetMarkerColor" c_th2f_setmarkercolor +  :: (Ptr RawTH2F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetMarkerStyle" c_th2f_setmarkerstyle +  :: (Ptr RawTH2F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_SetMarkerSize" c_th2f_setmarkersize +  :: (Ptr RawTH2F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_delete" c_th2f_delete +  :: (Ptr RawTH2F) -> IO ()++foreign import ccall "HROOTHistTH2F.h TH2F_newTH2F" c_th2f_newth2f +  :: CString -> CString -> CInt -> CDouble -> CDouble -> CInt -> CDouble -> CDouble -> IO (Ptr RawTH2F)+
+ src/HROOT/Hist/TH2F/Implementation.hs view
@@ -0,0 +1,453 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, +             OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH2F.Implementation where+++import FFICXX.Runtime.Cast++import HROOT.Hist.TH2F.RawType+import HROOT.Hist.TH2F.FFI+import HROOT.Hist.TH2F.Interface+import HROOT.Hist.TH2F.Cast+import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH1D.Cast+import HROOT.Hist.TH1D.Interface+import HROOT.Hist.TF1.RawType+import HROOT.Hist.TF1.Cast+import HROOT.Hist.TF1.Interface+import HROOT.Core.TObjArray.RawType+import HROOT.Core.TObjArray.Cast+import HROOT.Core.TObjArray.Interface+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TDirectory.Cast+import HROOT.Core.TDirectory.Interface+import HROOT.Core.TArrayD.RawType+import HROOT.Core.TArrayD.Cast+import HROOT.Core.TArrayD.Interface+import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.Cast+import HROOT.Hist.TAxis.Interface+import HROOT.Core.TClass.RawType+import HROOT.Core.TClass.Cast+import HROOT.Core.TClass.Interface+import HROOT.Hist.TH2.RawType+import HROOT.Hist.TH2.Cast+import HROOT.Hist.TH2.Interface+import HROOT.Core.TArrayF.RawType+import HROOT.Core.TArrayF.Cast+import HROOT.Core.TArrayF.Interface+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH1.Cast+import HROOT.Hist.TH1.Interface+import HROOT.Core.TObject.RawType+import HROOT.Core.TObject.Cast+import HROOT.Core.TObject.Interface+import HROOT.Core.TAttLine.RawType+import HROOT.Core.TAttLine.Cast+import HROOT.Core.TAttLine.Interface+import HROOT.Core.TAttFill.RawType+import HROOT.Core.TAttFill.Cast+import HROOT.Core.TAttFill.Interface+import HROOT.Core.TAttMarker.RawType+import HROOT.Core.TAttMarker.Cast+import HROOT.Core.TAttMarker.Interface+import HROOT.Core.Deletable.RawType+import HROOT.Core.Deletable.Cast+import HROOT.Core.Deletable.Interface+import HROOT.Core.TArray.RawType+import HROOT.Core.TArray.Cast+import HROOT.Core.TArray.Interface++import Data.Word+import Foreign.C+import Foreign.Ptr +import Foreign.ForeignPtr++import System.IO.Unsafe+++instance ITH2F TH2F where+instance ITH2 TH2F where+  fill2 = xform2 c_th2f_fill2+  fill2w = xform3 c_th2f_fill2w+  fillN2 = xform5 c_th2f_filln2+  fillRandom2 = xform2 c_th2f_fillrandom2+  findFirstBinAbove2 = xform2 c_th2f_findfirstbinabove2+  findLastBinAbove2 = xform2 c_th2f_findlastbinabove2+  fitSlicesX = xform6 c_th2f_fitslicesx+  fitSlicesY = xform6 c_th2f_fitslicesy+  getCorrelationFactor2 = xform2 c_th2f_getcorrelationfactor2+  getCovariance2 = xform2 c_th2f_getcovariance2+  integral2 = xform5 c_th2f_integral2+  rebinX2 = xform2 c_th2f_rebinx2+  rebinY2 = xform2 c_th2f_rebiny2+  rebin2D = xform3 c_th2f_rebin2d+  setShowProjectionX = xform1 c_th2f_setshowprojectionx+  setShowProjectionY = xform1 c_th2f_setshowprojectiony+instance ITArrayF TH2F where+instance ITH1 TH2F where+  add = xform2 c_th2f_add+  addBinContent = xform2 c_th2f_addbincontent+  chi2Test = xform3 c_th2f_chi2test+  computeIntegral = xform0 c_th2f_computeintegral+  directoryAutoAdd = xform1 c_th2f_directoryautoadd+  divide = xform5 c_th2f_divide+  drawCopyTH1 = xform1 c_th2f_drawcopyth1+  drawNormalized = xform2 c_th2f_drawnormalized+  drawPanelTH1 = xform0 c_th2f_drawpanelth1+  bufferEmpty = xform1 c_th2f_bufferempty+  evalF = xform2 c_th2f_evalf+  fFT = xform2 c_th2f_fft+  fill1 = xform1 c_th2f_fill1+  fill1w = xform2 c_th2f_fill1w+  fillN1 = xform4 c_th2f_filln1+  fillRandom = xform2 c_th2f_fillrandom+  findBin = xform3 c_th2f_findbin+  findFixBin = xform3 c_th2f_findfixbin+  findFirstBinAbove = xform2 c_th2f_findfirstbinabove+  findLastBinAbove = xform2 c_th2f_findlastbinabove+  fitPanelTH1 = xform0 c_th2f_fitpanelth1+  getNdivisionA = xform1 c_th2f_getndivisiona+  getAxisColorA = xform1 c_th2f_getaxiscolora+  getLabelColorA = xform1 c_th2f_getlabelcolora+  getLabelFontA = xform1 c_th2f_getlabelfonta+  getLabelOffsetA = xform1 c_th2f_getlabeloffseta+  getLabelSizeA = xform1 c_th2f_getlabelsizea+  getTitleFontA = xform1 c_th2f_gettitlefonta+  getTitleOffsetA = xform1 c_th2f_gettitleoffseta+  getTitleSizeA = xform1 c_th2f_gettitlesizea+  getTickLengthA = xform1 c_th2f_getticklengtha+  getBarOffset = xform0 c_th2f_getbaroffset+  getBarWidth = xform0 c_th2f_getbarwidth+  getContour = xform1 c_th2f_getcontour+  getContourLevel = xform1 c_th2f_getcontourlevel+  getContourLevelPad = xform1 c_th2f_getcontourlevelpad+  getBin = xform3 c_th2f_getbin+  getBinCenter = xform1 c_th2f_getbincenter+  getBinContent1 = xform1 c_th2f_getbincontent1+  getBinContent2 = xform2 c_th2f_getbincontent2+  getBinContent3 = xform3 c_th2f_getbincontent3+  getBinError1 = xform1 c_th2f_getbinerror1+  getBinError2 = xform2 c_th2f_getbinerror2+  getBinError3 = xform3 c_th2f_getbinerror3+  getBinLowEdge = xform1 c_th2f_getbinlowedge+  getBinWidth = xform1 c_th2f_getbinwidth+  getCellContent = xform2 c_th2f_getcellcontent+  getCellError = xform2 c_th2f_getcellerror+  getEntries = xform0 c_th2f_getentries+  getEffectiveEntries = xform0 c_th2f_geteffectiveentries+  getFunction = xform1 c_th2f_getfunction+  getDimension = xform0 c_th2f_getdimension+  getKurtosis = xform1 c_th2f_getkurtosis+  getLowEdge = xform1 c_th2f_getlowedge+  getMaximumTH1 = xform1 c_th2f_getmaximumth1+  getMaximumBin = xform0 c_th2f_getmaximumbin+  getMaximumStored = xform0 c_th2f_getmaximumstored+  getMinimumTH1 = xform1 c_th2f_getminimumth1+  getMinimumBin = xform0 c_th2f_getminimumbin+  getMinimumStored = xform0 c_th2f_getminimumstored+  getMean = xform1 c_th2f_getmean+  getMeanError = xform1 c_th2f_getmeanerror+  getNbinsX = xform0 c_th2f_getnbinsx+  getNbinsY = xform0 c_th2f_getnbinsy+  getNbinsZ = xform0 c_th2f_getnbinsz+  getQuantilesTH1 = xform3 c_th2f_getquantilesth1+  getRandom = xform0 c_th2f_getrandom+  getStats = xform1 c_th2f_getstats+  getSumOfWeights = xform0 c_th2f_getsumofweights+  getSumw2 = xform0 c_th2f_getsumw2+  getSumw2N = xform0 c_th2f_getsumw2n+  getRMS = xform1 c_th2f_getrms+  getRMSError = xform1 c_th2f_getrmserror+  getSkewness = xform1 c_th2f_getskewness+  integral1 = xform3 c_th2f_integral1+  interpolate1 = xform1 c_th2f_interpolate1+  interpolate2 = xform2 c_th2f_interpolate2+  interpolate3 = xform3 c_th2f_interpolate3+  kolmogorovTest = xform2 c_th2f_kolmogorovtest+  labelsDeflate = xform1 c_th2f_labelsdeflate+  labelsInflate = xform1 c_th2f_labelsinflate+  labelsOption = xform2 c_th2f_labelsoption+  multiflyF = xform2 c_th2f_multiflyf+  multiply = xform5 c_th2f_multiply+  putStats = xform1 c_th2f_putstats+  rebin = xform3 c_th2f_rebin+  rebinAxis = xform2 c_th2f_rebinaxis+  rebuild = xform1 c_th2f_rebuild+  recursiveRemove = xform1 c_th2f_recursiveremove+  reset = xform1 c_th2f_reset+  resetStats = xform0 c_th2f_resetstats+  scale = xform2 c_th2f_scale+  setAxisColorA = xform2 c_th2f_setaxiscolora+  setAxisRange = xform3 c_th2f_setaxisrange+  setBarOffset = xform1 c_th2f_setbaroffset+  setBarWidth = xform1 c_th2f_setbarwidth+  setBinContent1 = xform2 c_th2f_setbincontent1+  setBinContent2 = xform3 c_th2f_setbincontent2+  setBinContent3 = xform4 c_th2f_setbincontent3+  setBinError1 = xform2 c_th2f_setbinerror1+  setBinError2 = xform3 c_th2f_setbinerror2+  setBinError3 = xform4 c_th2f_setbinerror3+  setBins1 = xform2 c_th2f_setbins1+  setBins2 = xform4 c_th2f_setbins2+  setBins3 = xform6 c_th2f_setbins3+  setBinsLength = xform1 c_th2f_setbinslength+  setBuffer = xform2 c_th2f_setbuffer+  setCellContent = xform3 c_th2f_setcellcontent+  setContent = xform1 c_th2f_setcontent+  setContour = xform2 c_th2f_setcontour+  setContourLevel = xform2 c_th2f_setcontourlevel+  setDirectory = xform1 c_th2f_setdirectory+  setEntries = xform1 c_th2f_setentries+  setError = xform1 c_th2f_seterror+  setLabelColorA = xform2 c_th2f_setlabelcolora+  setLabelSizeA = xform2 c_th2f_setlabelsizea+  setLabelFontA = xform2 c_th2f_setlabelfonta+  setLabelOffsetA = xform2 c_th2f_setlabeloffseta+  setMaximum = xform1 c_th2f_setmaximum+  setMinimum = xform1 c_th2f_setminimum+  setNormFactor = xform1 c_th2f_setnormfactor+  setStats = xform1 c_th2f_setstats+  setOption = xform1 c_th2f_setoption+  setXTitle = xform1 c_th2f_setxtitle+  setYTitle = xform1 c_th2f_setytitle+  setZTitle = xform1 c_th2f_setztitle+  showBackground = xform2 c_th2f_showbackground+  showPeaks = xform3 c_th2f_showpeaks+  smooth = xform2 c_th2f_smooth+  sumw2 = xform0 c_th2f_sumw2+instance ITObject TH2F where+  draw = xform1 c_th2f_draw+  findObject = xform1 c_th2f_findobject+  getName = xform0 c_th2f_getname+  isA = xform0 c_th2f_isa+  paint = xform1 c_th2f_paint+  printObj = xform1 c_th2f_printobj+  saveAs = xform2 c_th2f_saveas+  write = xform3 c_th2f_write+instance ITAttLine TH2F where+  getLineColor = xform0 c_th2f_getlinecolor+  getLineStyle = xform0 c_th2f_getlinestyle+  getLineWidth = xform0 c_th2f_getlinewidth+  resetAttLine = xform1 c_th2f_resetattline+  setLineAttributes = xform0 c_th2f_setlineattributes+  setLineColor = xform1 c_th2f_setlinecolor+  setLineStyle = xform1 c_th2f_setlinestyle+  setLineWidth = xform1 c_th2f_setlinewidth+instance ITAttFill TH2F where+  setFillColor = xform1 c_th2f_setfillcolor+  setFillStyle = xform1 c_th2f_setfillstyle+instance ITAttMarker TH2F where+  getMarkerColor = xform0 c_th2f_getmarkercolor+  getMarkerStyle = xform0 c_th2f_getmarkerstyle+  getMarkerSize = xform0 c_th2f_getmarkersize+  resetAttMarker = xform1 c_th2f_resetattmarker+  setMarkerAttributes = xform0 c_th2f_setmarkerattributes+  setMarkerColor = xform1 c_th2f_setmarkercolor+  setMarkerStyle = xform1 c_th2f_setmarkerstyle+  setMarkerSize = xform1 c_th2f_setmarkersize+instance IDeletable TH2F where+  delete = xform0 c_th2f_delete+instance ITArray TH2F where++instance ITH2F (Exist TH2F) where++instance ITH2 (Exist TH2F) where+  fill2 (ETH2F x) = fill2 x+  fill2w (ETH2F x) = fill2w x+  fillN2 (ETH2F x) = fillN2 x+  fillRandom2 (ETH2F x) = fillRandom2 x+  findFirstBinAbove2 (ETH2F x) = findFirstBinAbove2 x+  findLastBinAbove2 (ETH2F x) = findLastBinAbove2 x+  fitSlicesX (ETH2F x) = fitSlicesX x+  fitSlicesY (ETH2F x) = fitSlicesY x+  getCorrelationFactor2 (ETH2F x) = getCorrelationFactor2 x+  getCovariance2 (ETH2F x) = getCovariance2 x+  integral2 (ETH2F x) = integral2 x+  rebinX2 (ETH2F x) = rebinX2 x+  rebinY2 (ETH2F x) = rebinY2 x+  rebin2D (ETH2F x) = rebin2D x+  setShowProjectionX (ETH2F x) = setShowProjectionX x+  setShowProjectionY (ETH2F x) = setShowProjectionY x+instance ITArrayF (Exist TH2F) where++instance ITH1 (Exist TH2F) where+  add (ETH2F x) = add x+  addBinContent (ETH2F x) = addBinContent x+  chi2Test (ETH2F x) = chi2Test x+  computeIntegral (ETH2F x) = computeIntegral x+  directoryAutoAdd (ETH2F x) = directoryAutoAdd x+  divide (ETH2F x) = divide x+  drawCopyTH1 (ETH2F x) a1 = return . ETH2F =<< drawCopyTH1 x a1+  drawNormalized (ETH2F x) = drawNormalized x+  drawPanelTH1 (ETH2F x) = drawPanelTH1 x+  bufferEmpty (ETH2F x) = bufferEmpty x+  evalF (ETH2F x) = evalF x+  fFT (ETH2F x) = fFT x+  fill1 (ETH2F x) = fill1 x+  fill1w (ETH2F x) = fill1w x+  fillN1 (ETH2F x) = fillN1 x+  fillRandom (ETH2F x) = fillRandom x+  findBin (ETH2F x) = findBin x+  findFixBin (ETH2F x) = findFixBin x+  findFirstBinAbove (ETH2F x) = findFirstBinAbove x+  findLastBinAbove (ETH2F x) = findLastBinAbove x+  fitPanelTH1 (ETH2F x) = fitPanelTH1 x+  getNdivisionA (ETH2F x) = getNdivisionA x+  getAxisColorA (ETH2F x) = getAxisColorA x+  getLabelColorA (ETH2F x) = getLabelColorA x+  getLabelFontA (ETH2F x) = getLabelFontA x+  getLabelOffsetA (ETH2F x) = getLabelOffsetA x+  getLabelSizeA (ETH2F x) = getLabelSizeA x+  getTitleFontA (ETH2F x) = getTitleFontA x+  getTitleOffsetA (ETH2F x) = getTitleOffsetA x+  getTitleSizeA (ETH2F x) = getTitleSizeA x+  getTickLengthA (ETH2F x) = getTickLengthA x+  getBarOffset (ETH2F x) = getBarOffset x+  getBarWidth (ETH2F x) = getBarWidth x+  getContour (ETH2F x) = getContour x+  getContourLevel (ETH2F x) = getContourLevel x+  getContourLevelPad (ETH2F x) = getContourLevelPad x+  getBin (ETH2F x) = getBin x+  getBinCenter (ETH2F x) = getBinCenter x+  getBinContent1 (ETH2F x) = getBinContent1 x+  getBinContent2 (ETH2F x) = getBinContent2 x+  getBinContent3 (ETH2F x) = getBinContent3 x+  getBinError1 (ETH2F x) = getBinError1 x+  getBinError2 (ETH2F x) = getBinError2 x+  getBinError3 (ETH2F x) = getBinError3 x+  getBinLowEdge (ETH2F x) = getBinLowEdge x+  getBinWidth (ETH2F x) = getBinWidth x+  getCellContent (ETH2F x) = getCellContent x+  getCellError (ETH2F x) = getCellError x+  getEntries (ETH2F x) = getEntries x+  getEffectiveEntries (ETH2F x) = getEffectiveEntries x+  getFunction (ETH2F x) = getFunction x+  getDimension (ETH2F x) = getDimension x+  getKurtosis (ETH2F x) = getKurtosis x+  getLowEdge (ETH2F x) = getLowEdge x+  getMaximumTH1 (ETH2F x) = getMaximumTH1 x+  getMaximumBin (ETH2F x) = getMaximumBin x+  getMaximumStored (ETH2F x) = getMaximumStored x+  getMinimumTH1 (ETH2F x) = getMinimumTH1 x+  getMinimumBin (ETH2F x) = getMinimumBin x+  getMinimumStored (ETH2F x) = getMinimumStored x+  getMean (ETH2F x) = getMean x+  getMeanError (ETH2F x) = getMeanError x+  getNbinsX (ETH2F x) = getNbinsX x+  getNbinsY (ETH2F x) = getNbinsY x+  getNbinsZ (ETH2F x) = getNbinsZ x+  getQuantilesTH1 (ETH2F x) = getQuantilesTH1 x+  getRandom (ETH2F x) = getRandom x+  getStats (ETH2F x) = getStats x+  getSumOfWeights (ETH2F x) = getSumOfWeights x+  getSumw2 (ETH2F x) = getSumw2 x+  getSumw2N (ETH2F x) = getSumw2N x+  getRMS (ETH2F x) = getRMS x+  getRMSError (ETH2F x) = getRMSError x+  getSkewness (ETH2F x) = getSkewness x+  integral1 (ETH2F x) = integral1 x+  interpolate1 (ETH2F x) = interpolate1 x+  interpolate2 (ETH2F x) = interpolate2 x+  interpolate3 (ETH2F x) = interpolate3 x+  kolmogorovTest (ETH2F x) = kolmogorovTest x+  labelsDeflate (ETH2F x) = labelsDeflate x+  labelsInflate (ETH2F x) = labelsInflate x+  labelsOption (ETH2F x) = labelsOption x+  multiflyF (ETH2F x) = multiflyF x+  multiply (ETH2F x) = multiply x+  putStats (ETH2F x) = putStats x+  rebin (ETH2F x) = rebin x+  rebinAxis (ETH2F x) = rebinAxis x+  rebuild (ETH2F x) = rebuild x+  recursiveRemove (ETH2F x) = recursiveRemove x+  reset (ETH2F x) = reset x+  resetStats (ETH2F x) = resetStats x+  scale (ETH2F x) = scale x+  setAxisColorA (ETH2F x) = setAxisColorA x+  setAxisRange (ETH2F x) = setAxisRange x+  setBarOffset (ETH2F x) = setBarOffset x+  setBarWidth (ETH2F x) = setBarWidth x+  setBinContent1 (ETH2F x) = setBinContent1 x+  setBinContent2 (ETH2F x) = setBinContent2 x+  setBinContent3 (ETH2F x) = setBinContent3 x+  setBinError1 (ETH2F x) = setBinError1 x+  setBinError2 (ETH2F x) = setBinError2 x+  setBinError3 (ETH2F x) = setBinError3 x+  setBins1 (ETH2F x) = setBins1 x+  setBins2 (ETH2F x) = setBins2 x+  setBins3 (ETH2F x) = setBins3 x+  setBinsLength (ETH2F x) = setBinsLength x+  setBuffer (ETH2F x) = setBuffer x+  setCellContent (ETH2F x) = setCellContent x+  setContent (ETH2F x) = setContent x+  setContour (ETH2F x) = setContour x+  setContourLevel (ETH2F x) = setContourLevel x+  setDirectory (ETH2F x) = setDirectory x+  setEntries (ETH2F x) = setEntries x+  setError (ETH2F x) = setError x+  setLabelColorA (ETH2F x) = setLabelColorA x+  setLabelSizeA (ETH2F x) = setLabelSizeA x+  setLabelFontA (ETH2F x) = setLabelFontA x+  setLabelOffsetA (ETH2F x) = setLabelOffsetA x+  setMaximum (ETH2F x) = setMaximum x+  setMinimum (ETH2F x) = setMinimum x+  setNormFactor (ETH2F x) = setNormFactor x+  setStats (ETH2F x) = setStats x+  setOption (ETH2F x) = setOption x+  setXTitle (ETH2F x) = setXTitle x+  setYTitle (ETH2F x) = setYTitle x+  setZTitle (ETH2F x) = setZTitle x+  showBackground (ETH2F x) = showBackground x+  showPeaks (ETH2F x) = showPeaks x+  smooth (ETH2F x) = smooth x+  sumw2 (ETH2F x) = sumw2 x+instance ITObject (Exist TH2F) where+  draw (ETH2F x) = draw x+  findObject (ETH2F x) = findObject x+  getName (ETH2F x) = getName x+  isA (ETH2F x) = isA x+  paint (ETH2F x) = paint x+  printObj (ETH2F x) = printObj x+  saveAs (ETH2F x) = saveAs x+  write (ETH2F x) = write x+instance ITAttLine (Exist TH2F) where+  getLineColor (ETH2F x) = getLineColor x+  getLineStyle (ETH2F x) = getLineStyle x+  getLineWidth (ETH2F x) = getLineWidth x+  resetAttLine (ETH2F x) = resetAttLine x+  setLineAttributes (ETH2F x) = setLineAttributes x+  setLineColor (ETH2F x) = setLineColor x+  setLineStyle (ETH2F x) = setLineStyle x+  setLineWidth (ETH2F x) = setLineWidth x+instance ITAttFill (Exist TH2F) where+  setFillColor (ETH2F x) = setFillColor x+  setFillStyle (ETH2F x) = setFillStyle x+instance ITAttMarker (Exist TH2F) where+  getMarkerColor (ETH2F x) = getMarkerColor x+  getMarkerStyle (ETH2F x) = getMarkerStyle x+  getMarkerSize (ETH2F x) = getMarkerSize x+  resetAttMarker (ETH2F x) = resetAttMarker x+  setMarkerAttributes (ETH2F x) = setMarkerAttributes x+  setMarkerColor (ETH2F x) = setMarkerColor x+  setMarkerStyle (ETH2F x) = setMarkerStyle x+  setMarkerSize (ETH2F x) = setMarkerSize x+instance IDeletable (Exist TH2F) where+  delete (ETH2F x) = delete x+instance ITArray (Exist TH2F) where++++newTH2F :: CString -> CString -> CInt -> CDouble -> CDouble -> CInt -> CDouble -> CDouble -> IO TH2F+newTH2F = xform7 c_th2f_newth2f++++++instance FPtr (Exist TH2F) where+  type Raw (Exist TH2F) = RawTH2F+  get_fptr (ETH2F obj) = castForeignPtr (get_fptr obj)+  cast_fptr_to_obj fptr = ETH2F (cast_fptr_to_obj (fptr :: ForeignPtr RawTH2F) :: TH2F)
+ src/HROOT/Hist/TH2F/Interface.hs view
@@ -0,0 +1,37 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++-- module HROOT.Class.Interface where++module HROOT.Hist.TH2F.Interface where+++import Data.Word+import Foreign.C+import Foreign.Ptr+import Foreign.ForeignPtr+import FFICXX.Runtime.Cast++import HROOT.Hist.TH2F.RawType++import HROOT.Hist.TH2.Interface+import HROOT.Core.TArrayF.Interface+---- ============ ----++++class (ITH2 a,ITArrayF a) => ITH2F a where++instance Existable TH2F where+  data Exist TH2F = forall a. (FPtr a, ITH2F a) => ETH2F a++upcastTH2F :: (FPtr a, ITH2F a) => a -> TH2F+upcastTH2F h = let fh = get_fptr h+                   fh2 :: ForeignPtr RawTH2F = castForeignPtr fh+               in cast_fptr_to_obj fh2++downcastTH2F :: (FPtr a, ITH2F a) => TH2F -> a +downcastTH2F h = let fh = get_fptr h+                     fh2 = castForeignPtr fh+                 in cast_fptr_to_obj fh2
+ src/HROOT/Hist/TH2F/RawType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++module HROOT.Hist.TH2F.RawType where+++import Foreign.ForeignPtr+import FFICXX.Runtime.Cast  ++data RawTH2F+newtype TH2F = TH2F (ForeignPtr RawTH2F) deriving (Eq, Ord, Show)+instance FPtr TH2F where+   type Raw TH2F = RawTH2F+   get_fptr (TH2F fptr) = fptr+   cast_fptr_to_obj = TH2F
+ src/HROOT/Hist/TH2I.hs view
@@ -0,0 +1,15 @@+module HROOT.Hist.TH2I+  (+    TH2I(..)+  , ITH2I+  , upcastTH2I+  , downcastTH2I++ +  ) where++import HROOT.Hist.TH2I.RawType+import HROOT.Hist.TH2I.Interface+import HROOT.Hist.TH2I.Implementation++
+ src/HROOT/Hist/TH2I/Cast.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeFamilies, +             MultiParamTypeClasses, OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH2I.Cast where+++import Foreign.Ptr+import Foreign.ForeignPtr (castForeignPtr, newForeignPtr_)+import Foreign.ForeignPtr.Unsafe+import FFICXX.Runtime.Cast+import System.IO.Unsafe++import HROOT.Hist.TH2I.RawType+import HROOT.Hist.TH2I.Interface++instance (ITH2I a, FPtr a) => Castable a (Ptr RawTH2I) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ ++instance Castable TH2I (Ptr RawTH2I) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+ src/HROOT/Hist/TH2I/FFI.hsc view
@@ -0,0 +1,547 @@+{-# LANGUAGE ForeignFunctionInterface #-}++-- module HROOT.Class.FFI where++module HROOT.Hist.TH2I.FFI where+++import Foreign.C            +import Foreign.Ptr++-- import HROOT.Class.Interface++-- #include ""++import HROOT.Hist.TH2I.RawType+import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH2.RawType+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TF1.RawType+import HROOT.Core.TObjArray.RawType+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TArrayD.RawType+import HROOT.Hist.TAxis.RawType+import HROOT.Core.TObject.RawType+import HROOT.Core.TClass.RawType++#include "HROOTHistTH2I.h"++foreign import ccall "HROOTHistTH2I.h TH2I_fill2" c_th2i_fill2 +  :: (Ptr RawTH2I) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2I.h TH2I_fill2w" c_th2i_fill2w +  :: (Ptr RawTH2I) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2I.h TH2I_fillN2" c_th2i_filln2 +  :: (Ptr RawTH2I) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_fillRandom2" c_th2i_fillrandom2 +  :: (Ptr RawTH2I) -> (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_findFirstBinAbove2" c_th2i_findfirstbinabove2 +  :: (Ptr RawTH2I) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2I.h TH2I_findLastBinAbove2" c_th2i_findlastbinabove2 +  :: (Ptr RawTH2I) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2I.h TH2I_FitSlicesX" c_th2i_fitslicesx +  :: (Ptr RawTH2I) -> (Ptr RawTF1) -> CInt -> CInt -> CInt -> CString -> (Ptr RawTObjArray) -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_FitSlicesY" c_th2i_fitslicesy +  :: (Ptr RawTH2I) -> (Ptr RawTF1) -> CInt -> CInt -> CInt -> CString -> (Ptr RawTObjArray) -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_getCorrelationFactor2" c_th2i_getcorrelationfactor2 +  :: (Ptr RawTH2I) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_getCovariance2" c_th2i_getcovariance2 +  :: (Ptr RawTH2I) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_integral2" c_th2i_integral2 +  :: (Ptr RawTH2I) -> CInt -> CInt -> CInt -> CInt -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_rebinX2" c_th2i_rebinx2 +  :: (Ptr RawTH2I) -> CInt -> CString -> IO (Ptr RawTH2)++foreign import ccall "HROOTHistTH2I.h TH2I_rebinY2" c_th2i_rebiny2 +  :: (Ptr RawTH2I) -> CInt -> CString -> IO (Ptr RawTH2)++foreign import ccall "HROOTHistTH2I.h TH2I_Rebin2D" c_th2i_rebin2d +  :: (Ptr RawTH2I) -> CInt -> CInt -> CString -> IO (Ptr RawTH2)++foreign import ccall "HROOTHistTH2I.h TH2I_SetShowProjectionX" c_th2i_setshowprojectionx +  :: (Ptr RawTH2I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetShowProjectionY" c_th2i_setshowprojectiony +  :: (Ptr RawTH2I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_Add" c_th2i_add +  :: (Ptr RawTH2I) -> (Ptr RawTH1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_AddBinContent" c_th2i_addbincontent +  :: (Ptr RawTH2I) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_Chi2Test" c_th2i_chi2test +  :: (Ptr RawTH2I) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_ComputeIntegral" c_th2i_computeintegral +  :: (Ptr RawTH2I) -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_DirectoryAutoAdd" c_th2i_directoryautoadd +  :: (Ptr RawTH2I) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_Divide" c_th2i_divide +  :: (Ptr RawTH2I) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_drawCopyTH1" c_th2i_drawcopyth1 +  :: (Ptr RawTH2I) -> CString -> IO (Ptr RawTH2I)++foreign import ccall "HROOTHistTH2I.h TH2I_DrawNormalized" c_th2i_drawnormalized +  :: (Ptr RawTH2I) -> CString -> CDouble -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH2I.h TH2I_drawPanelTH1" c_th2i_drawpanelth1 +  :: (Ptr RawTH2I) -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_BufferEmpty" c_th2i_bufferempty +  :: (Ptr RawTH2I) -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2I.h TH2I_evalF" c_th2i_evalf +  :: (Ptr RawTH2I) -> (Ptr RawTF1) -> CString -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_FFT" c_th2i_fft +  :: (Ptr RawTH2I) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH2I.h TH2I_fill1" c_th2i_fill1 +  :: (Ptr RawTH2I) -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2I.h TH2I_fill1w" c_th2i_fill1w +  :: (Ptr RawTH2I) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2I.h TH2I_fillN1" c_th2i_filln1 +  :: (Ptr RawTH2I) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_FillRandom" c_th2i_fillrandom +  :: (Ptr RawTH2I) -> (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_FindBin" c_th2i_findbin +  :: (Ptr RawTH2I) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2I.h TH2I_FindFixBin" c_th2i_findfixbin +  :: (Ptr RawTH2I) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2I.h TH2I_FindFirstBinAbove" c_th2i_findfirstbinabove +  :: (Ptr RawTH2I) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2I.h TH2I_FindLastBinAbove" c_th2i_findlastbinabove +  :: (Ptr RawTH2I) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2I.h TH2I_FitPanelTH1" c_th2i_fitpanelth1 +  :: (Ptr RawTH2I) -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_getNdivisionA" c_th2i_getndivisiona +  :: (Ptr RawTH2I) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2I.h TH2I_getAxisColorA" c_th2i_getaxiscolora +  :: (Ptr RawTH2I) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2I.h TH2I_getLabelColorA" c_th2i_getlabelcolora +  :: (Ptr RawTH2I) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2I.h TH2I_getLabelFontA" c_th2i_getlabelfonta +  :: (Ptr RawTH2I) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2I.h TH2I_getLabelOffsetA" c_th2i_getlabeloffseta +  :: (Ptr RawTH2I) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_getLabelSizeA" c_th2i_getlabelsizea +  :: (Ptr RawTH2I) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_getTitleFontA" c_th2i_gettitlefonta +  :: (Ptr RawTH2I) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2I.h TH2I_getTitleOffsetA" c_th2i_gettitleoffseta +  :: (Ptr RawTH2I) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_getTitleSizeA" c_th2i_gettitlesizea +  :: (Ptr RawTH2I) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_getTickLengthA" c_th2i_getticklengtha +  :: (Ptr RawTH2I) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_GetBarOffset" c_th2i_getbaroffset +  :: (Ptr RawTH2I) -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_GetBarWidth" c_th2i_getbarwidth +  :: (Ptr RawTH2I) -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_GetContour" c_th2i_getcontour +  :: (Ptr RawTH2I) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH2I.h TH2I_GetContourLevel" c_th2i_getcontourlevel +  :: (Ptr RawTH2I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_GetContourLevelPad" c_th2i_getcontourlevelpad +  :: (Ptr RawTH2I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_GetBin" c_th2i_getbin +  :: (Ptr RawTH2I) -> CInt -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2I.h TH2I_GetBinCenter" c_th2i_getbincenter +  :: (Ptr RawTH2I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_GetBinContent1" c_th2i_getbincontent1 +  :: (Ptr RawTH2I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_GetBinContent2" c_th2i_getbincontent2 +  :: (Ptr RawTH2I) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_GetBinContent3" c_th2i_getbincontent3 +  :: (Ptr RawTH2I) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_GetBinError1" c_th2i_getbinerror1 +  :: (Ptr RawTH2I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_GetBinError2" c_th2i_getbinerror2 +  :: (Ptr RawTH2I) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_GetBinError3" c_th2i_getbinerror3 +  :: (Ptr RawTH2I) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_GetBinLowEdge" c_th2i_getbinlowedge +  :: (Ptr RawTH2I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_GetBinWidth" c_th2i_getbinwidth +  :: (Ptr RawTH2I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_GetCellContent" c_th2i_getcellcontent +  :: (Ptr RawTH2I) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_GetCellError" c_th2i_getcellerror +  :: (Ptr RawTH2I) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_GetEntries" c_th2i_getentries +  :: (Ptr RawTH2I) -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_GetEffectiveEntries" c_th2i_geteffectiveentries +  :: (Ptr RawTH2I) -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_GetFunction" c_th2i_getfunction +  :: (Ptr RawTH2I) -> CString -> IO (Ptr RawTF1)++foreign import ccall "HROOTHistTH2I.h TH2I_GetDimension" c_th2i_getdimension +  :: (Ptr RawTH2I) -> IO CInt++foreign import ccall "HROOTHistTH2I.h TH2I_GetKurtosis" c_th2i_getkurtosis +  :: (Ptr RawTH2I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_GetLowEdge" c_th2i_getlowedge +  :: (Ptr RawTH2I) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_getMaximumTH1" c_th2i_getmaximumth1 +  :: (Ptr RawTH2I) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_GetMaximumBin" c_th2i_getmaximumbin +  :: (Ptr RawTH2I) -> IO CInt++foreign import ccall "HROOTHistTH2I.h TH2I_GetMaximumStored" c_th2i_getmaximumstored +  :: (Ptr RawTH2I) -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_getMinimumTH1" c_th2i_getminimumth1 +  :: (Ptr RawTH2I) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_GetMinimumBin" c_th2i_getminimumbin +  :: (Ptr RawTH2I) -> IO CInt++foreign import ccall "HROOTHistTH2I.h TH2I_GetMinimumStored" c_th2i_getminimumstored +  :: (Ptr RawTH2I) -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_GetMean" c_th2i_getmean +  :: (Ptr RawTH2I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_GetMeanError" c_th2i_getmeanerror +  :: (Ptr RawTH2I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_GetNbinsX" c_th2i_getnbinsx +  :: (Ptr RawTH2I) -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_GetNbinsY" c_th2i_getnbinsy +  :: (Ptr RawTH2I) -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_GetNbinsZ" c_th2i_getnbinsz +  :: (Ptr RawTH2I) -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_getQuantilesTH1" c_th2i_getquantilesth1 +  :: (Ptr RawTH2I) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH2I.h TH2I_GetRandom" c_th2i_getrandom +  :: (Ptr RawTH2I) -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_GetStats" c_th2i_getstats +  :: (Ptr RawTH2I) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_GetSumOfWeights" c_th2i_getsumofweights +  :: (Ptr RawTH2I) -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_GetSumw2" c_th2i_getsumw2 +  :: (Ptr RawTH2I) -> IO (Ptr RawTArrayD)++foreign import ccall "HROOTHistTH2I.h TH2I_GetSumw2N" c_th2i_getsumw2n +  :: (Ptr RawTH2I) -> IO CInt++foreign import ccall "HROOTHistTH2I.h TH2I_GetRMS" c_th2i_getrms +  :: (Ptr RawTH2I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_GetRMSError" c_th2i_getrmserror +  :: (Ptr RawTH2I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_GetSkewness" c_th2i_getskewness +  :: (Ptr RawTH2I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_integral1" c_th2i_integral1 +  :: (Ptr RawTH2I) -> CInt -> CInt -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_interpolate1" c_th2i_interpolate1 +  :: (Ptr RawTH2I) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_interpolate2" c_th2i_interpolate2 +  :: (Ptr RawTH2I) -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_interpolate3" c_th2i_interpolate3 +  :: (Ptr RawTH2I) -> CDouble -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_KolmogorovTest" c_th2i_kolmogorovtest +  :: (Ptr RawTH2I) -> (Ptr RawTH1) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_LabelsDeflate" c_th2i_labelsdeflate +  :: (Ptr RawTH2I) -> CString -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_LabelsInflate" c_th2i_labelsinflate +  :: (Ptr RawTH2I) -> CString -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_LabelsOption" c_th2i_labelsoption +  :: (Ptr RawTH2I) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_multiflyF" c_th2i_multiflyf +  :: (Ptr RawTH2I) -> (Ptr RawTF1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_Multiply" c_th2i_multiply +  :: (Ptr RawTH2I) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_PutStats" c_th2i_putstats +  :: (Ptr RawTH2I) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_Rebin" c_th2i_rebin +  :: (Ptr RawTH2I) -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH2I.h TH2I_RebinAxis" c_th2i_rebinaxis +  :: (Ptr RawTH2I) -> CDouble -> (Ptr RawTAxis) -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_Rebuild" c_th2i_rebuild +  :: (Ptr RawTH2I) -> CString -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_RecursiveRemove" c_th2i_recursiveremove +  :: (Ptr RawTH2I) -> (Ptr RawTObject) -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_Reset" c_th2i_reset +  :: (Ptr RawTH2I) -> CString -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_ResetStats" c_th2i_resetstats +  :: (Ptr RawTH2I) -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_Scale" c_th2i_scale +  :: (Ptr RawTH2I) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_setAxisColorA" c_th2i_setaxiscolora +  :: (Ptr RawTH2I) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetAxisRange" c_th2i_setaxisrange +  :: (Ptr RawTH2I) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetBarOffset" c_th2i_setbaroffset +  :: (Ptr RawTH2I) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetBarWidth" c_th2i_setbarwidth +  :: (Ptr RawTH2I) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_setBinContent1" c_th2i_setbincontent1 +  :: (Ptr RawTH2I) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_setBinContent2" c_th2i_setbincontent2 +  :: (Ptr RawTH2I) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_setBinContent3" c_th2i_setbincontent3 +  :: (Ptr RawTH2I) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_setBinError1" c_th2i_setbinerror1 +  :: (Ptr RawTH2I) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_setBinError2" c_th2i_setbinerror2 +  :: (Ptr RawTH2I) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_setBinError3" c_th2i_setbinerror3 +  :: (Ptr RawTH2I) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_setBins1" c_th2i_setbins1 +  :: (Ptr RawTH2I) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_setBins2" c_th2i_setbins2 +  :: (Ptr RawTH2I) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_setBins3" c_th2i_setbins3 +  :: (Ptr RawTH2I) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetBinsLength" c_th2i_setbinslength +  :: (Ptr RawTH2I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetBuffer" c_th2i_setbuffer +  :: (Ptr RawTH2I) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetCellContent" c_th2i_setcellcontent +  :: (Ptr RawTH2I) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetContent" c_th2i_setcontent +  :: (Ptr RawTH2I) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetContour" c_th2i_setcontour +  :: (Ptr RawTH2I) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetContourLevel" c_th2i_setcontourlevel +  :: (Ptr RawTH2I) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetDirectory" c_th2i_setdirectory +  :: (Ptr RawTH2I) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetEntries" c_th2i_setentries +  :: (Ptr RawTH2I) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetError" c_th2i_seterror +  :: (Ptr RawTH2I) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_setLabelColorA" c_th2i_setlabelcolora +  :: (Ptr RawTH2I) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_setLabelSizeA" c_th2i_setlabelsizea +  :: (Ptr RawTH2I) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_setLabelFontA" c_th2i_setlabelfonta +  :: (Ptr RawTH2I) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_setLabelOffsetA" c_th2i_setlabeloffseta +  :: (Ptr RawTH2I) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetMaximum" c_th2i_setmaximum +  :: (Ptr RawTH2I) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetMinimum" c_th2i_setminimum +  :: (Ptr RawTH2I) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetNormFactor" c_th2i_setnormfactor +  :: (Ptr RawTH2I) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetStats" c_th2i_setstats +  :: (Ptr RawTH2I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetOption" c_th2i_setoption +  :: (Ptr RawTH2I) -> CString -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetXTitle" c_th2i_setxtitle +  :: (Ptr RawTH2I) -> CString -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetYTitle" c_th2i_setytitle +  :: (Ptr RawTH2I) -> CString -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetZTitle" c_th2i_setztitle +  :: (Ptr RawTH2I) -> CString -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_ShowBackground" c_th2i_showbackground +  :: (Ptr RawTH2I) -> CInt -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH2I.h TH2I_ShowPeaks" c_th2i_showpeaks +  :: (Ptr RawTH2I) -> CDouble -> CString -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2I.h TH2I_Smooth" c_th2i_smooth +  :: (Ptr RawTH2I) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_Sumw2" c_th2i_sumw2 +  :: (Ptr RawTH2I) -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_Draw" c_th2i_draw +  :: (Ptr RawTH2I) -> CString -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_FindObject" c_th2i_findobject +  :: (Ptr RawTH2I) -> CString -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTH2I.h TH2I_GetName" c_th2i_getname +  :: (Ptr RawTH2I) -> IO CString++foreign import ccall "HROOTHistTH2I.h TH2I_IsA" c_th2i_isa +  :: (Ptr RawTH2I) -> IO (Ptr RawTClass)++foreign import ccall "HROOTHistTH2I.h TH2I_Paint" c_th2i_paint +  :: (Ptr RawTH2I) -> CString -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_printObj" c_th2i_printobj +  :: (Ptr RawTH2I) -> CString -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SaveAs" c_th2i_saveas +  :: (Ptr RawTH2I) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_Write" c_th2i_write +  :: (Ptr RawTH2I) -> CString -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2I.h TH2I_GetLineColor" c_th2i_getlinecolor +  :: (Ptr RawTH2I) -> IO CInt++foreign import ccall "HROOTHistTH2I.h TH2I_GetLineStyle" c_th2i_getlinestyle +  :: (Ptr RawTH2I) -> IO CInt++foreign import ccall "HROOTHistTH2I.h TH2I_GetLineWidth" c_th2i_getlinewidth +  :: (Ptr RawTH2I) -> IO CInt++foreign import ccall "HROOTHistTH2I.h TH2I_ResetAttLine" c_th2i_resetattline +  :: (Ptr RawTH2I) -> CString -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetLineAttributes" c_th2i_setlineattributes +  :: (Ptr RawTH2I) -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetLineColor" c_th2i_setlinecolor +  :: (Ptr RawTH2I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetLineStyle" c_th2i_setlinestyle +  :: (Ptr RawTH2I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetLineWidth" c_th2i_setlinewidth +  :: (Ptr RawTH2I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetFillColor" c_th2i_setfillcolor +  :: (Ptr RawTH2I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetFillStyle" c_th2i_setfillstyle +  :: (Ptr RawTH2I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_GetMarkerColor" c_th2i_getmarkercolor +  :: (Ptr RawTH2I) -> IO CInt++foreign import ccall "HROOTHistTH2I.h TH2I_GetMarkerStyle" c_th2i_getmarkerstyle +  :: (Ptr RawTH2I) -> IO CInt++foreign import ccall "HROOTHistTH2I.h TH2I_GetMarkerSize" c_th2i_getmarkersize +  :: (Ptr RawTH2I) -> IO CDouble++foreign import ccall "HROOTHistTH2I.h TH2I_ResetAttMarker" c_th2i_resetattmarker +  :: (Ptr RawTH2I) -> CString -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetMarkerAttributes" c_th2i_setmarkerattributes +  :: (Ptr RawTH2I) -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetMarkerColor" c_th2i_setmarkercolor +  :: (Ptr RawTH2I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetMarkerStyle" c_th2i_setmarkerstyle +  :: (Ptr RawTH2I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_SetMarkerSize" c_th2i_setmarkersize +  :: (Ptr RawTH2I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2I.h TH2I_delete" c_th2i_delete +  :: (Ptr RawTH2I) -> IO ()+
+ src/HROOT/Hist/TH2I/Implementation.hs view
@@ -0,0 +1,451 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, +             OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH2I.Implementation where+++import FFICXX.Runtime.Cast++import HROOT.Hist.TH2I.RawType+import HROOT.Hist.TH2I.FFI+import HROOT.Hist.TH2I.Interface+import HROOT.Hist.TH2I.Cast+import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH1D.Cast+import HROOT.Hist.TH1D.Interface+import HROOT.Hist.TF1.RawType+import HROOT.Hist.TF1.Cast+import HROOT.Hist.TF1.Interface+import HROOT.Core.TObjArray.RawType+import HROOT.Core.TObjArray.Cast+import HROOT.Core.TObjArray.Interface+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TDirectory.Cast+import HROOT.Core.TDirectory.Interface+import HROOT.Core.TArrayD.RawType+import HROOT.Core.TArrayD.Cast+import HROOT.Core.TArrayD.Interface+import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.Cast+import HROOT.Hist.TAxis.Interface+import HROOT.Core.TClass.RawType+import HROOT.Core.TClass.Cast+import HROOT.Core.TClass.Interface+import HROOT.Hist.TH2.RawType+import HROOT.Hist.TH2.Cast+import HROOT.Hist.TH2.Interface+import HROOT.Core.TArrayI.RawType+import HROOT.Core.TArrayI.Cast+import HROOT.Core.TArrayI.Interface+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH1.Cast+import HROOT.Hist.TH1.Interface+import HROOT.Core.TObject.RawType+import HROOT.Core.TObject.Cast+import HROOT.Core.TObject.Interface+import HROOT.Core.TAttLine.RawType+import HROOT.Core.TAttLine.Cast+import HROOT.Core.TAttLine.Interface+import HROOT.Core.TAttFill.RawType+import HROOT.Core.TAttFill.Cast+import HROOT.Core.TAttFill.Interface+import HROOT.Core.TAttMarker.RawType+import HROOT.Core.TAttMarker.Cast+import HROOT.Core.TAttMarker.Interface+import HROOT.Core.Deletable.RawType+import HROOT.Core.Deletable.Cast+import HROOT.Core.Deletable.Interface+import HROOT.Core.TArray.RawType+import HROOT.Core.TArray.Cast+import HROOT.Core.TArray.Interface++import Data.Word+import Foreign.C+import Foreign.Ptr +import Foreign.ForeignPtr++import System.IO.Unsafe+++instance ITH2I TH2I where+instance ITH2 TH2I where+  fill2 = xform2 c_th2i_fill2+  fill2w = xform3 c_th2i_fill2w+  fillN2 = xform5 c_th2i_filln2+  fillRandom2 = xform2 c_th2i_fillrandom2+  findFirstBinAbove2 = xform2 c_th2i_findfirstbinabove2+  findLastBinAbove2 = xform2 c_th2i_findlastbinabove2+  fitSlicesX = xform6 c_th2i_fitslicesx+  fitSlicesY = xform6 c_th2i_fitslicesy+  getCorrelationFactor2 = xform2 c_th2i_getcorrelationfactor2+  getCovariance2 = xform2 c_th2i_getcovariance2+  integral2 = xform5 c_th2i_integral2+  rebinX2 = xform2 c_th2i_rebinx2+  rebinY2 = xform2 c_th2i_rebiny2+  rebin2D = xform3 c_th2i_rebin2d+  setShowProjectionX = xform1 c_th2i_setshowprojectionx+  setShowProjectionY = xform1 c_th2i_setshowprojectiony+instance ITArrayI TH2I where+instance ITH1 TH2I where+  add = xform2 c_th2i_add+  addBinContent = xform2 c_th2i_addbincontent+  chi2Test = xform3 c_th2i_chi2test+  computeIntegral = xform0 c_th2i_computeintegral+  directoryAutoAdd = xform1 c_th2i_directoryautoadd+  divide = xform5 c_th2i_divide+  drawCopyTH1 = xform1 c_th2i_drawcopyth1+  drawNormalized = xform2 c_th2i_drawnormalized+  drawPanelTH1 = xform0 c_th2i_drawpanelth1+  bufferEmpty = xform1 c_th2i_bufferempty+  evalF = xform2 c_th2i_evalf+  fFT = xform2 c_th2i_fft+  fill1 = xform1 c_th2i_fill1+  fill1w = xform2 c_th2i_fill1w+  fillN1 = xform4 c_th2i_filln1+  fillRandom = xform2 c_th2i_fillrandom+  findBin = xform3 c_th2i_findbin+  findFixBin = xform3 c_th2i_findfixbin+  findFirstBinAbove = xform2 c_th2i_findfirstbinabove+  findLastBinAbove = xform2 c_th2i_findlastbinabove+  fitPanelTH1 = xform0 c_th2i_fitpanelth1+  getNdivisionA = xform1 c_th2i_getndivisiona+  getAxisColorA = xform1 c_th2i_getaxiscolora+  getLabelColorA = xform1 c_th2i_getlabelcolora+  getLabelFontA = xform1 c_th2i_getlabelfonta+  getLabelOffsetA = xform1 c_th2i_getlabeloffseta+  getLabelSizeA = xform1 c_th2i_getlabelsizea+  getTitleFontA = xform1 c_th2i_gettitlefonta+  getTitleOffsetA = xform1 c_th2i_gettitleoffseta+  getTitleSizeA = xform1 c_th2i_gettitlesizea+  getTickLengthA = xform1 c_th2i_getticklengtha+  getBarOffset = xform0 c_th2i_getbaroffset+  getBarWidth = xform0 c_th2i_getbarwidth+  getContour = xform1 c_th2i_getcontour+  getContourLevel = xform1 c_th2i_getcontourlevel+  getContourLevelPad = xform1 c_th2i_getcontourlevelpad+  getBin = xform3 c_th2i_getbin+  getBinCenter = xform1 c_th2i_getbincenter+  getBinContent1 = xform1 c_th2i_getbincontent1+  getBinContent2 = xform2 c_th2i_getbincontent2+  getBinContent3 = xform3 c_th2i_getbincontent3+  getBinError1 = xform1 c_th2i_getbinerror1+  getBinError2 = xform2 c_th2i_getbinerror2+  getBinError3 = xform3 c_th2i_getbinerror3+  getBinLowEdge = xform1 c_th2i_getbinlowedge+  getBinWidth = xform1 c_th2i_getbinwidth+  getCellContent = xform2 c_th2i_getcellcontent+  getCellError = xform2 c_th2i_getcellerror+  getEntries = xform0 c_th2i_getentries+  getEffectiveEntries = xform0 c_th2i_geteffectiveentries+  getFunction = xform1 c_th2i_getfunction+  getDimension = xform0 c_th2i_getdimension+  getKurtosis = xform1 c_th2i_getkurtosis+  getLowEdge = xform1 c_th2i_getlowedge+  getMaximumTH1 = xform1 c_th2i_getmaximumth1+  getMaximumBin = xform0 c_th2i_getmaximumbin+  getMaximumStored = xform0 c_th2i_getmaximumstored+  getMinimumTH1 = xform1 c_th2i_getminimumth1+  getMinimumBin = xform0 c_th2i_getminimumbin+  getMinimumStored = xform0 c_th2i_getminimumstored+  getMean = xform1 c_th2i_getmean+  getMeanError = xform1 c_th2i_getmeanerror+  getNbinsX = xform0 c_th2i_getnbinsx+  getNbinsY = xform0 c_th2i_getnbinsy+  getNbinsZ = xform0 c_th2i_getnbinsz+  getQuantilesTH1 = xform3 c_th2i_getquantilesth1+  getRandom = xform0 c_th2i_getrandom+  getStats = xform1 c_th2i_getstats+  getSumOfWeights = xform0 c_th2i_getsumofweights+  getSumw2 = xform0 c_th2i_getsumw2+  getSumw2N = xform0 c_th2i_getsumw2n+  getRMS = xform1 c_th2i_getrms+  getRMSError = xform1 c_th2i_getrmserror+  getSkewness = xform1 c_th2i_getskewness+  integral1 = xform3 c_th2i_integral1+  interpolate1 = xform1 c_th2i_interpolate1+  interpolate2 = xform2 c_th2i_interpolate2+  interpolate3 = xform3 c_th2i_interpolate3+  kolmogorovTest = xform2 c_th2i_kolmogorovtest+  labelsDeflate = xform1 c_th2i_labelsdeflate+  labelsInflate = xform1 c_th2i_labelsinflate+  labelsOption = xform2 c_th2i_labelsoption+  multiflyF = xform2 c_th2i_multiflyf+  multiply = xform5 c_th2i_multiply+  putStats = xform1 c_th2i_putstats+  rebin = xform3 c_th2i_rebin+  rebinAxis = xform2 c_th2i_rebinaxis+  rebuild = xform1 c_th2i_rebuild+  recursiveRemove = xform1 c_th2i_recursiveremove+  reset = xform1 c_th2i_reset+  resetStats = xform0 c_th2i_resetstats+  scale = xform2 c_th2i_scale+  setAxisColorA = xform2 c_th2i_setaxiscolora+  setAxisRange = xform3 c_th2i_setaxisrange+  setBarOffset = xform1 c_th2i_setbaroffset+  setBarWidth = xform1 c_th2i_setbarwidth+  setBinContent1 = xform2 c_th2i_setbincontent1+  setBinContent2 = xform3 c_th2i_setbincontent2+  setBinContent3 = xform4 c_th2i_setbincontent3+  setBinError1 = xform2 c_th2i_setbinerror1+  setBinError2 = xform3 c_th2i_setbinerror2+  setBinError3 = xform4 c_th2i_setbinerror3+  setBins1 = xform2 c_th2i_setbins1+  setBins2 = xform4 c_th2i_setbins2+  setBins3 = xform6 c_th2i_setbins3+  setBinsLength = xform1 c_th2i_setbinslength+  setBuffer = xform2 c_th2i_setbuffer+  setCellContent = xform3 c_th2i_setcellcontent+  setContent = xform1 c_th2i_setcontent+  setContour = xform2 c_th2i_setcontour+  setContourLevel = xform2 c_th2i_setcontourlevel+  setDirectory = xform1 c_th2i_setdirectory+  setEntries = xform1 c_th2i_setentries+  setError = xform1 c_th2i_seterror+  setLabelColorA = xform2 c_th2i_setlabelcolora+  setLabelSizeA = xform2 c_th2i_setlabelsizea+  setLabelFontA = xform2 c_th2i_setlabelfonta+  setLabelOffsetA = xform2 c_th2i_setlabeloffseta+  setMaximum = xform1 c_th2i_setmaximum+  setMinimum = xform1 c_th2i_setminimum+  setNormFactor = xform1 c_th2i_setnormfactor+  setStats = xform1 c_th2i_setstats+  setOption = xform1 c_th2i_setoption+  setXTitle = xform1 c_th2i_setxtitle+  setYTitle = xform1 c_th2i_setytitle+  setZTitle = xform1 c_th2i_setztitle+  showBackground = xform2 c_th2i_showbackground+  showPeaks = xform3 c_th2i_showpeaks+  smooth = xform2 c_th2i_smooth+  sumw2 = xform0 c_th2i_sumw2+instance ITObject TH2I where+  draw = xform1 c_th2i_draw+  findObject = xform1 c_th2i_findobject+  getName = xform0 c_th2i_getname+  isA = xform0 c_th2i_isa+  paint = xform1 c_th2i_paint+  printObj = xform1 c_th2i_printobj+  saveAs = xform2 c_th2i_saveas+  write = xform3 c_th2i_write+instance ITAttLine TH2I where+  getLineColor = xform0 c_th2i_getlinecolor+  getLineStyle = xform0 c_th2i_getlinestyle+  getLineWidth = xform0 c_th2i_getlinewidth+  resetAttLine = xform1 c_th2i_resetattline+  setLineAttributes = xform0 c_th2i_setlineattributes+  setLineColor = xform1 c_th2i_setlinecolor+  setLineStyle = xform1 c_th2i_setlinestyle+  setLineWidth = xform1 c_th2i_setlinewidth+instance ITAttFill TH2I where+  setFillColor = xform1 c_th2i_setfillcolor+  setFillStyle = xform1 c_th2i_setfillstyle+instance ITAttMarker TH2I where+  getMarkerColor = xform0 c_th2i_getmarkercolor+  getMarkerStyle = xform0 c_th2i_getmarkerstyle+  getMarkerSize = xform0 c_th2i_getmarkersize+  resetAttMarker = xform1 c_th2i_resetattmarker+  setMarkerAttributes = xform0 c_th2i_setmarkerattributes+  setMarkerColor = xform1 c_th2i_setmarkercolor+  setMarkerStyle = xform1 c_th2i_setmarkerstyle+  setMarkerSize = xform1 c_th2i_setmarkersize+instance IDeletable TH2I where+  delete = xform0 c_th2i_delete+instance ITArray TH2I where++instance ITH2I (Exist TH2I) where++instance ITH2 (Exist TH2I) where+  fill2 (ETH2I x) = fill2 x+  fill2w (ETH2I x) = fill2w x+  fillN2 (ETH2I x) = fillN2 x+  fillRandom2 (ETH2I x) = fillRandom2 x+  findFirstBinAbove2 (ETH2I x) = findFirstBinAbove2 x+  findLastBinAbove2 (ETH2I x) = findLastBinAbove2 x+  fitSlicesX (ETH2I x) = fitSlicesX x+  fitSlicesY (ETH2I x) = fitSlicesY x+  getCorrelationFactor2 (ETH2I x) = getCorrelationFactor2 x+  getCovariance2 (ETH2I x) = getCovariance2 x+  integral2 (ETH2I x) = integral2 x+  rebinX2 (ETH2I x) = rebinX2 x+  rebinY2 (ETH2I x) = rebinY2 x+  rebin2D (ETH2I x) = rebin2D x+  setShowProjectionX (ETH2I x) = setShowProjectionX x+  setShowProjectionY (ETH2I x) = setShowProjectionY x+instance ITArrayI (Exist TH2I) where++instance ITH1 (Exist TH2I) where+  add (ETH2I x) = add x+  addBinContent (ETH2I x) = addBinContent x+  chi2Test (ETH2I x) = chi2Test x+  computeIntegral (ETH2I x) = computeIntegral x+  directoryAutoAdd (ETH2I x) = directoryAutoAdd x+  divide (ETH2I x) = divide x+  drawCopyTH1 (ETH2I x) a1 = return . ETH2I =<< drawCopyTH1 x a1+  drawNormalized (ETH2I x) = drawNormalized x+  drawPanelTH1 (ETH2I x) = drawPanelTH1 x+  bufferEmpty (ETH2I x) = bufferEmpty x+  evalF (ETH2I x) = evalF x+  fFT (ETH2I x) = fFT x+  fill1 (ETH2I x) = fill1 x+  fill1w (ETH2I x) = fill1w x+  fillN1 (ETH2I x) = fillN1 x+  fillRandom (ETH2I x) = fillRandom x+  findBin (ETH2I x) = findBin x+  findFixBin (ETH2I x) = findFixBin x+  findFirstBinAbove (ETH2I x) = findFirstBinAbove x+  findLastBinAbove (ETH2I x) = findLastBinAbove x+  fitPanelTH1 (ETH2I x) = fitPanelTH1 x+  getNdivisionA (ETH2I x) = getNdivisionA x+  getAxisColorA (ETH2I x) = getAxisColorA x+  getLabelColorA (ETH2I x) = getLabelColorA x+  getLabelFontA (ETH2I x) = getLabelFontA x+  getLabelOffsetA (ETH2I x) = getLabelOffsetA x+  getLabelSizeA (ETH2I x) = getLabelSizeA x+  getTitleFontA (ETH2I x) = getTitleFontA x+  getTitleOffsetA (ETH2I x) = getTitleOffsetA x+  getTitleSizeA (ETH2I x) = getTitleSizeA x+  getTickLengthA (ETH2I x) = getTickLengthA x+  getBarOffset (ETH2I x) = getBarOffset x+  getBarWidth (ETH2I x) = getBarWidth x+  getContour (ETH2I x) = getContour x+  getContourLevel (ETH2I x) = getContourLevel x+  getContourLevelPad (ETH2I x) = getContourLevelPad x+  getBin (ETH2I x) = getBin x+  getBinCenter (ETH2I x) = getBinCenter x+  getBinContent1 (ETH2I x) = getBinContent1 x+  getBinContent2 (ETH2I x) = getBinContent2 x+  getBinContent3 (ETH2I x) = getBinContent3 x+  getBinError1 (ETH2I x) = getBinError1 x+  getBinError2 (ETH2I x) = getBinError2 x+  getBinError3 (ETH2I x) = getBinError3 x+  getBinLowEdge (ETH2I x) = getBinLowEdge x+  getBinWidth (ETH2I x) = getBinWidth x+  getCellContent (ETH2I x) = getCellContent x+  getCellError (ETH2I x) = getCellError x+  getEntries (ETH2I x) = getEntries x+  getEffectiveEntries (ETH2I x) = getEffectiveEntries x+  getFunction (ETH2I x) = getFunction x+  getDimension (ETH2I x) = getDimension x+  getKurtosis (ETH2I x) = getKurtosis x+  getLowEdge (ETH2I x) = getLowEdge x+  getMaximumTH1 (ETH2I x) = getMaximumTH1 x+  getMaximumBin (ETH2I x) = getMaximumBin x+  getMaximumStored (ETH2I x) = getMaximumStored x+  getMinimumTH1 (ETH2I x) = getMinimumTH1 x+  getMinimumBin (ETH2I x) = getMinimumBin x+  getMinimumStored (ETH2I x) = getMinimumStored x+  getMean (ETH2I x) = getMean x+  getMeanError (ETH2I x) = getMeanError x+  getNbinsX (ETH2I x) = getNbinsX x+  getNbinsY (ETH2I x) = getNbinsY x+  getNbinsZ (ETH2I x) = getNbinsZ x+  getQuantilesTH1 (ETH2I x) = getQuantilesTH1 x+  getRandom (ETH2I x) = getRandom x+  getStats (ETH2I x) = getStats x+  getSumOfWeights (ETH2I x) = getSumOfWeights x+  getSumw2 (ETH2I x) = getSumw2 x+  getSumw2N (ETH2I x) = getSumw2N x+  getRMS (ETH2I x) = getRMS x+  getRMSError (ETH2I x) = getRMSError x+  getSkewness (ETH2I x) = getSkewness x+  integral1 (ETH2I x) = integral1 x+  interpolate1 (ETH2I x) = interpolate1 x+  interpolate2 (ETH2I x) = interpolate2 x+  interpolate3 (ETH2I x) = interpolate3 x+  kolmogorovTest (ETH2I x) = kolmogorovTest x+  labelsDeflate (ETH2I x) = labelsDeflate x+  labelsInflate (ETH2I x) = labelsInflate x+  labelsOption (ETH2I x) = labelsOption x+  multiflyF (ETH2I x) = multiflyF x+  multiply (ETH2I x) = multiply x+  putStats (ETH2I x) = putStats x+  rebin (ETH2I x) = rebin x+  rebinAxis (ETH2I x) = rebinAxis x+  rebuild (ETH2I x) = rebuild x+  recursiveRemove (ETH2I x) = recursiveRemove x+  reset (ETH2I x) = reset x+  resetStats (ETH2I x) = resetStats x+  scale (ETH2I x) = scale x+  setAxisColorA (ETH2I x) = setAxisColorA x+  setAxisRange (ETH2I x) = setAxisRange x+  setBarOffset (ETH2I x) = setBarOffset x+  setBarWidth (ETH2I x) = setBarWidth x+  setBinContent1 (ETH2I x) = setBinContent1 x+  setBinContent2 (ETH2I x) = setBinContent2 x+  setBinContent3 (ETH2I x) = setBinContent3 x+  setBinError1 (ETH2I x) = setBinError1 x+  setBinError2 (ETH2I x) = setBinError2 x+  setBinError3 (ETH2I x) = setBinError3 x+  setBins1 (ETH2I x) = setBins1 x+  setBins2 (ETH2I x) = setBins2 x+  setBins3 (ETH2I x) = setBins3 x+  setBinsLength (ETH2I x) = setBinsLength x+  setBuffer (ETH2I x) = setBuffer x+  setCellContent (ETH2I x) = setCellContent x+  setContent (ETH2I x) = setContent x+  setContour (ETH2I x) = setContour x+  setContourLevel (ETH2I x) = setContourLevel x+  setDirectory (ETH2I x) = setDirectory x+  setEntries (ETH2I x) = setEntries x+  setError (ETH2I x) = setError x+  setLabelColorA (ETH2I x) = setLabelColorA x+  setLabelSizeA (ETH2I x) = setLabelSizeA x+  setLabelFontA (ETH2I x) = setLabelFontA x+  setLabelOffsetA (ETH2I x) = setLabelOffsetA x+  setMaximum (ETH2I x) = setMaximum x+  setMinimum (ETH2I x) = setMinimum x+  setNormFactor (ETH2I x) = setNormFactor x+  setStats (ETH2I x) = setStats x+  setOption (ETH2I x) = setOption x+  setXTitle (ETH2I x) = setXTitle x+  setYTitle (ETH2I x) = setYTitle x+  setZTitle (ETH2I x) = setZTitle x+  showBackground (ETH2I x) = showBackground x+  showPeaks (ETH2I x) = showPeaks x+  smooth (ETH2I x) = smooth x+  sumw2 (ETH2I x) = sumw2 x+instance ITObject (Exist TH2I) where+  draw (ETH2I x) = draw x+  findObject (ETH2I x) = findObject x+  getName (ETH2I x) = getName x+  isA (ETH2I x) = isA x+  paint (ETH2I x) = paint x+  printObj (ETH2I x) = printObj x+  saveAs (ETH2I x) = saveAs x+  write (ETH2I x) = write x+instance ITAttLine (Exist TH2I) where+  getLineColor (ETH2I x) = getLineColor x+  getLineStyle (ETH2I x) = getLineStyle x+  getLineWidth (ETH2I x) = getLineWidth x+  resetAttLine (ETH2I x) = resetAttLine x+  setLineAttributes (ETH2I x) = setLineAttributes x+  setLineColor (ETH2I x) = setLineColor x+  setLineStyle (ETH2I x) = setLineStyle x+  setLineWidth (ETH2I x) = setLineWidth x+instance ITAttFill (Exist TH2I) where+  setFillColor (ETH2I x) = setFillColor x+  setFillStyle (ETH2I x) = setFillStyle x+instance ITAttMarker (Exist TH2I) where+  getMarkerColor (ETH2I x) = getMarkerColor x+  getMarkerStyle (ETH2I x) = getMarkerStyle x+  getMarkerSize (ETH2I x) = getMarkerSize x+  resetAttMarker (ETH2I x) = resetAttMarker x+  setMarkerAttributes (ETH2I x) = setMarkerAttributes x+  setMarkerColor (ETH2I x) = setMarkerColor x+  setMarkerStyle (ETH2I x) = setMarkerStyle x+  setMarkerSize (ETH2I x) = setMarkerSize x+instance IDeletable (Exist TH2I) where+  delete (ETH2I x) = delete x+instance ITArray (Exist TH2I) where+++++++++instance FPtr (Exist TH2I) where+  type Raw (Exist TH2I) = RawTH2I+  get_fptr (ETH2I obj) = castForeignPtr (get_fptr obj)+  cast_fptr_to_obj fptr = ETH2I (cast_fptr_to_obj (fptr :: ForeignPtr RawTH2I) :: TH2I)
+ src/HROOT/Hist/TH2I/Interface.hs view
@@ -0,0 +1,37 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++-- module HROOT.Class.Interface where++module HROOT.Hist.TH2I.Interface where+++import Data.Word+import Foreign.C+import Foreign.Ptr+import Foreign.ForeignPtr+import FFICXX.Runtime.Cast++import HROOT.Hist.TH2I.RawType++import HROOT.Hist.TH2.Interface+import HROOT.Core.TArrayI.Interface+---- ============ ----++++class (ITH2 a,ITArrayI a) => ITH2I a where++instance Existable TH2I where+  data Exist TH2I = forall a. (FPtr a, ITH2I a) => ETH2I a++upcastTH2I :: (FPtr a, ITH2I a) => a -> TH2I+upcastTH2I h = let fh = get_fptr h+                   fh2 :: ForeignPtr RawTH2I = castForeignPtr fh+               in cast_fptr_to_obj fh2++downcastTH2I :: (FPtr a, ITH2I a) => TH2I -> a +downcastTH2I h = let fh = get_fptr h+                     fh2 = castForeignPtr fh+                 in cast_fptr_to_obj fh2
+ src/HROOT/Hist/TH2I/RawType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++module HROOT.Hist.TH2I.RawType where+++import Foreign.ForeignPtr+import FFICXX.Runtime.Cast  ++data RawTH2I+newtype TH2I = TH2I (ForeignPtr RawTH2I) deriving (Eq, Ord, Show)+instance FPtr TH2I where+   type Raw TH2I = RawTH2I+   get_fptr (TH2I fptr) = fptr+   cast_fptr_to_obj = TH2I
+ src/HROOT/Hist/TH2Poly.hs view
@@ -0,0 +1,15 @@+module HROOT.Hist.TH2Poly+  (+    TH2Poly(..)+  , ITH2Poly+  , upcastTH2Poly+  , downcastTH2Poly++ +  ) where++import HROOT.Hist.TH2Poly.RawType+import HROOT.Hist.TH2Poly.Interface+import HROOT.Hist.TH2Poly.Implementation++
+ src/HROOT/Hist/TH2Poly/Cast.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeFamilies, +             MultiParamTypeClasses, OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH2Poly.Cast where+++import Foreign.Ptr+import Foreign.ForeignPtr (castForeignPtr, newForeignPtr_)+import Foreign.ForeignPtr.Unsafe+import FFICXX.Runtime.Cast+import System.IO.Unsafe++import HROOT.Hist.TH2Poly.RawType+import HROOT.Hist.TH2Poly.Interface++instance (ITH2Poly a, FPtr a) => Castable a (Ptr RawTH2Poly) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ ++instance Castable TH2Poly (Ptr RawTH2Poly) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+ src/HROOT/Hist/TH2Poly/FFI.hsc view
@@ -0,0 +1,547 @@+{-# LANGUAGE ForeignFunctionInterface #-}++-- module HROOT.Class.FFI where++module HROOT.Hist.TH2Poly.FFI where+++import Foreign.C            +import Foreign.Ptr++-- import HROOT.Class.Interface++-- #include ""++import HROOT.Hist.TH2Poly.RawType+import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH2.RawType+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TF1.RawType+import HROOT.Core.TObjArray.RawType+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TArrayD.RawType+import HROOT.Hist.TAxis.RawType+import HROOT.Core.TObject.RawType+import HROOT.Core.TClass.RawType++#include "HROOTHistTH2Poly.h"++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_fill2" c_th2poly_fill2 +  :: (Ptr RawTH2Poly) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_fill2w" c_th2poly_fill2w +  :: (Ptr RawTH2Poly) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_fillN2" c_th2poly_filln2 +  :: (Ptr RawTH2Poly) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_fillRandom2" c_th2poly_fillrandom2 +  :: (Ptr RawTH2Poly) -> (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_findFirstBinAbove2" c_th2poly_findfirstbinabove2 +  :: (Ptr RawTH2Poly) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_findLastBinAbove2" c_th2poly_findlastbinabove2 +  :: (Ptr RawTH2Poly) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_FitSlicesX" c_th2poly_fitslicesx +  :: (Ptr RawTH2Poly) -> (Ptr RawTF1) -> CInt -> CInt -> CInt -> CString -> (Ptr RawTObjArray) -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_FitSlicesY" c_th2poly_fitslicesy +  :: (Ptr RawTH2Poly) -> (Ptr RawTF1) -> CInt -> CInt -> CInt -> CString -> (Ptr RawTObjArray) -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_getCorrelationFactor2" c_th2poly_getcorrelationfactor2 +  :: (Ptr RawTH2Poly) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_getCovariance2" c_th2poly_getcovariance2 +  :: (Ptr RawTH2Poly) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_integral2" c_th2poly_integral2 +  :: (Ptr RawTH2Poly) -> CInt -> CInt -> CInt -> CInt -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_rebinX2" c_th2poly_rebinx2 +  :: (Ptr RawTH2Poly) -> CInt -> CString -> IO (Ptr RawTH2)++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_rebinY2" c_th2poly_rebiny2 +  :: (Ptr RawTH2Poly) -> CInt -> CString -> IO (Ptr RawTH2)++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_Rebin2D" c_th2poly_rebin2d +  :: (Ptr RawTH2Poly) -> CInt -> CInt -> CString -> IO (Ptr RawTH2)++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetShowProjectionX" c_th2poly_setshowprojectionx +  :: (Ptr RawTH2Poly) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetShowProjectionY" c_th2poly_setshowprojectiony +  :: (Ptr RawTH2Poly) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_Add" c_th2poly_add +  :: (Ptr RawTH2Poly) -> (Ptr RawTH1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_AddBinContent" c_th2poly_addbincontent +  :: (Ptr RawTH2Poly) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_Chi2Test" c_th2poly_chi2test +  :: (Ptr RawTH2Poly) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_ComputeIntegral" c_th2poly_computeintegral +  :: (Ptr RawTH2Poly) -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_DirectoryAutoAdd" c_th2poly_directoryautoadd +  :: (Ptr RawTH2Poly) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_Divide" c_th2poly_divide +  :: (Ptr RawTH2Poly) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_drawCopyTH1" c_th2poly_drawcopyth1 +  :: (Ptr RawTH2Poly) -> CString -> IO (Ptr RawTH2Poly)++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_DrawNormalized" c_th2poly_drawnormalized +  :: (Ptr RawTH2Poly) -> CString -> CDouble -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_drawPanelTH1" c_th2poly_drawpanelth1 +  :: (Ptr RawTH2Poly) -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_BufferEmpty" c_th2poly_bufferempty +  :: (Ptr RawTH2Poly) -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_evalF" c_th2poly_evalf +  :: (Ptr RawTH2Poly) -> (Ptr RawTF1) -> CString -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_FFT" c_th2poly_fft +  :: (Ptr RawTH2Poly) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_fill1" c_th2poly_fill1 +  :: (Ptr RawTH2Poly) -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_fill1w" c_th2poly_fill1w +  :: (Ptr RawTH2Poly) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_fillN1" c_th2poly_filln1 +  :: (Ptr RawTH2Poly) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_FillRandom" c_th2poly_fillrandom +  :: (Ptr RawTH2Poly) -> (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_FindBin" c_th2poly_findbin +  :: (Ptr RawTH2Poly) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_FindFixBin" c_th2poly_findfixbin +  :: (Ptr RawTH2Poly) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_FindFirstBinAbove" c_th2poly_findfirstbinabove +  :: (Ptr RawTH2Poly) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_FindLastBinAbove" c_th2poly_findlastbinabove +  :: (Ptr RawTH2Poly) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_FitPanelTH1" c_th2poly_fitpanelth1 +  :: (Ptr RawTH2Poly) -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_getNdivisionA" c_th2poly_getndivisiona +  :: (Ptr RawTH2Poly) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_getAxisColorA" c_th2poly_getaxiscolora +  :: (Ptr RawTH2Poly) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_getLabelColorA" c_th2poly_getlabelcolora +  :: (Ptr RawTH2Poly) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_getLabelFontA" c_th2poly_getlabelfonta +  :: (Ptr RawTH2Poly) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_getLabelOffsetA" c_th2poly_getlabeloffseta +  :: (Ptr RawTH2Poly) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_getLabelSizeA" c_th2poly_getlabelsizea +  :: (Ptr RawTH2Poly) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_getTitleFontA" c_th2poly_gettitlefonta +  :: (Ptr RawTH2Poly) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_getTitleOffsetA" c_th2poly_gettitleoffseta +  :: (Ptr RawTH2Poly) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_getTitleSizeA" c_th2poly_gettitlesizea +  :: (Ptr RawTH2Poly) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_getTickLengthA" c_th2poly_getticklengtha +  :: (Ptr RawTH2Poly) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetBarOffset" c_th2poly_getbaroffset +  :: (Ptr RawTH2Poly) -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetBarWidth" c_th2poly_getbarwidth +  :: (Ptr RawTH2Poly) -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetContour" c_th2poly_getcontour +  :: (Ptr RawTH2Poly) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetContourLevel" c_th2poly_getcontourlevel +  :: (Ptr RawTH2Poly) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetContourLevelPad" c_th2poly_getcontourlevelpad +  :: (Ptr RawTH2Poly) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetBin" c_th2poly_getbin +  :: (Ptr RawTH2Poly) -> CInt -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetBinCenter" c_th2poly_getbincenter +  :: (Ptr RawTH2Poly) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetBinContent1" c_th2poly_getbincontent1 +  :: (Ptr RawTH2Poly) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetBinContent2" c_th2poly_getbincontent2 +  :: (Ptr RawTH2Poly) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetBinContent3" c_th2poly_getbincontent3 +  :: (Ptr RawTH2Poly) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetBinError1" c_th2poly_getbinerror1 +  :: (Ptr RawTH2Poly) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetBinError2" c_th2poly_getbinerror2 +  :: (Ptr RawTH2Poly) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetBinError3" c_th2poly_getbinerror3 +  :: (Ptr RawTH2Poly) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetBinLowEdge" c_th2poly_getbinlowedge +  :: (Ptr RawTH2Poly) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetBinWidth" c_th2poly_getbinwidth +  :: (Ptr RawTH2Poly) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetCellContent" c_th2poly_getcellcontent +  :: (Ptr RawTH2Poly) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetCellError" c_th2poly_getcellerror +  :: (Ptr RawTH2Poly) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetEntries" c_th2poly_getentries +  :: (Ptr RawTH2Poly) -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetEffectiveEntries" c_th2poly_geteffectiveentries +  :: (Ptr RawTH2Poly) -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetFunction" c_th2poly_getfunction +  :: (Ptr RawTH2Poly) -> CString -> IO (Ptr RawTF1)++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetDimension" c_th2poly_getdimension +  :: (Ptr RawTH2Poly) -> IO CInt++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetKurtosis" c_th2poly_getkurtosis +  :: (Ptr RawTH2Poly) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetLowEdge" c_th2poly_getlowedge +  :: (Ptr RawTH2Poly) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_getMaximumTH1" c_th2poly_getmaximumth1 +  :: (Ptr RawTH2Poly) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetMaximumBin" c_th2poly_getmaximumbin +  :: (Ptr RawTH2Poly) -> IO CInt++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetMaximumStored" c_th2poly_getmaximumstored +  :: (Ptr RawTH2Poly) -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_getMinimumTH1" c_th2poly_getminimumth1 +  :: (Ptr RawTH2Poly) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetMinimumBin" c_th2poly_getminimumbin +  :: (Ptr RawTH2Poly) -> IO CInt++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetMinimumStored" c_th2poly_getminimumstored +  :: (Ptr RawTH2Poly) -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetMean" c_th2poly_getmean +  :: (Ptr RawTH2Poly) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetMeanError" c_th2poly_getmeanerror +  :: (Ptr RawTH2Poly) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetNbinsX" c_th2poly_getnbinsx +  :: (Ptr RawTH2Poly) -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetNbinsY" c_th2poly_getnbinsy +  :: (Ptr RawTH2Poly) -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetNbinsZ" c_th2poly_getnbinsz +  :: (Ptr RawTH2Poly) -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_getQuantilesTH1" c_th2poly_getquantilesth1 +  :: (Ptr RawTH2Poly) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetRandom" c_th2poly_getrandom +  :: (Ptr RawTH2Poly) -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetStats" c_th2poly_getstats +  :: (Ptr RawTH2Poly) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetSumOfWeights" c_th2poly_getsumofweights +  :: (Ptr RawTH2Poly) -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetSumw2" c_th2poly_getsumw2 +  :: (Ptr RawTH2Poly) -> IO (Ptr RawTArrayD)++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetSumw2N" c_th2poly_getsumw2n +  :: (Ptr RawTH2Poly) -> IO CInt++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetRMS" c_th2poly_getrms +  :: (Ptr RawTH2Poly) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetRMSError" c_th2poly_getrmserror +  :: (Ptr RawTH2Poly) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetSkewness" c_th2poly_getskewness +  :: (Ptr RawTH2Poly) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_integral1" c_th2poly_integral1 +  :: (Ptr RawTH2Poly) -> CInt -> CInt -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_interpolate1" c_th2poly_interpolate1 +  :: (Ptr RawTH2Poly) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_interpolate2" c_th2poly_interpolate2 +  :: (Ptr RawTH2Poly) -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_interpolate3" c_th2poly_interpolate3 +  :: (Ptr RawTH2Poly) -> CDouble -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_KolmogorovTest" c_th2poly_kolmogorovtest +  :: (Ptr RawTH2Poly) -> (Ptr RawTH1) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_LabelsDeflate" c_th2poly_labelsdeflate +  :: (Ptr RawTH2Poly) -> CString -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_LabelsInflate" c_th2poly_labelsinflate +  :: (Ptr RawTH2Poly) -> CString -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_LabelsOption" c_th2poly_labelsoption +  :: (Ptr RawTH2Poly) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_multiflyF" c_th2poly_multiflyf +  :: (Ptr RawTH2Poly) -> (Ptr RawTF1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_Multiply" c_th2poly_multiply +  :: (Ptr RawTH2Poly) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_PutStats" c_th2poly_putstats +  :: (Ptr RawTH2Poly) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_Rebin" c_th2poly_rebin +  :: (Ptr RawTH2Poly) -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_RebinAxis" c_th2poly_rebinaxis +  :: (Ptr RawTH2Poly) -> CDouble -> (Ptr RawTAxis) -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_Rebuild" c_th2poly_rebuild +  :: (Ptr RawTH2Poly) -> CString -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_RecursiveRemove" c_th2poly_recursiveremove +  :: (Ptr RawTH2Poly) -> (Ptr RawTObject) -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_Reset" c_th2poly_reset +  :: (Ptr RawTH2Poly) -> CString -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_ResetStats" c_th2poly_resetstats +  :: (Ptr RawTH2Poly) -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_Scale" c_th2poly_scale +  :: (Ptr RawTH2Poly) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_setAxisColorA" c_th2poly_setaxiscolora +  :: (Ptr RawTH2Poly) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetAxisRange" c_th2poly_setaxisrange +  :: (Ptr RawTH2Poly) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetBarOffset" c_th2poly_setbaroffset +  :: (Ptr RawTH2Poly) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetBarWidth" c_th2poly_setbarwidth +  :: (Ptr RawTH2Poly) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_setBinContent1" c_th2poly_setbincontent1 +  :: (Ptr RawTH2Poly) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_setBinContent2" c_th2poly_setbincontent2 +  :: (Ptr RawTH2Poly) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_setBinContent3" c_th2poly_setbincontent3 +  :: (Ptr RawTH2Poly) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_setBinError1" c_th2poly_setbinerror1 +  :: (Ptr RawTH2Poly) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_setBinError2" c_th2poly_setbinerror2 +  :: (Ptr RawTH2Poly) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_setBinError3" c_th2poly_setbinerror3 +  :: (Ptr RawTH2Poly) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_setBins1" c_th2poly_setbins1 +  :: (Ptr RawTH2Poly) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_setBins2" c_th2poly_setbins2 +  :: (Ptr RawTH2Poly) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_setBins3" c_th2poly_setbins3 +  :: (Ptr RawTH2Poly) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetBinsLength" c_th2poly_setbinslength +  :: (Ptr RawTH2Poly) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetBuffer" c_th2poly_setbuffer +  :: (Ptr RawTH2Poly) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetCellContent" c_th2poly_setcellcontent +  :: (Ptr RawTH2Poly) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetContent" c_th2poly_setcontent +  :: (Ptr RawTH2Poly) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetContour" c_th2poly_setcontour +  :: (Ptr RawTH2Poly) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetContourLevel" c_th2poly_setcontourlevel +  :: (Ptr RawTH2Poly) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetDirectory" c_th2poly_setdirectory +  :: (Ptr RawTH2Poly) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetEntries" c_th2poly_setentries +  :: (Ptr RawTH2Poly) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetError" c_th2poly_seterror +  :: (Ptr RawTH2Poly) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_setLabelColorA" c_th2poly_setlabelcolora +  :: (Ptr RawTH2Poly) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_setLabelSizeA" c_th2poly_setlabelsizea +  :: (Ptr RawTH2Poly) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_setLabelFontA" c_th2poly_setlabelfonta +  :: (Ptr RawTH2Poly) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_setLabelOffsetA" c_th2poly_setlabeloffseta +  :: (Ptr RawTH2Poly) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetMaximum" c_th2poly_setmaximum +  :: (Ptr RawTH2Poly) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetMinimum" c_th2poly_setminimum +  :: (Ptr RawTH2Poly) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetNormFactor" c_th2poly_setnormfactor +  :: (Ptr RawTH2Poly) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetStats" c_th2poly_setstats +  :: (Ptr RawTH2Poly) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetOption" c_th2poly_setoption +  :: (Ptr RawTH2Poly) -> CString -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetXTitle" c_th2poly_setxtitle +  :: (Ptr RawTH2Poly) -> CString -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetYTitle" c_th2poly_setytitle +  :: (Ptr RawTH2Poly) -> CString -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetZTitle" c_th2poly_setztitle +  :: (Ptr RawTH2Poly) -> CString -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_ShowBackground" c_th2poly_showbackground +  :: (Ptr RawTH2Poly) -> CInt -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_ShowPeaks" c_th2poly_showpeaks +  :: (Ptr RawTH2Poly) -> CDouble -> CString -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_Smooth" c_th2poly_smooth +  :: (Ptr RawTH2Poly) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_Sumw2" c_th2poly_sumw2 +  :: (Ptr RawTH2Poly) -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_Draw" c_th2poly_draw +  :: (Ptr RawTH2Poly) -> CString -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_FindObject" c_th2poly_findobject +  :: (Ptr RawTH2Poly) -> CString -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetName" c_th2poly_getname +  :: (Ptr RawTH2Poly) -> IO CString++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_IsA" c_th2poly_isa +  :: (Ptr RawTH2Poly) -> IO (Ptr RawTClass)++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_Paint" c_th2poly_paint +  :: (Ptr RawTH2Poly) -> CString -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_printObj" c_th2poly_printobj +  :: (Ptr RawTH2Poly) -> CString -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SaveAs" c_th2poly_saveas +  :: (Ptr RawTH2Poly) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_Write" c_th2poly_write +  :: (Ptr RawTH2Poly) -> CString -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetLineColor" c_th2poly_getlinecolor +  :: (Ptr RawTH2Poly) -> IO CInt++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetLineStyle" c_th2poly_getlinestyle +  :: (Ptr RawTH2Poly) -> IO CInt++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetLineWidth" c_th2poly_getlinewidth +  :: (Ptr RawTH2Poly) -> IO CInt++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_ResetAttLine" c_th2poly_resetattline +  :: (Ptr RawTH2Poly) -> CString -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetLineAttributes" c_th2poly_setlineattributes +  :: (Ptr RawTH2Poly) -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetLineColor" c_th2poly_setlinecolor +  :: (Ptr RawTH2Poly) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetLineStyle" c_th2poly_setlinestyle +  :: (Ptr RawTH2Poly) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetLineWidth" c_th2poly_setlinewidth +  :: (Ptr RawTH2Poly) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetFillColor" c_th2poly_setfillcolor +  :: (Ptr RawTH2Poly) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetFillStyle" c_th2poly_setfillstyle +  :: (Ptr RawTH2Poly) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetMarkerColor" c_th2poly_getmarkercolor +  :: (Ptr RawTH2Poly) -> IO CInt++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetMarkerStyle" c_th2poly_getmarkerstyle +  :: (Ptr RawTH2Poly) -> IO CInt++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_GetMarkerSize" c_th2poly_getmarkersize +  :: (Ptr RawTH2Poly) -> IO CDouble++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_ResetAttMarker" c_th2poly_resetattmarker +  :: (Ptr RawTH2Poly) -> CString -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetMarkerAttributes" c_th2poly_setmarkerattributes +  :: (Ptr RawTH2Poly) -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetMarkerColor" c_th2poly_setmarkercolor +  :: (Ptr RawTH2Poly) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetMarkerStyle" c_th2poly_setmarkerstyle +  :: (Ptr RawTH2Poly) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_SetMarkerSize" c_th2poly_setmarkersize +  :: (Ptr RawTH2Poly) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2Poly.h TH2Poly_delete" c_th2poly_delete +  :: (Ptr RawTH2Poly) -> IO ()+
+ src/HROOT/Hist/TH2Poly/Implementation.hs view
@@ -0,0 +1,439 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, +             OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH2Poly.Implementation where+++import FFICXX.Runtime.Cast++import HROOT.Hist.TH2Poly.RawType+import HROOT.Hist.TH2Poly.FFI+import HROOT.Hist.TH2Poly.Interface+import HROOT.Hist.TH2Poly.Cast+import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH1D.Cast+import HROOT.Hist.TH1D.Interface+import HROOT.Hist.TF1.RawType+import HROOT.Hist.TF1.Cast+import HROOT.Hist.TF1.Interface+import HROOT.Core.TObjArray.RawType+import HROOT.Core.TObjArray.Cast+import HROOT.Core.TObjArray.Interface+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TDirectory.Cast+import HROOT.Core.TDirectory.Interface+import HROOT.Core.TArrayD.RawType+import HROOT.Core.TArrayD.Cast+import HROOT.Core.TArrayD.Interface+import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.Cast+import HROOT.Hist.TAxis.Interface+import HROOT.Core.TClass.RawType+import HROOT.Core.TClass.Cast+import HROOT.Core.TClass.Interface+import HROOT.Hist.TH2.RawType+import HROOT.Hist.TH2.Cast+import HROOT.Hist.TH2.Interface+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH1.Cast+import HROOT.Hist.TH1.Interface+import HROOT.Core.TObject.RawType+import HROOT.Core.TObject.Cast+import HROOT.Core.TObject.Interface+import HROOT.Core.TAttLine.RawType+import HROOT.Core.TAttLine.Cast+import HROOT.Core.TAttLine.Interface+import HROOT.Core.TAttFill.RawType+import HROOT.Core.TAttFill.Cast+import HROOT.Core.TAttFill.Interface+import HROOT.Core.TAttMarker.RawType+import HROOT.Core.TAttMarker.Cast+import HROOT.Core.TAttMarker.Interface+import HROOT.Core.Deletable.RawType+import HROOT.Core.Deletable.Cast+import HROOT.Core.Deletable.Interface++import Data.Word+import Foreign.C+import Foreign.Ptr +import Foreign.ForeignPtr++import System.IO.Unsafe+++instance ITH2Poly TH2Poly where+instance ITH2 TH2Poly where+  fill2 = xform2 c_th2poly_fill2+  fill2w = xform3 c_th2poly_fill2w+  fillN2 = xform5 c_th2poly_filln2+  fillRandom2 = xform2 c_th2poly_fillrandom2+  findFirstBinAbove2 = xform2 c_th2poly_findfirstbinabove2+  findLastBinAbove2 = xform2 c_th2poly_findlastbinabove2+  fitSlicesX = xform6 c_th2poly_fitslicesx+  fitSlicesY = xform6 c_th2poly_fitslicesy+  getCorrelationFactor2 = xform2 c_th2poly_getcorrelationfactor2+  getCovariance2 = xform2 c_th2poly_getcovariance2+  integral2 = xform5 c_th2poly_integral2+  rebinX2 = xform2 c_th2poly_rebinx2+  rebinY2 = xform2 c_th2poly_rebiny2+  rebin2D = xform3 c_th2poly_rebin2d+  setShowProjectionX = xform1 c_th2poly_setshowprojectionx+  setShowProjectionY = xform1 c_th2poly_setshowprojectiony+instance ITH1 TH2Poly where+  add = xform2 c_th2poly_add+  addBinContent = xform2 c_th2poly_addbincontent+  chi2Test = xform3 c_th2poly_chi2test+  computeIntegral = xform0 c_th2poly_computeintegral+  directoryAutoAdd = xform1 c_th2poly_directoryautoadd+  divide = xform5 c_th2poly_divide+  drawCopyTH1 = xform1 c_th2poly_drawcopyth1+  drawNormalized = xform2 c_th2poly_drawnormalized+  drawPanelTH1 = xform0 c_th2poly_drawpanelth1+  bufferEmpty = xform1 c_th2poly_bufferempty+  evalF = xform2 c_th2poly_evalf+  fFT = xform2 c_th2poly_fft+  fill1 = xform1 c_th2poly_fill1+  fill1w = xform2 c_th2poly_fill1w+  fillN1 = xform4 c_th2poly_filln1+  fillRandom = xform2 c_th2poly_fillrandom+  findBin = xform3 c_th2poly_findbin+  findFixBin = xform3 c_th2poly_findfixbin+  findFirstBinAbove = xform2 c_th2poly_findfirstbinabove+  findLastBinAbove = xform2 c_th2poly_findlastbinabove+  fitPanelTH1 = xform0 c_th2poly_fitpanelth1+  getNdivisionA = xform1 c_th2poly_getndivisiona+  getAxisColorA = xform1 c_th2poly_getaxiscolora+  getLabelColorA = xform1 c_th2poly_getlabelcolora+  getLabelFontA = xform1 c_th2poly_getlabelfonta+  getLabelOffsetA = xform1 c_th2poly_getlabeloffseta+  getLabelSizeA = xform1 c_th2poly_getlabelsizea+  getTitleFontA = xform1 c_th2poly_gettitlefonta+  getTitleOffsetA = xform1 c_th2poly_gettitleoffseta+  getTitleSizeA = xform1 c_th2poly_gettitlesizea+  getTickLengthA = xform1 c_th2poly_getticklengtha+  getBarOffset = xform0 c_th2poly_getbaroffset+  getBarWidth = xform0 c_th2poly_getbarwidth+  getContour = xform1 c_th2poly_getcontour+  getContourLevel = xform1 c_th2poly_getcontourlevel+  getContourLevelPad = xform1 c_th2poly_getcontourlevelpad+  getBin = xform3 c_th2poly_getbin+  getBinCenter = xform1 c_th2poly_getbincenter+  getBinContent1 = xform1 c_th2poly_getbincontent1+  getBinContent2 = xform2 c_th2poly_getbincontent2+  getBinContent3 = xform3 c_th2poly_getbincontent3+  getBinError1 = xform1 c_th2poly_getbinerror1+  getBinError2 = xform2 c_th2poly_getbinerror2+  getBinError3 = xform3 c_th2poly_getbinerror3+  getBinLowEdge = xform1 c_th2poly_getbinlowedge+  getBinWidth = xform1 c_th2poly_getbinwidth+  getCellContent = xform2 c_th2poly_getcellcontent+  getCellError = xform2 c_th2poly_getcellerror+  getEntries = xform0 c_th2poly_getentries+  getEffectiveEntries = xform0 c_th2poly_geteffectiveentries+  getFunction = xform1 c_th2poly_getfunction+  getDimension = xform0 c_th2poly_getdimension+  getKurtosis = xform1 c_th2poly_getkurtosis+  getLowEdge = xform1 c_th2poly_getlowedge+  getMaximumTH1 = xform1 c_th2poly_getmaximumth1+  getMaximumBin = xform0 c_th2poly_getmaximumbin+  getMaximumStored = xform0 c_th2poly_getmaximumstored+  getMinimumTH1 = xform1 c_th2poly_getminimumth1+  getMinimumBin = xform0 c_th2poly_getminimumbin+  getMinimumStored = xform0 c_th2poly_getminimumstored+  getMean = xform1 c_th2poly_getmean+  getMeanError = xform1 c_th2poly_getmeanerror+  getNbinsX = xform0 c_th2poly_getnbinsx+  getNbinsY = xform0 c_th2poly_getnbinsy+  getNbinsZ = xform0 c_th2poly_getnbinsz+  getQuantilesTH1 = xform3 c_th2poly_getquantilesth1+  getRandom = xform0 c_th2poly_getrandom+  getStats = xform1 c_th2poly_getstats+  getSumOfWeights = xform0 c_th2poly_getsumofweights+  getSumw2 = xform0 c_th2poly_getsumw2+  getSumw2N = xform0 c_th2poly_getsumw2n+  getRMS = xform1 c_th2poly_getrms+  getRMSError = xform1 c_th2poly_getrmserror+  getSkewness = xform1 c_th2poly_getskewness+  integral1 = xform3 c_th2poly_integral1+  interpolate1 = xform1 c_th2poly_interpolate1+  interpolate2 = xform2 c_th2poly_interpolate2+  interpolate3 = xform3 c_th2poly_interpolate3+  kolmogorovTest = xform2 c_th2poly_kolmogorovtest+  labelsDeflate = xform1 c_th2poly_labelsdeflate+  labelsInflate = xform1 c_th2poly_labelsinflate+  labelsOption = xform2 c_th2poly_labelsoption+  multiflyF = xform2 c_th2poly_multiflyf+  multiply = xform5 c_th2poly_multiply+  putStats = xform1 c_th2poly_putstats+  rebin = xform3 c_th2poly_rebin+  rebinAxis = xform2 c_th2poly_rebinaxis+  rebuild = xform1 c_th2poly_rebuild+  recursiveRemove = xform1 c_th2poly_recursiveremove+  reset = xform1 c_th2poly_reset+  resetStats = xform0 c_th2poly_resetstats+  scale = xform2 c_th2poly_scale+  setAxisColorA = xform2 c_th2poly_setaxiscolora+  setAxisRange = xform3 c_th2poly_setaxisrange+  setBarOffset = xform1 c_th2poly_setbaroffset+  setBarWidth = xform1 c_th2poly_setbarwidth+  setBinContent1 = xform2 c_th2poly_setbincontent1+  setBinContent2 = xform3 c_th2poly_setbincontent2+  setBinContent3 = xform4 c_th2poly_setbincontent3+  setBinError1 = xform2 c_th2poly_setbinerror1+  setBinError2 = xform3 c_th2poly_setbinerror2+  setBinError3 = xform4 c_th2poly_setbinerror3+  setBins1 = xform2 c_th2poly_setbins1+  setBins2 = xform4 c_th2poly_setbins2+  setBins3 = xform6 c_th2poly_setbins3+  setBinsLength = xform1 c_th2poly_setbinslength+  setBuffer = xform2 c_th2poly_setbuffer+  setCellContent = xform3 c_th2poly_setcellcontent+  setContent = xform1 c_th2poly_setcontent+  setContour = xform2 c_th2poly_setcontour+  setContourLevel = xform2 c_th2poly_setcontourlevel+  setDirectory = xform1 c_th2poly_setdirectory+  setEntries = xform1 c_th2poly_setentries+  setError = xform1 c_th2poly_seterror+  setLabelColorA = xform2 c_th2poly_setlabelcolora+  setLabelSizeA = xform2 c_th2poly_setlabelsizea+  setLabelFontA = xform2 c_th2poly_setlabelfonta+  setLabelOffsetA = xform2 c_th2poly_setlabeloffseta+  setMaximum = xform1 c_th2poly_setmaximum+  setMinimum = xform1 c_th2poly_setminimum+  setNormFactor = xform1 c_th2poly_setnormfactor+  setStats = xform1 c_th2poly_setstats+  setOption = xform1 c_th2poly_setoption+  setXTitle = xform1 c_th2poly_setxtitle+  setYTitle = xform1 c_th2poly_setytitle+  setZTitle = xform1 c_th2poly_setztitle+  showBackground = xform2 c_th2poly_showbackground+  showPeaks = xform3 c_th2poly_showpeaks+  smooth = xform2 c_th2poly_smooth+  sumw2 = xform0 c_th2poly_sumw2+instance ITObject TH2Poly where+  draw = xform1 c_th2poly_draw+  findObject = xform1 c_th2poly_findobject+  getName = xform0 c_th2poly_getname+  isA = xform0 c_th2poly_isa+  paint = xform1 c_th2poly_paint+  printObj = xform1 c_th2poly_printobj+  saveAs = xform2 c_th2poly_saveas+  write = xform3 c_th2poly_write+instance ITAttLine TH2Poly where+  getLineColor = xform0 c_th2poly_getlinecolor+  getLineStyle = xform0 c_th2poly_getlinestyle+  getLineWidth = xform0 c_th2poly_getlinewidth+  resetAttLine = xform1 c_th2poly_resetattline+  setLineAttributes = xform0 c_th2poly_setlineattributes+  setLineColor = xform1 c_th2poly_setlinecolor+  setLineStyle = xform1 c_th2poly_setlinestyle+  setLineWidth = xform1 c_th2poly_setlinewidth+instance ITAttFill TH2Poly where+  setFillColor = xform1 c_th2poly_setfillcolor+  setFillStyle = xform1 c_th2poly_setfillstyle+instance ITAttMarker TH2Poly where+  getMarkerColor = xform0 c_th2poly_getmarkercolor+  getMarkerStyle = xform0 c_th2poly_getmarkerstyle+  getMarkerSize = xform0 c_th2poly_getmarkersize+  resetAttMarker = xform1 c_th2poly_resetattmarker+  setMarkerAttributes = xform0 c_th2poly_setmarkerattributes+  setMarkerColor = xform1 c_th2poly_setmarkercolor+  setMarkerStyle = xform1 c_th2poly_setmarkerstyle+  setMarkerSize = xform1 c_th2poly_setmarkersize+instance IDeletable TH2Poly where+  delete = xform0 c_th2poly_delete++instance ITH2Poly (Exist TH2Poly) where++instance ITH2 (Exist TH2Poly) where+  fill2 (ETH2Poly x) = fill2 x+  fill2w (ETH2Poly x) = fill2w x+  fillN2 (ETH2Poly x) = fillN2 x+  fillRandom2 (ETH2Poly x) = fillRandom2 x+  findFirstBinAbove2 (ETH2Poly x) = findFirstBinAbove2 x+  findLastBinAbove2 (ETH2Poly x) = findLastBinAbove2 x+  fitSlicesX (ETH2Poly x) = fitSlicesX x+  fitSlicesY (ETH2Poly x) = fitSlicesY x+  getCorrelationFactor2 (ETH2Poly x) = getCorrelationFactor2 x+  getCovariance2 (ETH2Poly x) = getCovariance2 x+  integral2 (ETH2Poly x) = integral2 x+  rebinX2 (ETH2Poly x) = rebinX2 x+  rebinY2 (ETH2Poly x) = rebinY2 x+  rebin2D (ETH2Poly x) = rebin2D x+  setShowProjectionX (ETH2Poly x) = setShowProjectionX x+  setShowProjectionY (ETH2Poly x) = setShowProjectionY x+instance ITH1 (Exist TH2Poly) where+  add (ETH2Poly x) = add x+  addBinContent (ETH2Poly x) = addBinContent x+  chi2Test (ETH2Poly x) = chi2Test x+  computeIntegral (ETH2Poly x) = computeIntegral x+  directoryAutoAdd (ETH2Poly x) = directoryAutoAdd x+  divide (ETH2Poly x) = divide x+  drawCopyTH1 (ETH2Poly x) a1 = return . ETH2Poly =<< drawCopyTH1 x a1+  drawNormalized (ETH2Poly x) = drawNormalized x+  drawPanelTH1 (ETH2Poly x) = drawPanelTH1 x+  bufferEmpty (ETH2Poly x) = bufferEmpty x+  evalF (ETH2Poly x) = evalF x+  fFT (ETH2Poly x) = fFT x+  fill1 (ETH2Poly x) = fill1 x+  fill1w (ETH2Poly x) = fill1w x+  fillN1 (ETH2Poly x) = fillN1 x+  fillRandom (ETH2Poly x) = fillRandom x+  findBin (ETH2Poly x) = findBin x+  findFixBin (ETH2Poly x) = findFixBin x+  findFirstBinAbove (ETH2Poly x) = findFirstBinAbove x+  findLastBinAbove (ETH2Poly x) = findLastBinAbove x+  fitPanelTH1 (ETH2Poly x) = fitPanelTH1 x+  getNdivisionA (ETH2Poly x) = getNdivisionA x+  getAxisColorA (ETH2Poly x) = getAxisColorA x+  getLabelColorA (ETH2Poly x) = getLabelColorA x+  getLabelFontA (ETH2Poly x) = getLabelFontA x+  getLabelOffsetA (ETH2Poly x) = getLabelOffsetA x+  getLabelSizeA (ETH2Poly x) = getLabelSizeA x+  getTitleFontA (ETH2Poly x) = getTitleFontA x+  getTitleOffsetA (ETH2Poly x) = getTitleOffsetA x+  getTitleSizeA (ETH2Poly x) = getTitleSizeA x+  getTickLengthA (ETH2Poly x) = getTickLengthA x+  getBarOffset (ETH2Poly x) = getBarOffset x+  getBarWidth (ETH2Poly x) = getBarWidth x+  getContour (ETH2Poly x) = getContour x+  getContourLevel (ETH2Poly x) = getContourLevel x+  getContourLevelPad (ETH2Poly x) = getContourLevelPad x+  getBin (ETH2Poly x) = getBin x+  getBinCenter (ETH2Poly x) = getBinCenter x+  getBinContent1 (ETH2Poly x) = getBinContent1 x+  getBinContent2 (ETH2Poly x) = getBinContent2 x+  getBinContent3 (ETH2Poly x) = getBinContent3 x+  getBinError1 (ETH2Poly x) = getBinError1 x+  getBinError2 (ETH2Poly x) = getBinError2 x+  getBinError3 (ETH2Poly x) = getBinError3 x+  getBinLowEdge (ETH2Poly x) = getBinLowEdge x+  getBinWidth (ETH2Poly x) = getBinWidth x+  getCellContent (ETH2Poly x) = getCellContent x+  getCellError (ETH2Poly x) = getCellError x+  getEntries (ETH2Poly x) = getEntries x+  getEffectiveEntries (ETH2Poly x) = getEffectiveEntries x+  getFunction (ETH2Poly x) = getFunction x+  getDimension (ETH2Poly x) = getDimension x+  getKurtosis (ETH2Poly x) = getKurtosis x+  getLowEdge (ETH2Poly x) = getLowEdge x+  getMaximumTH1 (ETH2Poly x) = getMaximumTH1 x+  getMaximumBin (ETH2Poly x) = getMaximumBin x+  getMaximumStored (ETH2Poly x) = getMaximumStored x+  getMinimumTH1 (ETH2Poly x) = getMinimumTH1 x+  getMinimumBin (ETH2Poly x) = getMinimumBin x+  getMinimumStored (ETH2Poly x) = getMinimumStored x+  getMean (ETH2Poly x) = getMean x+  getMeanError (ETH2Poly x) = getMeanError x+  getNbinsX (ETH2Poly x) = getNbinsX x+  getNbinsY (ETH2Poly x) = getNbinsY x+  getNbinsZ (ETH2Poly x) = getNbinsZ x+  getQuantilesTH1 (ETH2Poly x) = getQuantilesTH1 x+  getRandom (ETH2Poly x) = getRandom x+  getStats (ETH2Poly x) = getStats x+  getSumOfWeights (ETH2Poly x) = getSumOfWeights x+  getSumw2 (ETH2Poly x) = getSumw2 x+  getSumw2N (ETH2Poly x) = getSumw2N x+  getRMS (ETH2Poly x) = getRMS x+  getRMSError (ETH2Poly x) = getRMSError x+  getSkewness (ETH2Poly x) = getSkewness x+  integral1 (ETH2Poly x) = integral1 x+  interpolate1 (ETH2Poly x) = interpolate1 x+  interpolate2 (ETH2Poly x) = interpolate2 x+  interpolate3 (ETH2Poly x) = interpolate3 x+  kolmogorovTest (ETH2Poly x) = kolmogorovTest x+  labelsDeflate (ETH2Poly x) = labelsDeflate x+  labelsInflate (ETH2Poly x) = labelsInflate x+  labelsOption (ETH2Poly x) = labelsOption x+  multiflyF (ETH2Poly x) = multiflyF x+  multiply (ETH2Poly x) = multiply x+  putStats (ETH2Poly x) = putStats x+  rebin (ETH2Poly x) = rebin x+  rebinAxis (ETH2Poly x) = rebinAxis x+  rebuild (ETH2Poly x) = rebuild x+  recursiveRemove (ETH2Poly x) = recursiveRemove x+  reset (ETH2Poly x) = reset x+  resetStats (ETH2Poly x) = resetStats x+  scale (ETH2Poly x) = scale x+  setAxisColorA (ETH2Poly x) = setAxisColorA x+  setAxisRange (ETH2Poly x) = setAxisRange x+  setBarOffset (ETH2Poly x) = setBarOffset x+  setBarWidth (ETH2Poly x) = setBarWidth x+  setBinContent1 (ETH2Poly x) = setBinContent1 x+  setBinContent2 (ETH2Poly x) = setBinContent2 x+  setBinContent3 (ETH2Poly x) = setBinContent3 x+  setBinError1 (ETH2Poly x) = setBinError1 x+  setBinError2 (ETH2Poly x) = setBinError2 x+  setBinError3 (ETH2Poly x) = setBinError3 x+  setBins1 (ETH2Poly x) = setBins1 x+  setBins2 (ETH2Poly x) = setBins2 x+  setBins3 (ETH2Poly x) = setBins3 x+  setBinsLength (ETH2Poly x) = setBinsLength x+  setBuffer (ETH2Poly x) = setBuffer x+  setCellContent (ETH2Poly x) = setCellContent x+  setContent (ETH2Poly x) = setContent x+  setContour (ETH2Poly x) = setContour x+  setContourLevel (ETH2Poly x) = setContourLevel x+  setDirectory (ETH2Poly x) = setDirectory x+  setEntries (ETH2Poly x) = setEntries x+  setError (ETH2Poly x) = setError x+  setLabelColorA (ETH2Poly x) = setLabelColorA x+  setLabelSizeA (ETH2Poly x) = setLabelSizeA x+  setLabelFontA (ETH2Poly x) = setLabelFontA x+  setLabelOffsetA (ETH2Poly x) = setLabelOffsetA x+  setMaximum (ETH2Poly x) = setMaximum x+  setMinimum (ETH2Poly x) = setMinimum x+  setNormFactor (ETH2Poly x) = setNormFactor x+  setStats (ETH2Poly x) = setStats x+  setOption (ETH2Poly x) = setOption x+  setXTitle (ETH2Poly x) = setXTitle x+  setYTitle (ETH2Poly x) = setYTitle x+  setZTitle (ETH2Poly x) = setZTitle x+  showBackground (ETH2Poly x) = showBackground x+  showPeaks (ETH2Poly x) = showPeaks x+  smooth (ETH2Poly x) = smooth x+  sumw2 (ETH2Poly x) = sumw2 x+instance ITObject (Exist TH2Poly) where+  draw (ETH2Poly x) = draw x+  findObject (ETH2Poly x) = findObject x+  getName (ETH2Poly x) = getName x+  isA (ETH2Poly x) = isA x+  paint (ETH2Poly x) = paint x+  printObj (ETH2Poly x) = printObj x+  saveAs (ETH2Poly x) = saveAs x+  write (ETH2Poly x) = write x+instance ITAttLine (Exist TH2Poly) where+  getLineColor (ETH2Poly x) = getLineColor x+  getLineStyle (ETH2Poly x) = getLineStyle x+  getLineWidth (ETH2Poly x) = getLineWidth x+  resetAttLine (ETH2Poly x) = resetAttLine x+  setLineAttributes (ETH2Poly x) = setLineAttributes x+  setLineColor (ETH2Poly x) = setLineColor x+  setLineStyle (ETH2Poly x) = setLineStyle x+  setLineWidth (ETH2Poly x) = setLineWidth x+instance ITAttFill (Exist TH2Poly) where+  setFillColor (ETH2Poly x) = setFillColor x+  setFillStyle (ETH2Poly x) = setFillStyle x+instance ITAttMarker (Exist TH2Poly) where+  getMarkerColor (ETH2Poly x) = getMarkerColor x+  getMarkerStyle (ETH2Poly x) = getMarkerStyle x+  getMarkerSize (ETH2Poly x) = getMarkerSize x+  resetAttMarker (ETH2Poly x) = resetAttMarker x+  setMarkerAttributes (ETH2Poly x) = setMarkerAttributes x+  setMarkerColor (ETH2Poly x) = setMarkerColor x+  setMarkerStyle (ETH2Poly x) = setMarkerStyle x+  setMarkerSize (ETH2Poly x) = setMarkerSize x+instance IDeletable (Exist TH2Poly) where+  delete (ETH2Poly x) = delete x++++++++instance FPtr (Exist TH2Poly) where+  type Raw (Exist TH2Poly) = RawTH2Poly+  get_fptr (ETH2Poly obj) = castForeignPtr (get_fptr obj)+  cast_fptr_to_obj fptr = ETH2Poly (cast_fptr_to_obj (fptr :: ForeignPtr RawTH2Poly) :: TH2Poly)
+ src/HROOT/Hist/TH2Poly/Interface.hs view
@@ -0,0 +1,36 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++-- module HROOT.Class.Interface where++module HROOT.Hist.TH2Poly.Interface where+++import Data.Word+import Foreign.C+import Foreign.Ptr+import Foreign.ForeignPtr+import FFICXX.Runtime.Cast++import HROOT.Hist.TH2Poly.RawType++import HROOT.Hist.TH2.Interface+---- ============ ----++++class (ITH2 a) => ITH2Poly a where++instance Existable TH2Poly where+  data Exist TH2Poly = forall a. (FPtr a, ITH2Poly a) => ETH2Poly a++upcastTH2Poly :: (FPtr a, ITH2Poly a) => a -> TH2Poly+upcastTH2Poly h = let fh = get_fptr h+                      fh2 :: ForeignPtr RawTH2Poly = castForeignPtr fh+                  in cast_fptr_to_obj fh2++downcastTH2Poly :: (FPtr a, ITH2Poly a) => TH2Poly -> a +downcastTH2Poly h = let fh = get_fptr h+                        fh2 = castForeignPtr fh+                    in cast_fptr_to_obj fh2
+ src/HROOT/Hist/TH2Poly/RawType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++module HROOT.Hist.TH2Poly.RawType where+++import Foreign.ForeignPtr+import FFICXX.Runtime.Cast  ++data RawTH2Poly+newtype TH2Poly = TH2Poly (ForeignPtr RawTH2Poly) deriving (Eq, Ord, Show)+instance FPtr TH2Poly where+   type Raw TH2Poly = RawTH2Poly+   get_fptr (TH2Poly fptr) = fptr+   cast_fptr_to_obj = TH2Poly
+ src/HROOT/Hist/TH2S.hs view
@@ -0,0 +1,15 @@+module HROOT.Hist.TH2S+  (+    TH2S(..)+  , ITH2S+  , upcastTH2S+  , downcastTH2S++ +  ) where++import HROOT.Hist.TH2S.RawType+import HROOT.Hist.TH2S.Interface+import HROOT.Hist.TH2S.Implementation++
+ src/HROOT/Hist/TH2S/Cast.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeFamilies, +             MultiParamTypeClasses, OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH2S.Cast where+++import Foreign.Ptr+import Foreign.ForeignPtr (castForeignPtr, newForeignPtr_)+import Foreign.ForeignPtr.Unsafe+import FFICXX.Runtime.Cast+import System.IO.Unsafe++import HROOT.Hist.TH2S.RawType+import HROOT.Hist.TH2S.Interface++instance (ITH2S a, FPtr a) => Castable a (Ptr RawTH2S) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ ++instance Castable TH2S (Ptr RawTH2S) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+ src/HROOT/Hist/TH2S/FFI.hsc view
@@ -0,0 +1,547 @@+{-# LANGUAGE ForeignFunctionInterface #-}++-- module HROOT.Class.FFI where++module HROOT.Hist.TH2S.FFI where+++import Foreign.C            +import Foreign.Ptr++-- import HROOT.Class.Interface++-- #include ""++import HROOT.Hist.TH2S.RawType+import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH2.RawType+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TF1.RawType+import HROOT.Core.TObjArray.RawType+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TArrayD.RawType+import HROOT.Hist.TAxis.RawType+import HROOT.Core.TObject.RawType+import HROOT.Core.TClass.RawType++#include "HROOTHistTH2S.h"++foreign import ccall "HROOTHistTH2S.h TH2S_fill2" c_th2s_fill2 +  :: (Ptr RawTH2S) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2S.h TH2S_fill2w" c_th2s_fill2w +  :: (Ptr RawTH2S) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2S.h TH2S_fillN2" c_th2s_filln2 +  :: (Ptr RawTH2S) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_fillRandom2" c_th2s_fillrandom2 +  :: (Ptr RawTH2S) -> (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_findFirstBinAbove2" c_th2s_findfirstbinabove2 +  :: (Ptr RawTH2S) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2S.h TH2S_findLastBinAbove2" c_th2s_findlastbinabove2 +  :: (Ptr RawTH2S) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2S.h TH2S_FitSlicesX" c_th2s_fitslicesx +  :: (Ptr RawTH2S) -> (Ptr RawTF1) -> CInt -> CInt -> CInt -> CString -> (Ptr RawTObjArray) -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_FitSlicesY" c_th2s_fitslicesy +  :: (Ptr RawTH2S) -> (Ptr RawTF1) -> CInt -> CInt -> CInt -> CString -> (Ptr RawTObjArray) -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_getCorrelationFactor2" c_th2s_getcorrelationfactor2 +  :: (Ptr RawTH2S) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_getCovariance2" c_th2s_getcovariance2 +  :: (Ptr RawTH2S) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_integral2" c_th2s_integral2 +  :: (Ptr RawTH2S) -> CInt -> CInt -> CInt -> CInt -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_rebinX2" c_th2s_rebinx2 +  :: (Ptr RawTH2S) -> CInt -> CString -> IO (Ptr RawTH2)++foreign import ccall "HROOTHistTH2S.h TH2S_rebinY2" c_th2s_rebiny2 +  :: (Ptr RawTH2S) -> CInt -> CString -> IO (Ptr RawTH2)++foreign import ccall "HROOTHistTH2S.h TH2S_Rebin2D" c_th2s_rebin2d +  :: (Ptr RawTH2S) -> CInt -> CInt -> CString -> IO (Ptr RawTH2)++foreign import ccall "HROOTHistTH2S.h TH2S_SetShowProjectionX" c_th2s_setshowprojectionx +  :: (Ptr RawTH2S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetShowProjectionY" c_th2s_setshowprojectiony +  :: (Ptr RawTH2S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_Add" c_th2s_add +  :: (Ptr RawTH2S) -> (Ptr RawTH1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_AddBinContent" c_th2s_addbincontent +  :: (Ptr RawTH2S) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_Chi2Test" c_th2s_chi2test +  :: (Ptr RawTH2S) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_ComputeIntegral" c_th2s_computeintegral +  :: (Ptr RawTH2S) -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_DirectoryAutoAdd" c_th2s_directoryautoadd +  :: (Ptr RawTH2S) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_Divide" c_th2s_divide +  :: (Ptr RawTH2S) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_drawCopyTH1" c_th2s_drawcopyth1 +  :: (Ptr RawTH2S) -> CString -> IO (Ptr RawTH2S)++foreign import ccall "HROOTHistTH2S.h TH2S_DrawNormalized" c_th2s_drawnormalized +  :: (Ptr RawTH2S) -> CString -> CDouble -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH2S.h TH2S_drawPanelTH1" c_th2s_drawpanelth1 +  :: (Ptr RawTH2S) -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_BufferEmpty" c_th2s_bufferempty +  :: (Ptr RawTH2S) -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2S.h TH2S_evalF" c_th2s_evalf +  :: (Ptr RawTH2S) -> (Ptr RawTF1) -> CString -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_FFT" c_th2s_fft +  :: (Ptr RawTH2S) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH2S.h TH2S_fill1" c_th2s_fill1 +  :: (Ptr RawTH2S) -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2S.h TH2S_fill1w" c_th2s_fill1w +  :: (Ptr RawTH2S) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2S.h TH2S_fillN1" c_th2s_filln1 +  :: (Ptr RawTH2S) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_FillRandom" c_th2s_fillrandom +  :: (Ptr RawTH2S) -> (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_FindBin" c_th2s_findbin +  :: (Ptr RawTH2S) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2S.h TH2S_FindFixBin" c_th2s_findfixbin +  :: (Ptr RawTH2S) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2S.h TH2S_FindFirstBinAbove" c_th2s_findfirstbinabove +  :: (Ptr RawTH2S) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2S.h TH2S_FindLastBinAbove" c_th2s_findlastbinabove +  :: (Ptr RawTH2S) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2S.h TH2S_FitPanelTH1" c_th2s_fitpanelth1 +  :: (Ptr RawTH2S) -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_getNdivisionA" c_th2s_getndivisiona +  :: (Ptr RawTH2S) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2S.h TH2S_getAxisColorA" c_th2s_getaxiscolora +  :: (Ptr RawTH2S) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2S.h TH2S_getLabelColorA" c_th2s_getlabelcolora +  :: (Ptr RawTH2S) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2S.h TH2S_getLabelFontA" c_th2s_getlabelfonta +  :: (Ptr RawTH2S) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2S.h TH2S_getLabelOffsetA" c_th2s_getlabeloffseta +  :: (Ptr RawTH2S) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_getLabelSizeA" c_th2s_getlabelsizea +  :: (Ptr RawTH2S) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_getTitleFontA" c_th2s_gettitlefonta +  :: (Ptr RawTH2S) -> CString -> IO CInt++foreign import ccall "HROOTHistTH2S.h TH2S_getTitleOffsetA" c_th2s_gettitleoffseta +  :: (Ptr RawTH2S) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_getTitleSizeA" c_th2s_gettitlesizea +  :: (Ptr RawTH2S) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_getTickLengthA" c_th2s_getticklengtha +  :: (Ptr RawTH2S) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_GetBarOffset" c_th2s_getbaroffset +  :: (Ptr RawTH2S) -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_GetBarWidth" c_th2s_getbarwidth +  :: (Ptr RawTH2S) -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_GetContour" c_th2s_getcontour +  :: (Ptr RawTH2S) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH2S.h TH2S_GetContourLevel" c_th2s_getcontourlevel +  :: (Ptr RawTH2S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_GetContourLevelPad" c_th2s_getcontourlevelpad +  :: (Ptr RawTH2S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_GetBin" c_th2s_getbin +  :: (Ptr RawTH2S) -> CInt -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2S.h TH2S_GetBinCenter" c_th2s_getbincenter +  :: (Ptr RawTH2S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_GetBinContent1" c_th2s_getbincontent1 +  :: (Ptr RawTH2S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_GetBinContent2" c_th2s_getbincontent2 +  :: (Ptr RawTH2S) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_GetBinContent3" c_th2s_getbincontent3 +  :: (Ptr RawTH2S) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_GetBinError1" c_th2s_getbinerror1 +  :: (Ptr RawTH2S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_GetBinError2" c_th2s_getbinerror2 +  :: (Ptr RawTH2S) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_GetBinError3" c_th2s_getbinerror3 +  :: (Ptr RawTH2S) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_GetBinLowEdge" c_th2s_getbinlowedge +  :: (Ptr RawTH2S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_GetBinWidth" c_th2s_getbinwidth +  :: (Ptr RawTH2S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_GetCellContent" c_th2s_getcellcontent +  :: (Ptr RawTH2S) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_GetCellError" c_th2s_getcellerror +  :: (Ptr RawTH2S) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_GetEntries" c_th2s_getentries +  :: (Ptr RawTH2S) -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_GetEffectiveEntries" c_th2s_geteffectiveentries +  :: (Ptr RawTH2S) -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_GetFunction" c_th2s_getfunction +  :: (Ptr RawTH2S) -> CString -> IO (Ptr RawTF1)++foreign import ccall "HROOTHistTH2S.h TH2S_GetDimension" c_th2s_getdimension +  :: (Ptr RawTH2S) -> IO CInt++foreign import ccall "HROOTHistTH2S.h TH2S_GetKurtosis" c_th2s_getkurtosis +  :: (Ptr RawTH2S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_GetLowEdge" c_th2s_getlowedge +  :: (Ptr RawTH2S) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_getMaximumTH1" c_th2s_getmaximumth1 +  :: (Ptr RawTH2S) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_GetMaximumBin" c_th2s_getmaximumbin +  :: (Ptr RawTH2S) -> IO CInt++foreign import ccall "HROOTHistTH2S.h TH2S_GetMaximumStored" c_th2s_getmaximumstored +  :: (Ptr RawTH2S) -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_getMinimumTH1" c_th2s_getminimumth1 +  :: (Ptr RawTH2S) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_GetMinimumBin" c_th2s_getminimumbin +  :: (Ptr RawTH2S) -> IO CInt++foreign import ccall "HROOTHistTH2S.h TH2S_GetMinimumStored" c_th2s_getminimumstored +  :: (Ptr RawTH2S) -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_GetMean" c_th2s_getmean +  :: (Ptr RawTH2S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_GetMeanError" c_th2s_getmeanerror +  :: (Ptr RawTH2S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_GetNbinsX" c_th2s_getnbinsx +  :: (Ptr RawTH2S) -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_GetNbinsY" c_th2s_getnbinsy +  :: (Ptr RawTH2S) -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_GetNbinsZ" c_th2s_getnbinsz +  :: (Ptr RawTH2S) -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_getQuantilesTH1" c_th2s_getquantilesth1 +  :: (Ptr RawTH2S) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH2S.h TH2S_GetRandom" c_th2s_getrandom +  :: (Ptr RawTH2S) -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_GetStats" c_th2s_getstats +  :: (Ptr RawTH2S) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_GetSumOfWeights" c_th2s_getsumofweights +  :: (Ptr RawTH2S) -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_GetSumw2" c_th2s_getsumw2 +  :: (Ptr RawTH2S) -> IO (Ptr RawTArrayD)++foreign import ccall "HROOTHistTH2S.h TH2S_GetSumw2N" c_th2s_getsumw2n +  :: (Ptr RawTH2S) -> IO CInt++foreign import ccall "HROOTHistTH2S.h TH2S_GetRMS" c_th2s_getrms +  :: (Ptr RawTH2S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_GetRMSError" c_th2s_getrmserror +  :: (Ptr RawTH2S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_GetSkewness" c_th2s_getskewness +  :: (Ptr RawTH2S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_integral1" c_th2s_integral1 +  :: (Ptr RawTH2S) -> CInt -> CInt -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_interpolate1" c_th2s_interpolate1 +  :: (Ptr RawTH2S) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_interpolate2" c_th2s_interpolate2 +  :: (Ptr RawTH2S) -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_interpolate3" c_th2s_interpolate3 +  :: (Ptr RawTH2S) -> CDouble -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_KolmogorovTest" c_th2s_kolmogorovtest +  :: (Ptr RawTH2S) -> (Ptr RawTH1) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_LabelsDeflate" c_th2s_labelsdeflate +  :: (Ptr RawTH2S) -> CString -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_LabelsInflate" c_th2s_labelsinflate +  :: (Ptr RawTH2S) -> CString -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_LabelsOption" c_th2s_labelsoption +  :: (Ptr RawTH2S) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_multiflyF" c_th2s_multiflyf +  :: (Ptr RawTH2S) -> (Ptr RawTF1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_Multiply" c_th2s_multiply +  :: (Ptr RawTH2S) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_PutStats" c_th2s_putstats +  :: (Ptr RawTH2S) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_Rebin" c_th2s_rebin +  :: (Ptr RawTH2S) -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH2S.h TH2S_RebinAxis" c_th2s_rebinaxis +  :: (Ptr RawTH2S) -> CDouble -> (Ptr RawTAxis) -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_Rebuild" c_th2s_rebuild +  :: (Ptr RawTH2S) -> CString -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_RecursiveRemove" c_th2s_recursiveremove +  :: (Ptr RawTH2S) -> (Ptr RawTObject) -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_Reset" c_th2s_reset +  :: (Ptr RawTH2S) -> CString -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_ResetStats" c_th2s_resetstats +  :: (Ptr RawTH2S) -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_Scale" c_th2s_scale +  :: (Ptr RawTH2S) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_setAxisColorA" c_th2s_setaxiscolora +  :: (Ptr RawTH2S) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetAxisRange" c_th2s_setaxisrange +  :: (Ptr RawTH2S) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetBarOffset" c_th2s_setbaroffset +  :: (Ptr RawTH2S) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetBarWidth" c_th2s_setbarwidth +  :: (Ptr RawTH2S) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_setBinContent1" c_th2s_setbincontent1 +  :: (Ptr RawTH2S) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_setBinContent2" c_th2s_setbincontent2 +  :: (Ptr RawTH2S) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_setBinContent3" c_th2s_setbincontent3 +  :: (Ptr RawTH2S) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_setBinError1" c_th2s_setbinerror1 +  :: (Ptr RawTH2S) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_setBinError2" c_th2s_setbinerror2 +  :: (Ptr RawTH2S) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_setBinError3" c_th2s_setbinerror3 +  :: (Ptr RawTH2S) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_setBins1" c_th2s_setbins1 +  :: (Ptr RawTH2S) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_setBins2" c_th2s_setbins2 +  :: (Ptr RawTH2S) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_setBins3" c_th2s_setbins3 +  :: (Ptr RawTH2S) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetBinsLength" c_th2s_setbinslength +  :: (Ptr RawTH2S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetBuffer" c_th2s_setbuffer +  :: (Ptr RawTH2S) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetCellContent" c_th2s_setcellcontent +  :: (Ptr RawTH2S) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetContent" c_th2s_setcontent +  :: (Ptr RawTH2S) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetContour" c_th2s_setcontour +  :: (Ptr RawTH2S) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetContourLevel" c_th2s_setcontourlevel +  :: (Ptr RawTH2S) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetDirectory" c_th2s_setdirectory +  :: (Ptr RawTH2S) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetEntries" c_th2s_setentries +  :: (Ptr RawTH2S) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetError" c_th2s_seterror +  :: (Ptr RawTH2S) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_setLabelColorA" c_th2s_setlabelcolora +  :: (Ptr RawTH2S) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_setLabelSizeA" c_th2s_setlabelsizea +  :: (Ptr RawTH2S) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_setLabelFontA" c_th2s_setlabelfonta +  :: (Ptr RawTH2S) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_setLabelOffsetA" c_th2s_setlabeloffseta +  :: (Ptr RawTH2S) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetMaximum" c_th2s_setmaximum +  :: (Ptr RawTH2S) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetMinimum" c_th2s_setminimum +  :: (Ptr RawTH2S) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetNormFactor" c_th2s_setnormfactor +  :: (Ptr RawTH2S) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetStats" c_th2s_setstats +  :: (Ptr RawTH2S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetOption" c_th2s_setoption +  :: (Ptr RawTH2S) -> CString -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetXTitle" c_th2s_setxtitle +  :: (Ptr RawTH2S) -> CString -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetYTitle" c_th2s_setytitle +  :: (Ptr RawTH2S) -> CString -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetZTitle" c_th2s_setztitle +  :: (Ptr RawTH2S) -> CString -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_ShowBackground" c_th2s_showbackground +  :: (Ptr RawTH2S) -> CInt -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH2S.h TH2S_ShowPeaks" c_th2s_showpeaks +  :: (Ptr RawTH2S) -> CDouble -> CString -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH2S.h TH2S_Smooth" c_th2s_smooth +  :: (Ptr RawTH2S) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_Sumw2" c_th2s_sumw2 +  :: (Ptr RawTH2S) -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_Draw" c_th2s_draw +  :: (Ptr RawTH2S) -> CString -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_FindObject" c_th2s_findobject +  :: (Ptr RawTH2S) -> CString -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTH2S.h TH2S_GetName" c_th2s_getname +  :: (Ptr RawTH2S) -> IO CString++foreign import ccall "HROOTHistTH2S.h TH2S_IsA" c_th2s_isa +  :: (Ptr RawTH2S) -> IO (Ptr RawTClass)++foreign import ccall "HROOTHistTH2S.h TH2S_Paint" c_th2s_paint +  :: (Ptr RawTH2S) -> CString -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_printObj" c_th2s_printobj +  :: (Ptr RawTH2S) -> CString -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SaveAs" c_th2s_saveas +  :: (Ptr RawTH2S) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_Write" c_th2s_write +  :: (Ptr RawTH2S) -> CString -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH2S.h TH2S_GetLineColor" c_th2s_getlinecolor +  :: (Ptr RawTH2S) -> IO CInt++foreign import ccall "HROOTHistTH2S.h TH2S_GetLineStyle" c_th2s_getlinestyle +  :: (Ptr RawTH2S) -> IO CInt++foreign import ccall "HROOTHistTH2S.h TH2S_GetLineWidth" c_th2s_getlinewidth +  :: (Ptr RawTH2S) -> IO CInt++foreign import ccall "HROOTHistTH2S.h TH2S_ResetAttLine" c_th2s_resetattline +  :: (Ptr RawTH2S) -> CString -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetLineAttributes" c_th2s_setlineattributes +  :: (Ptr RawTH2S) -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetLineColor" c_th2s_setlinecolor +  :: (Ptr RawTH2S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetLineStyle" c_th2s_setlinestyle +  :: (Ptr RawTH2S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetLineWidth" c_th2s_setlinewidth +  :: (Ptr RawTH2S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetFillColor" c_th2s_setfillcolor +  :: (Ptr RawTH2S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetFillStyle" c_th2s_setfillstyle +  :: (Ptr RawTH2S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_GetMarkerColor" c_th2s_getmarkercolor +  :: (Ptr RawTH2S) -> IO CInt++foreign import ccall "HROOTHistTH2S.h TH2S_GetMarkerStyle" c_th2s_getmarkerstyle +  :: (Ptr RawTH2S) -> IO CInt++foreign import ccall "HROOTHistTH2S.h TH2S_GetMarkerSize" c_th2s_getmarkersize +  :: (Ptr RawTH2S) -> IO CDouble++foreign import ccall "HROOTHistTH2S.h TH2S_ResetAttMarker" c_th2s_resetattmarker +  :: (Ptr RawTH2S) -> CString -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetMarkerAttributes" c_th2s_setmarkerattributes +  :: (Ptr RawTH2S) -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetMarkerColor" c_th2s_setmarkercolor +  :: (Ptr RawTH2S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetMarkerStyle" c_th2s_setmarkerstyle +  :: (Ptr RawTH2S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_SetMarkerSize" c_th2s_setmarkersize +  :: (Ptr RawTH2S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH2S.h TH2S_delete" c_th2s_delete +  :: (Ptr RawTH2S) -> IO ()+
+ src/HROOT/Hist/TH2S/Implementation.hs view
@@ -0,0 +1,451 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, +             OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH2S.Implementation where+++import FFICXX.Runtime.Cast++import HROOT.Hist.TH2S.RawType+import HROOT.Hist.TH2S.FFI+import HROOT.Hist.TH2S.Interface+import HROOT.Hist.TH2S.Cast+import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH1D.Cast+import HROOT.Hist.TH1D.Interface+import HROOT.Hist.TF1.RawType+import HROOT.Hist.TF1.Cast+import HROOT.Hist.TF1.Interface+import HROOT.Core.TObjArray.RawType+import HROOT.Core.TObjArray.Cast+import HROOT.Core.TObjArray.Interface+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TDirectory.Cast+import HROOT.Core.TDirectory.Interface+import HROOT.Core.TArrayD.RawType+import HROOT.Core.TArrayD.Cast+import HROOT.Core.TArrayD.Interface+import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.Cast+import HROOT.Hist.TAxis.Interface+import HROOT.Core.TClass.RawType+import HROOT.Core.TClass.Cast+import HROOT.Core.TClass.Interface+import HROOT.Hist.TH2.RawType+import HROOT.Hist.TH2.Cast+import HROOT.Hist.TH2.Interface+import HROOT.Core.TArrayS.RawType+import HROOT.Core.TArrayS.Cast+import HROOT.Core.TArrayS.Interface+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH1.Cast+import HROOT.Hist.TH1.Interface+import HROOT.Core.TObject.RawType+import HROOT.Core.TObject.Cast+import HROOT.Core.TObject.Interface+import HROOT.Core.TAttLine.RawType+import HROOT.Core.TAttLine.Cast+import HROOT.Core.TAttLine.Interface+import HROOT.Core.TAttFill.RawType+import HROOT.Core.TAttFill.Cast+import HROOT.Core.TAttFill.Interface+import HROOT.Core.TAttMarker.RawType+import HROOT.Core.TAttMarker.Cast+import HROOT.Core.TAttMarker.Interface+import HROOT.Core.Deletable.RawType+import HROOT.Core.Deletable.Cast+import HROOT.Core.Deletable.Interface+import HROOT.Core.TArray.RawType+import HROOT.Core.TArray.Cast+import HROOT.Core.TArray.Interface++import Data.Word+import Foreign.C+import Foreign.Ptr +import Foreign.ForeignPtr++import System.IO.Unsafe+++instance ITH2S TH2S where+instance ITH2 TH2S where+  fill2 = xform2 c_th2s_fill2+  fill2w = xform3 c_th2s_fill2w+  fillN2 = xform5 c_th2s_filln2+  fillRandom2 = xform2 c_th2s_fillrandom2+  findFirstBinAbove2 = xform2 c_th2s_findfirstbinabove2+  findLastBinAbove2 = xform2 c_th2s_findlastbinabove2+  fitSlicesX = xform6 c_th2s_fitslicesx+  fitSlicesY = xform6 c_th2s_fitslicesy+  getCorrelationFactor2 = xform2 c_th2s_getcorrelationfactor2+  getCovariance2 = xform2 c_th2s_getcovariance2+  integral2 = xform5 c_th2s_integral2+  rebinX2 = xform2 c_th2s_rebinx2+  rebinY2 = xform2 c_th2s_rebiny2+  rebin2D = xform3 c_th2s_rebin2d+  setShowProjectionX = xform1 c_th2s_setshowprojectionx+  setShowProjectionY = xform1 c_th2s_setshowprojectiony+instance ITArrayS TH2S where+instance ITH1 TH2S where+  add = xform2 c_th2s_add+  addBinContent = xform2 c_th2s_addbincontent+  chi2Test = xform3 c_th2s_chi2test+  computeIntegral = xform0 c_th2s_computeintegral+  directoryAutoAdd = xform1 c_th2s_directoryautoadd+  divide = xform5 c_th2s_divide+  drawCopyTH1 = xform1 c_th2s_drawcopyth1+  drawNormalized = xform2 c_th2s_drawnormalized+  drawPanelTH1 = xform0 c_th2s_drawpanelth1+  bufferEmpty = xform1 c_th2s_bufferempty+  evalF = xform2 c_th2s_evalf+  fFT = xform2 c_th2s_fft+  fill1 = xform1 c_th2s_fill1+  fill1w = xform2 c_th2s_fill1w+  fillN1 = xform4 c_th2s_filln1+  fillRandom = xform2 c_th2s_fillrandom+  findBin = xform3 c_th2s_findbin+  findFixBin = xform3 c_th2s_findfixbin+  findFirstBinAbove = xform2 c_th2s_findfirstbinabove+  findLastBinAbove = xform2 c_th2s_findlastbinabove+  fitPanelTH1 = xform0 c_th2s_fitpanelth1+  getNdivisionA = xform1 c_th2s_getndivisiona+  getAxisColorA = xform1 c_th2s_getaxiscolora+  getLabelColorA = xform1 c_th2s_getlabelcolora+  getLabelFontA = xform1 c_th2s_getlabelfonta+  getLabelOffsetA = xform1 c_th2s_getlabeloffseta+  getLabelSizeA = xform1 c_th2s_getlabelsizea+  getTitleFontA = xform1 c_th2s_gettitlefonta+  getTitleOffsetA = xform1 c_th2s_gettitleoffseta+  getTitleSizeA = xform1 c_th2s_gettitlesizea+  getTickLengthA = xform1 c_th2s_getticklengtha+  getBarOffset = xform0 c_th2s_getbaroffset+  getBarWidth = xform0 c_th2s_getbarwidth+  getContour = xform1 c_th2s_getcontour+  getContourLevel = xform1 c_th2s_getcontourlevel+  getContourLevelPad = xform1 c_th2s_getcontourlevelpad+  getBin = xform3 c_th2s_getbin+  getBinCenter = xform1 c_th2s_getbincenter+  getBinContent1 = xform1 c_th2s_getbincontent1+  getBinContent2 = xform2 c_th2s_getbincontent2+  getBinContent3 = xform3 c_th2s_getbincontent3+  getBinError1 = xform1 c_th2s_getbinerror1+  getBinError2 = xform2 c_th2s_getbinerror2+  getBinError3 = xform3 c_th2s_getbinerror3+  getBinLowEdge = xform1 c_th2s_getbinlowedge+  getBinWidth = xform1 c_th2s_getbinwidth+  getCellContent = xform2 c_th2s_getcellcontent+  getCellError = xform2 c_th2s_getcellerror+  getEntries = xform0 c_th2s_getentries+  getEffectiveEntries = xform0 c_th2s_geteffectiveentries+  getFunction = xform1 c_th2s_getfunction+  getDimension = xform0 c_th2s_getdimension+  getKurtosis = xform1 c_th2s_getkurtosis+  getLowEdge = xform1 c_th2s_getlowedge+  getMaximumTH1 = xform1 c_th2s_getmaximumth1+  getMaximumBin = xform0 c_th2s_getmaximumbin+  getMaximumStored = xform0 c_th2s_getmaximumstored+  getMinimumTH1 = xform1 c_th2s_getminimumth1+  getMinimumBin = xform0 c_th2s_getminimumbin+  getMinimumStored = xform0 c_th2s_getminimumstored+  getMean = xform1 c_th2s_getmean+  getMeanError = xform1 c_th2s_getmeanerror+  getNbinsX = xform0 c_th2s_getnbinsx+  getNbinsY = xform0 c_th2s_getnbinsy+  getNbinsZ = xform0 c_th2s_getnbinsz+  getQuantilesTH1 = xform3 c_th2s_getquantilesth1+  getRandom = xform0 c_th2s_getrandom+  getStats = xform1 c_th2s_getstats+  getSumOfWeights = xform0 c_th2s_getsumofweights+  getSumw2 = xform0 c_th2s_getsumw2+  getSumw2N = xform0 c_th2s_getsumw2n+  getRMS = xform1 c_th2s_getrms+  getRMSError = xform1 c_th2s_getrmserror+  getSkewness = xform1 c_th2s_getskewness+  integral1 = xform3 c_th2s_integral1+  interpolate1 = xform1 c_th2s_interpolate1+  interpolate2 = xform2 c_th2s_interpolate2+  interpolate3 = xform3 c_th2s_interpolate3+  kolmogorovTest = xform2 c_th2s_kolmogorovtest+  labelsDeflate = xform1 c_th2s_labelsdeflate+  labelsInflate = xform1 c_th2s_labelsinflate+  labelsOption = xform2 c_th2s_labelsoption+  multiflyF = xform2 c_th2s_multiflyf+  multiply = xform5 c_th2s_multiply+  putStats = xform1 c_th2s_putstats+  rebin = xform3 c_th2s_rebin+  rebinAxis = xform2 c_th2s_rebinaxis+  rebuild = xform1 c_th2s_rebuild+  recursiveRemove = xform1 c_th2s_recursiveremove+  reset = xform1 c_th2s_reset+  resetStats = xform0 c_th2s_resetstats+  scale = xform2 c_th2s_scale+  setAxisColorA = xform2 c_th2s_setaxiscolora+  setAxisRange = xform3 c_th2s_setaxisrange+  setBarOffset = xform1 c_th2s_setbaroffset+  setBarWidth = xform1 c_th2s_setbarwidth+  setBinContent1 = xform2 c_th2s_setbincontent1+  setBinContent2 = xform3 c_th2s_setbincontent2+  setBinContent3 = xform4 c_th2s_setbincontent3+  setBinError1 = xform2 c_th2s_setbinerror1+  setBinError2 = xform3 c_th2s_setbinerror2+  setBinError3 = xform4 c_th2s_setbinerror3+  setBins1 = xform2 c_th2s_setbins1+  setBins2 = xform4 c_th2s_setbins2+  setBins3 = xform6 c_th2s_setbins3+  setBinsLength = xform1 c_th2s_setbinslength+  setBuffer = xform2 c_th2s_setbuffer+  setCellContent = xform3 c_th2s_setcellcontent+  setContent = xform1 c_th2s_setcontent+  setContour = xform2 c_th2s_setcontour+  setContourLevel = xform2 c_th2s_setcontourlevel+  setDirectory = xform1 c_th2s_setdirectory+  setEntries = xform1 c_th2s_setentries+  setError = xform1 c_th2s_seterror+  setLabelColorA = xform2 c_th2s_setlabelcolora+  setLabelSizeA = xform2 c_th2s_setlabelsizea+  setLabelFontA = xform2 c_th2s_setlabelfonta+  setLabelOffsetA = xform2 c_th2s_setlabeloffseta+  setMaximum = xform1 c_th2s_setmaximum+  setMinimum = xform1 c_th2s_setminimum+  setNormFactor = xform1 c_th2s_setnormfactor+  setStats = xform1 c_th2s_setstats+  setOption = xform1 c_th2s_setoption+  setXTitle = xform1 c_th2s_setxtitle+  setYTitle = xform1 c_th2s_setytitle+  setZTitle = xform1 c_th2s_setztitle+  showBackground = xform2 c_th2s_showbackground+  showPeaks = xform3 c_th2s_showpeaks+  smooth = xform2 c_th2s_smooth+  sumw2 = xform0 c_th2s_sumw2+instance ITObject TH2S where+  draw = xform1 c_th2s_draw+  findObject = xform1 c_th2s_findobject+  getName = xform0 c_th2s_getname+  isA = xform0 c_th2s_isa+  paint = xform1 c_th2s_paint+  printObj = xform1 c_th2s_printobj+  saveAs = xform2 c_th2s_saveas+  write = xform3 c_th2s_write+instance ITAttLine TH2S where+  getLineColor = xform0 c_th2s_getlinecolor+  getLineStyle = xform0 c_th2s_getlinestyle+  getLineWidth = xform0 c_th2s_getlinewidth+  resetAttLine = xform1 c_th2s_resetattline+  setLineAttributes = xform0 c_th2s_setlineattributes+  setLineColor = xform1 c_th2s_setlinecolor+  setLineStyle = xform1 c_th2s_setlinestyle+  setLineWidth = xform1 c_th2s_setlinewidth+instance ITAttFill TH2S where+  setFillColor = xform1 c_th2s_setfillcolor+  setFillStyle = xform1 c_th2s_setfillstyle+instance ITAttMarker TH2S where+  getMarkerColor = xform0 c_th2s_getmarkercolor+  getMarkerStyle = xform0 c_th2s_getmarkerstyle+  getMarkerSize = xform0 c_th2s_getmarkersize+  resetAttMarker = xform1 c_th2s_resetattmarker+  setMarkerAttributes = xform0 c_th2s_setmarkerattributes+  setMarkerColor = xform1 c_th2s_setmarkercolor+  setMarkerStyle = xform1 c_th2s_setmarkerstyle+  setMarkerSize = xform1 c_th2s_setmarkersize+instance IDeletable TH2S where+  delete = xform0 c_th2s_delete+instance ITArray TH2S where++instance ITH2S (Exist TH2S) where++instance ITH2 (Exist TH2S) where+  fill2 (ETH2S x) = fill2 x+  fill2w (ETH2S x) = fill2w x+  fillN2 (ETH2S x) = fillN2 x+  fillRandom2 (ETH2S x) = fillRandom2 x+  findFirstBinAbove2 (ETH2S x) = findFirstBinAbove2 x+  findLastBinAbove2 (ETH2S x) = findLastBinAbove2 x+  fitSlicesX (ETH2S x) = fitSlicesX x+  fitSlicesY (ETH2S x) = fitSlicesY x+  getCorrelationFactor2 (ETH2S x) = getCorrelationFactor2 x+  getCovariance2 (ETH2S x) = getCovariance2 x+  integral2 (ETH2S x) = integral2 x+  rebinX2 (ETH2S x) = rebinX2 x+  rebinY2 (ETH2S x) = rebinY2 x+  rebin2D (ETH2S x) = rebin2D x+  setShowProjectionX (ETH2S x) = setShowProjectionX x+  setShowProjectionY (ETH2S x) = setShowProjectionY x+instance ITArrayS (Exist TH2S) where++instance ITH1 (Exist TH2S) where+  add (ETH2S x) = add x+  addBinContent (ETH2S x) = addBinContent x+  chi2Test (ETH2S x) = chi2Test x+  computeIntegral (ETH2S x) = computeIntegral x+  directoryAutoAdd (ETH2S x) = directoryAutoAdd x+  divide (ETH2S x) = divide x+  drawCopyTH1 (ETH2S x) a1 = return . ETH2S =<< drawCopyTH1 x a1+  drawNormalized (ETH2S x) = drawNormalized x+  drawPanelTH1 (ETH2S x) = drawPanelTH1 x+  bufferEmpty (ETH2S x) = bufferEmpty x+  evalF (ETH2S x) = evalF x+  fFT (ETH2S x) = fFT x+  fill1 (ETH2S x) = fill1 x+  fill1w (ETH2S x) = fill1w x+  fillN1 (ETH2S x) = fillN1 x+  fillRandom (ETH2S x) = fillRandom x+  findBin (ETH2S x) = findBin x+  findFixBin (ETH2S x) = findFixBin x+  findFirstBinAbove (ETH2S x) = findFirstBinAbove x+  findLastBinAbove (ETH2S x) = findLastBinAbove x+  fitPanelTH1 (ETH2S x) = fitPanelTH1 x+  getNdivisionA (ETH2S x) = getNdivisionA x+  getAxisColorA (ETH2S x) = getAxisColorA x+  getLabelColorA (ETH2S x) = getLabelColorA x+  getLabelFontA (ETH2S x) = getLabelFontA x+  getLabelOffsetA (ETH2S x) = getLabelOffsetA x+  getLabelSizeA (ETH2S x) = getLabelSizeA x+  getTitleFontA (ETH2S x) = getTitleFontA x+  getTitleOffsetA (ETH2S x) = getTitleOffsetA x+  getTitleSizeA (ETH2S x) = getTitleSizeA x+  getTickLengthA (ETH2S x) = getTickLengthA x+  getBarOffset (ETH2S x) = getBarOffset x+  getBarWidth (ETH2S x) = getBarWidth x+  getContour (ETH2S x) = getContour x+  getContourLevel (ETH2S x) = getContourLevel x+  getContourLevelPad (ETH2S x) = getContourLevelPad x+  getBin (ETH2S x) = getBin x+  getBinCenter (ETH2S x) = getBinCenter x+  getBinContent1 (ETH2S x) = getBinContent1 x+  getBinContent2 (ETH2S x) = getBinContent2 x+  getBinContent3 (ETH2S x) = getBinContent3 x+  getBinError1 (ETH2S x) = getBinError1 x+  getBinError2 (ETH2S x) = getBinError2 x+  getBinError3 (ETH2S x) = getBinError3 x+  getBinLowEdge (ETH2S x) = getBinLowEdge x+  getBinWidth (ETH2S x) = getBinWidth x+  getCellContent (ETH2S x) = getCellContent x+  getCellError (ETH2S x) = getCellError x+  getEntries (ETH2S x) = getEntries x+  getEffectiveEntries (ETH2S x) = getEffectiveEntries x+  getFunction (ETH2S x) = getFunction x+  getDimension (ETH2S x) = getDimension x+  getKurtosis (ETH2S x) = getKurtosis x+  getLowEdge (ETH2S x) = getLowEdge x+  getMaximumTH1 (ETH2S x) = getMaximumTH1 x+  getMaximumBin (ETH2S x) = getMaximumBin x+  getMaximumStored (ETH2S x) = getMaximumStored x+  getMinimumTH1 (ETH2S x) = getMinimumTH1 x+  getMinimumBin (ETH2S x) = getMinimumBin x+  getMinimumStored (ETH2S x) = getMinimumStored x+  getMean (ETH2S x) = getMean x+  getMeanError (ETH2S x) = getMeanError x+  getNbinsX (ETH2S x) = getNbinsX x+  getNbinsY (ETH2S x) = getNbinsY x+  getNbinsZ (ETH2S x) = getNbinsZ x+  getQuantilesTH1 (ETH2S x) = getQuantilesTH1 x+  getRandom (ETH2S x) = getRandom x+  getStats (ETH2S x) = getStats x+  getSumOfWeights (ETH2S x) = getSumOfWeights x+  getSumw2 (ETH2S x) = getSumw2 x+  getSumw2N (ETH2S x) = getSumw2N x+  getRMS (ETH2S x) = getRMS x+  getRMSError (ETH2S x) = getRMSError x+  getSkewness (ETH2S x) = getSkewness x+  integral1 (ETH2S x) = integral1 x+  interpolate1 (ETH2S x) = interpolate1 x+  interpolate2 (ETH2S x) = interpolate2 x+  interpolate3 (ETH2S x) = interpolate3 x+  kolmogorovTest (ETH2S x) = kolmogorovTest x+  labelsDeflate (ETH2S x) = labelsDeflate x+  labelsInflate (ETH2S x) = labelsInflate x+  labelsOption (ETH2S x) = labelsOption x+  multiflyF (ETH2S x) = multiflyF x+  multiply (ETH2S x) = multiply x+  putStats (ETH2S x) = putStats x+  rebin (ETH2S x) = rebin x+  rebinAxis (ETH2S x) = rebinAxis x+  rebuild (ETH2S x) = rebuild x+  recursiveRemove (ETH2S x) = recursiveRemove x+  reset (ETH2S x) = reset x+  resetStats (ETH2S x) = resetStats x+  scale (ETH2S x) = scale x+  setAxisColorA (ETH2S x) = setAxisColorA x+  setAxisRange (ETH2S x) = setAxisRange x+  setBarOffset (ETH2S x) = setBarOffset x+  setBarWidth (ETH2S x) = setBarWidth x+  setBinContent1 (ETH2S x) = setBinContent1 x+  setBinContent2 (ETH2S x) = setBinContent2 x+  setBinContent3 (ETH2S x) = setBinContent3 x+  setBinError1 (ETH2S x) = setBinError1 x+  setBinError2 (ETH2S x) = setBinError2 x+  setBinError3 (ETH2S x) = setBinError3 x+  setBins1 (ETH2S x) = setBins1 x+  setBins2 (ETH2S x) = setBins2 x+  setBins3 (ETH2S x) = setBins3 x+  setBinsLength (ETH2S x) = setBinsLength x+  setBuffer (ETH2S x) = setBuffer x+  setCellContent (ETH2S x) = setCellContent x+  setContent (ETH2S x) = setContent x+  setContour (ETH2S x) = setContour x+  setContourLevel (ETH2S x) = setContourLevel x+  setDirectory (ETH2S x) = setDirectory x+  setEntries (ETH2S x) = setEntries x+  setError (ETH2S x) = setError x+  setLabelColorA (ETH2S x) = setLabelColorA x+  setLabelSizeA (ETH2S x) = setLabelSizeA x+  setLabelFontA (ETH2S x) = setLabelFontA x+  setLabelOffsetA (ETH2S x) = setLabelOffsetA x+  setMaximum (ETH2S x) = setMaximum x+  setMinimum (ETH2S x) = setMinimum x+  setNormFactor (ETH2S x) = setNormFactor x+  setStats (ETH2S x) = setStats x+  setOption (ETH2S x) = setOption x+  setXTitle (ETH2S x) = setXTitle x+  setYTitle (ETH2S x) = setYTitle x+  setZTitle (ETH2S x) = setZTitle x+  showBackground (ETH2S x) = showBackground x+  showPeaks (ETH2S x) = showPeaks x+  smooth (ETH2S x) = smooth x+  sumw2 (ETH2S x) = sumw2 x+instance ITObject (Exist TH2S) where+  draw (ETH2S x) = draw x+  findObject (ETH2S x) = findObject x+  getName (ETH2S x) = getName x+  isA (ETH2S x) = isA x+  paint (ETH2S x) = paint x+  printObj (ETH2S x) = printObj x+  saveAs (ETH2S x) = saveAs x+  write (ETH2S x) = write x+instance ITAttLine (Exist TH2S) where+  getLineColor (ETH2S x) = getLineColor x+  getLineStyle (ETH2S x) = getLineStyle x+  getLineWidth (ETH2S x) = getLineWidth x+  resetAttLine (ETH2S x) = resetAttLine x+  setLineAttributes (ETH2S x) = setLineAttributes x+  setLineColor (ETH2S x) = setLineColor x+  setLineStyle (ETH2S x) = setLineStyle x+  setLineWidth (ETH2S x) = setLineWidth x+instance ITAttFill (Exist TH2S) where+  setFillColor (ETH2S x) = setFillColor x+  setFillStyle (ETH2S x) = setFillStyle x+instance ITAttMarker (Exist TH2S) where+  getMarkerColor (ETH2S x) = getMarkerColor x+  getMarkerStyle (ETH2S x) = getMarkerStyle x+  getMarkerSize (ETH2S x) = getMarkerSize x+  resetAttMarker (ETH2S x) = resetAttMarker x+  setMarkerAttributes (ETH2S x) = setMarkerAttributes x+  setMarkerColor (ETH2S x) = setMarkerColor x+  setMarkerStyle (ETH2S x) = setMarkerStyle x+  setMarkerSize (ETH2S x) = setMarkerSize x+instance IDeletable (Exist TH2S) where+  delete (ETH2S x) = delete x+instance ITArray (Exist TH2S) where+++++++++instance FPtr (Exist TH2S) where+  type Raw (Exist TH2S) = RawTH2S+  get_fptr (ETH2S obj) = castForeignPtr (get_fptr obj)+  cast_fptr_to_obj fptr = ETH2S (cast_fptr_to_obj (fptr :: ForeignPtr RawTH2S) :: TH2S)
+ src/HROOT/Hist/TH2S/Interface.hs view
@@ -0,0 +1,37 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++-- module HROOT.Class.Interface where++module HROOT.Hist.TH2S.Interface where+++import Data.Word+import Foreign.C+import Foreign.Ptr+import Foreign.ForeignPtr+import FFICXX.Runtime.Cast++import HROOT.Hist.TH2S.RawType++import HROOT.Hist.TH2.Interface+import HROOT.Core.TArrayS.Interface+---- ============ ----++++class (ITH2 a,ITArrayS a) => ITH2S a where++instance Existable TH2S where+  data Exist TH2S = forall a. (FPtr a, ITH2S a) => ETH2S a++upcastTH2S :: (FPtr a, ITH2S a) => a -> TH2S+upcastTH2S h = let fh = get_fptr h+                   fh2 :: ForeignPtr RawTH2S = castForeignPtr fh+               in cast_fptr_to_obj fh2++downcastTH2S :: (FPtr a, ITH2S a) => TH2S -> a +downcastTH2S h = let fh = get_fptr h+                     fh2 = castForeignPtr fh+                 in cast_fptr_to_obj fh2
+ src/HROOT/Hist/TH2S/RawType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++module HROOT.Hist.TH2S.RawType where+++import Foreign.ForeignPtr+import FFICXX.Runtime.Cast  ++data RawTH2S+newtype TH2S = TH2S (ForeignPtr RawTH2S) deriving (Eq, Ord, Show)+instance FPtr TH2S where+   type Raw TH2S = RawTH2S+   get_fptr (TH2S fptr) = fptr+   cast_fptr_to_obj = TH2S
+ src/HROOT/Hist/TH3.hs view
@@ -0,0 +1,18 @@+module HROOT.Hist.TH3+  (+    TH3(..)+  , ITH3(..)+  , upcastTH3+  , downcastTH3+  , tH3ProjectionX+  , tH3ProjectionY+  , tH3ProjectionZ+  , tH3Project3D+ +  ) where++import HROOT.Hist.TH3.RawType+import HROOT.Hist.TH3.Interface+import HROOT.Hist.TH3.Implementation++
+ src/HROOT/Hist/TH3/Cast.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeFamilies, +             MultiParamTypeClasses, OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH3.Cast where+++import Foreign.Ptr+import Foreign.ForeignPtr (castForeignPtr, newForeignPtr_)+import Foreign.ForeignPtr.Unsafe+import FFICXX.Runtime.Cast+import System.IO.Unsafe++import HROOT.Hist.TH3.RawType+import HROOT.Hist.TH3.Interface++instance (ITH3 a, FPtr a) => Castable a (Ptr RawTH3) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ ++instance Castable TH3 (Ptr RawTH3) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+ src/HROOT/Hist/TH3/FFI.hsc view
@@ -0,0 +1,536 @@+{-# LANGUAGE ForeignFunctionInterface #-}++-- module HROOT.Class.FFI where++module HROOT.Hist.TH3.FFI where+++import Foreign.C            +import Foreign.Ptr++-- import HROOT.Class.Interface++-- #include ""++import HROOT.Hist.TH3.RawType+import HROOT.Hist.TH1.RawType+import HROOT.Core.TDirectory.RawType+import HROOT.Hist.TF1.RawType+import HROOT.Core.TArrayD.RawType+import HROOT.Hist.TAxis.RawType+import HROOT.Core.TObject.RawType+import HROOT.Core.TClass.RawType+import HROOT.Hist.TH1D.RawType++#include "HROOTHistTH3.h"++foreign import ccall "HROOTHistTH3.h TH3_Add" c_th3_add +  :: (Ptr RawTH3) -> (Ptr RawTH1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_AddBinContent" c_th3_addbincontent +  :: (Ptr RawTH3) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_Chi2Test" c_th3_chi2test +  :: (Ptr RawTH3) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_ComputeIntegral" c_th3_computeintegral +  :: (Ptr RawTH3) -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_DirectoryAutoAdd" c_th3_directoryautoadd +  :: (Ptr RawTH3) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_Divide" c_th3_divide +  :: (Ptr RawTH3) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_drawCopyTH1" c_th3_drawcopyth1 +  :: (Ptr RawTH3) -> CString -> IO (Ptr RawTH3)++foreign import ccall "HROOTHistTH3.h TH3_DrawNormalized" c_th3_drawnormalized +  :: (Ptr RawTH3) -> CString -> CDouble -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH3.h TH3_drawPanelTH1" c_th3_drawpanelth1 +  :: (Ptr RawTH3) -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_BufferEmpty" c_th3_bufferempty +  :: (Ptr RawTH3) -> CInt -> IO CInt++foreign import ccall "HROOTHistTH3.h TH3_evalF" c_th3_evalf +  :: (Ptr RawTH3) -> (Ptr RawTF1) -> CString -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_FFT" c_th3_fft +  :: (Ptr RawTH3) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH3.h TH3_fill1" c_th3_fill1 +  :: (Ptr RawTH3) -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3.h TH3_fill1w" c_th3_fill1w +  :: (Ptr RawTH3) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3.h TH3_fillN1" c_th3_filln1 +  :: (Ptr RawTH3) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_FillRandom" c_th3_fillrandom +  :: (Ptr RawTH3) -> (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_FindBin" c_th3_findbin +  :: (Ptr RawTH3) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3.h TH3_FindFixBin" c_th3_findfixbin +  :: (Ptr RawTH3) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3.h TH3_FindFirstBinAbove" c_th3_findfirstbinabove +  :: (Ptr RawTH3) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH3.h TH3_FindLastBinAbove" c_th3_findlastbinabove +  :: (Ptr RawTH3) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH3.h TH3_FitPanelTH1" c_th3_fitpanelth1 +  :: (Ptr RawTH3) -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_getNdivisionA" c_th3_getndivisiona +  :: (Ptr RawTH3) -> CString -> IO CInt++foreign import ccall "HROOTHistTH3.h TH3_getAxisColorA" c_th3_getaxiscolora +  :: (Ptr RawTH3) -> CString -> IO CInt++foreign import ccall "HROOTHistTH3.h TH3_getLabelColorA" c_th3_getlabelcolora +  :: (Ptr RawTH3) -> CString -> IO CInt++foreign import ccall "HROOTHistTH3.h TH3_getLabelFontA" c_th3_getlabelfonta +  :: (Ptr RawTH3) -> CString -> IO CInt++foreign import ccall "HROOTHistTH3.h TH3_getLabelOffsetA" c_th3_getlabeloffseta +  :: (Ptr RawTH3) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_getLabelSizeA" c_th3_getlabelsizea +  :: (Ptr RawTH3) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_getTitleFontA" c_th3_gettitlefonta +  :: (Ptr RawTH3) -> CString -> IO CInt++foreign import ccall "HROOTHistTH3.h TH3_getTitleOffsetA" c_th3_gettitleoffseta +  :: (Ptr RawTH3) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_getTitleSizeA" c_th3_gettitlesizea +  :: (Ptr RawTH3) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_getTickLengthA" c_th3_getticklengtha +  :: (Ptr RawTH3) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_GetBarOffset" c_th3_getbaroffset +  :: (Ptr RawTH3) -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_GetBarWidth" c_th3_getbarwidth +  :: (Ptr RawTH3) -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_GetContour" c_th3_getcontour +  :: (Ptr RawTH3) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH3.h TH3_GetContourLevel" c_th3_getcontourlevel +  :: (Ptr RawTH3) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_GetContourLevelPad" c_th3_getcontourlevelpad +  :: (Ptr RawTH3) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_GetBin" c_th3_getbin +  :: (Ptr RawTH3) -> CInt -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH3.h TH3_GetBinCenter" c_th3_getbincenter +  :: (Ptr RawTH3) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_GetBinContent1" c_th3_getbincontent1 +  :: (Ptr RawTH3) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_GetBinContent2" c_th3_getbincontent2 +  :: (Ptr RawTH3) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_GetBinContent3" c_th3_getbincontent3 +  :: (Ptr RawTH3) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_GetBinError1" c_th3_getbinerror1 +  :: (Ptr RawTH3) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_GetBinError2" c_th3_getbinerror2 +  :: (Ptr RawTH3) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_GetBinError3" c_th3_getbinerror3 +  :: (Ptr RawTH3) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_GetBinLowEdge" c_th3_getbinlowedge +  :: (Ptr RawTH3) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_GetBinWidth" c_th3_getbinwidth +  :: (Ptr RawTH3) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_GetCellContent" c_th3_getcellcontent +  :: (Ptr RawTH3) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_GetCellError" c_th3_getcellerror +  :: (Ptr RawTH3) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_GetEntries" c_th3_getentries +  :: (Ptr RawTH3) -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_GetEffectiveEntries" c_th3_geteffectiveentries +  :: (Ptr RawTH3) -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_GetFunction" c_th3_getfunction +  :: (Ptr RawTH3) -> CString -> IO (Ptr RawTF1)++foreign import ccall "HROOTHistTH3.h TH3_GetDimension" c_th3_getdimension +  :: (Ptr RawTH3) -> IO CInt++foreign import ccall "HROOTHistTH3.h TH3_GetKurtosis" c_th3_getkurtosis +  :: (Ptr RawTH3) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_GetLowEdge" c_th3_getlowedge +  :: (Ptr RawTH3) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_getMaximumTH1" c_th3_getmaximumth1 +  :: (Ptr RawTH3) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_GetMaximumBin" c_th3_getmaximumbin +  :: (Ptr RawTH3) -> IO CInt++foreign import ccall "HROOTHistTH3.h TH3_GetMaximumStored" c_th3_getmaximumstored +  :: (Ptr RawTH3) -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_getMinimumTH1" c_th3_getminimumth1 +  :: (Ptr RawTH3) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_GetMinimumBin" c_th3_getminimumbin +  :: (Ptr RawTH3) -> IO CInt++foreign import ccall "HROOTHistTH3.h TH3_GetMinimumStored" c_th3_getminimumstored +  :: (Ptr RawTH3) -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_GetMean" c_th3_getmean +  :: (Ptr RawTH3) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_GetMeanError" c_th3_getmeanerror +  :: (Ptr RawTH3) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_GetNbinsX" c_th3_getnbinsx +  :: (Ptr RawTH3) -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_GetNbinsY" c_th3_getnbinsy +  :: (Ptr RawTH3) -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_GetNbinsZ" c_th3_getnbinsz +  :: (Ptr RawTH3) -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_getQuantilesTH1" c_th3_getquantilesth1 +  :: (Ptr RawTH3) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH3.h TH3_GetRandom" c_th3_getrandom +  :: (Ptr RawTH3) -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_GetStats" c_th3_getstats +  :: (Ptr RawTH3) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_GetSumOfWeights" c_th3_getsumofweights +  :: (Ptr RawTH3) -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_GetSumw2" c_th3_getsumw2 +  :: (Ptr RawTH3) -> IO (Ptr RawTArrayD)++foreign import ccall "HROOTHistTH3.h TH3_GetSumw2N" c_th3_getsumw2n +  :: (Ptr RawTH3) -> IO CInt++foreign import ccall "HROOTHistTH3.h TH3_GetRMS" c_th3_getrms +  :: (Ptr RawTH3) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_GetRMSError" c_th3_getrmserror +  :: (Ptr RawTH3) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_GetSkewness" c_th3_getskewness +  :: (Ptr RawTH3) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_integral1" c_th3_integral1 +  :: (Ptr RawTH3) -> CInt -> CInt -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_interpolate1" c_th3_interpolate1 +  :: (Ptr RawTH3) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_interpolate2" c_th3_interpolate2 +  :: (Ptr RawTH3) -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_interpolate3" c_th3_interpolate3 +  :: (Ptr RawTH3) -> CDouble -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_KolmogorovTest" c_th3_kolmogorovtest +  :: (Ptr RawTH3) -> (Ptr RawTH1) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_LabelsDeflate" c_th3_labelsdeflate +  :: (Ptr RawTH3) -> CString -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_LabelsInflate" c_th3_labelsinflate +  :: (Ptr RawTH3) -> CString -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_LabelsOption" c_th3_labelsoption +  :: (Ptr RawTH3) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_multiflyF" c_th3_multiflyf +  :: (Ptr RawTH3) -> (Ptr RawTF1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_Multiply" c_th3_multiply +  :: (Ptr RawTH3) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_PutStats" c_th3_putstats +  :: (Ptr RawTH3) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_Rebin" c_th3_rebin +  :: (Ptr RawTH3) -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH3.h TH3_RebinAxis" c_th3_rebinaxis +  :: (Ptr RawTH3) -> CDouble -> (Ptr RawTAxis) -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_Rebuild" c_th3_rebuild +  :: (Ptr RawTH3) -> CString -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_RecursiveRemove" c_th3_recursiveremove +  :: (Ptr RawTH3) -> (Ptr RawTObject) -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_Reset" c_th3_reset +  :: (Ptr RawTH3) -> CString -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_ResetStats" c_th3_resetstats +  :: (Ptr RawTH3) -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_Scale" c_th3_scale +  :: (Ptr RawTH3) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_setAxisColorA" c_th3_setaxiscolora +  :: (Ptr RawTH3) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SetAxisRange" c_th3_setaxisrange +  :: (Ptr RawTH3) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SetBarOffset" c_th3_setbaroffset +  :: (Ptr RawTH3) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SetBarWidth" c_th3_setbarwidth +  :: (Ptr RawTH3) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_setBinContent1" c_th3_setbincontent1 +  :: (Ptr RawTH3) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_setBinContent2" c_th3_setbincontent2 +  :: (Ptr RawTH3) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_setBinContent3" c_th3_setbincontent3 +  :: (Ptr RawTH3) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_setBinError1" c_th3_setbinerror1 +  :: (Ptr RawTH3) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_setBinError2" c_th3_setbinerror2 +  :: (Ptr RawTH3) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_setBinError3" c_th3_setbinerror3 +  :: (Ptr RawTH3) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_setBins1" c_th3_setbins1 +  :: (Ptr RawTH3) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_setBins2" c_th3_setbins2 +  :: (Ptr RawTH3) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_setBins3" c_th3_setbins3 +  :: (Ptr RawTH3) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SetBinsLength" c_th3_setbinslength +  :: (Ptr RawTH3) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SetBuffer" c_th3_setbuffer +  :: (Ptr RawTH3) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SetCellContent" c_th3_setcellcontent +  :: (Ptr RawTH3) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SetContent" c_th3_setcontent +  :: (Ptr RawTH3) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SetContour" c_th3_setcontour +  :: (Ptr RawTH3) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SetContourLevel" c_th3_setcontourlevel +  :: (Ptr RawTH3) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SetDirectory" c_th3_setdirectory +  :: (Ptr RawTH3) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SetEntries" c_th3_setentries +  :: (Ptr RawTH3) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SetError" c_th3_seterror +  :: (Ptr RawTH3) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_setLabelColorA" c_th3_setlabelcolora +  :: (Ptr RawTH3) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_setLabelSizeA" c_th3_setlabelsizea +  :: (Ptr RawTH3) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_setLabelFontA" c_th3_setlabelfonta +  :: (Ptr RawTH3) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_setLabelOffsetA" c_th3_setlabeloffseta +  :: (Ptr RawTH3) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SetMaximum" c_th3_setmaximum +  :: (Ptr RawTH3) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SetMinimum" c_th3_setminimum +  :: (Ptr RawTH3) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SetNormFactor" c_th3_setnormfactor +  :: (Ptr RawTH3) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SetStats" c_th3_setstats +  :: (Ptr RawTH3) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SetOption" c_th3_setoption +  :: (Ptr RawTH3) -> CString -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SetXTitle" c_th3_setxtitle +  :: (Ptr RawTH3) -> CString -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SetYTitle" c_th3_setytitle +  :: (Ptr RawTH3) -> CString -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SetZTitle" c_th3_setztitle +  :: (Ptr RawTH3) -> CString -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_ShowBackground" c_th3_showbackground +  :: (Ptr RawTH3) -> CInt -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH3.h TH3_ShowPeaks" c_th3_showpeaks +  :: (Ptr RawTH3) -> CDouble -> CString -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3.h TH3_Smooth" c_th3_smooth +  :: (Ptr RawTH3) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_Sumw2" c_th3_sumw2 +  :: (Ptr RawTH3) -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_Draw" c_th3_draw +  :: (Ptr RawTH3) -> CString -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_FindObject" c_th3_findobject +  :: (Ptr RawTH3) -> CString -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTH3.h TH3_GetName" c_th3_getname +  :: (Ptr RawTH3) -> IO CString++foreign import ccall "HROOTHistTH3.h TH3_IsA" c_th3_isa +  :: (Ptr RawTH3) -> IO (Ptr RawTClass)++foreign import ccall "HROOTHistTH3.h TH3_Paint" c_th3_paint +  :: (Ptr RawTH3) -> CString -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_printObj" c_th3_printobj +  :: (Ptr RawTH3) -> CString -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SaveAs" c_th3_saveas +  :: (Ptr RawTH3) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_Write" c_th3_write +  :: (Ptr RawTH3) -> CString -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH3.h TH3_GetLineColor" c_th3_getlinecolor +  :: (Ptr RawTH3) -> IO CInt++foreign import ccall "HROOTHistTH3.h TH3_GetLineStyle" c_th3_getlinestyle +  :: (Ptr RawTH3) -> IO CInt++foreign import ccall "HROOTHistTH3.h TH3_GetLineWidth" c_th3_getlinewidth +  :: (Ptr RawTH3) -> IO CInt++foreign import ccall "HROOTHistTH3.h TH3_ResetAttLine" c_th3_resetattline +  :: (Ptr RawTH3) -> CString -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SetLineAttributes" c_th3_setlineattributes +  :: (Ptr RawTH3) -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SetLineColor" c_th3_setlinecolor +  :: (Ptr RawTH3) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SetLineStyle" c_th3_setlinestyle +  :: (Ptr RawTH3) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SetLineWidth" c_th3_setlinewidth +  :: (Ptr RawTH3) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SetFillColor" c_th3_setfillcolor +  :: (Ptr RawTH3) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SetFillStyle" c_th3_setfillstyle +  :: (Ptr RawTH3) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_GetMarkerColor" c_th3_getmarkercolor +  :: (Ptr RawTH3) -> IO CInt++foreign import ccall "HROOTHistTH3.h TH3_GetMarkerStyle" c_th3_getmarkerstyle +  :: (Ptr RawTH3) -> IO CInt++foreign import ccall "HROOTHistTH3.h TH3_GetMarkerSize" c_th3_getmarkersize +  :: (Ptr RawTH3) -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_ResetAttMarker" c_th3_resetattmarker +  :: (Ptr RawTH3) -> CString -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SetMarkerAttributes" c_th3_setmarkerattributes +  :: (Ptr RawTH3) -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SetMarkerColor" c_th3_setmarkercolor +  :: (Ptr RawTH3) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SetMarkerStyle" c_th3_setmarkerstyle +  :: (Ptr RawTH3) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_SetMarkerSize" c_th3_setmarkersize +  :: (Ptr RawTH3) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_delete" c_th3_delete +  :: (Ptr RawTH3) -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_fill3" c_th3_fill3 +  :: (Ptr RawTH3) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3.h TH3_fill3w" c_th3_fill3w +  :: (Ptr RawTH3) -> CDouble -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3.h TH3_FitSlicesZ" c_th3_fitslicesz +  :: (Ptr RawTH3) -> (Ptr RawTF1) -> CInt -> CInt -> CInt -> CInt -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3.h TH3_getCorrelationFactor3" c_th3_getcorrelationfactor3 +  :: (Ptr RawTH3) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_getCovariance3" c_th3_getcovariance3 +  :: (Ptr RawTH3) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3.h TH3_tH3ProjectionX" c_th3_th3projectionx +  :: (Ptr RawTH3) -> CString -> CInt -> CInt -> CInt -> CInt -> CString -> IO (Ptr RawTH1D)++foreign import ccall "HROOTHistTH3.h TH3_tH3ProjectionY" c_th3_th3projectiony +  :: (Ptr RawTH3) -> CString -> CInt -> CInt -> CInt -> CInt -> CString -> IO (Ptr RawTH1D)++foreign import ccall "HROOTHistTH3.h TH3_tH3ProjectionZ" c_th3_th3projectionz +  :: (Ptr RawTH3) -> CString -> CInt -> CInt -> CInt -> CInt -> CString -> IO (Ptr RawTH1D)++foreign import ccall "HROOTHistTH3.h TH3_tH3Project3D" c_th3_th3project3d +  :: (Ptr RawTH3) -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH3.h TH3_rebinX3" c_th3_rebinx3 +  :: (Ptr RawTH3) -> CInt -> CString -> IO (Ptr RawTH3)++foreign import ccall "HROOTHistTH3.h TH3_rebinY3" c_th3_rebiny3 +  :: (Ptr RawTH3) -> CInt -> CString -> IO (Ptr RawTH3)++foreign import ccall "HROOTHistTH3.h TH3_rebinZ3" c_th3_rebinz3 +  :: (Ptr RawTH3) -> CInt -> CString -> IO (Ptr RawTH3)++foreign import ccall "HROOTHistTH3.h TH3_Rebin3D" c_th3_rebin3d +  :: (Ptr RawTH3) -> CInt -> CInt -> CInt -> CString -> IO (Ptr RawTH3)+
+ src/HROOT/Hist/TH3/Implementation.hs view
@@ -0,0 +1,432 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, +             OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH3.Implementation where+++import FFICXX.Runtime.Cast++import HROOT.Hist.TH3.RawType+import HROOT.Hist.TH3.FFI+import HROOT.Hist.TH3.Interface+import HROOT.Hist.TH3.Cast+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TDirectory.Cast+import HROOT.Core.TDirectory.Interface+import HROOT.Hist.TF1.RawType+import HROOT.Hist.TF1.Cast+import HROOT.Hist.TF1.Interface+import HROOT.Core.TArrayD.RawType+import HROOT.Core.TArrayD.Cast+import HROOT.Core.TArrayD.Interface+import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.Cast+import HROOT.Hist.TAxis.Interface+import HROOT.Core.TClass.RawType+import HROOT.Core.TClass.Cast+import HROOT.Core.TClass.Interface+import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH1D.Cast+import HROOT.Hist.TH1D.Interface+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH1.Cast+import HROOT.Hist.TH1.Interface+import HROOT.Core.TAtt3D.RawType+import HROOT.Core.TAtt3D.Cast+import HROOT.Core.TAtt3D.Interface+import HROOT.Core.TObject.RawType+import HROOT.Core.TObject.Cast+import HROOT.Core.TObject.Interface+import HROOT.Core.TAttLine.RawType+import HROOT.Core.TAttLine.Cast+import HROOT.Core.TAttLine.Interface+import HROOT.Core.TAttFill.RawType+import HROOT.Core.TAttFill.Cast+import HROOT.Core.TAttFill.Interface+import HROOT.Core.TAttMarker.RawType+import HROOT.Core.TAttMarker.Cast+import HROOT.Core.TAttMarker.Interface+import HROOT.Core.Deletable.RawType+import HROOT.Core.Deletable.Cast+import HROOT.Core.Deletable.Interface++import Data.Word+import Foreign.C+import Foreign.Ptr +import Foreign.ForeignPtr++import System.IO.Unsafe+++instance ITH3 TH3 where+  fill3 = xform3 c_th3_fill3+  fill3w = xform4 c_th3_fill3w+  fitSlicesZ = xform7 c_th3_fitslicesz+  getCorrelationFactor3 = xform2 c_th3_getcorrelationfactor3+  getCovariance3 = xform2 c_th3_getcovariance3+  rebinX3 = xform2 c_th3_rebinx3+  rebinY3 = xform2 c_th3_rebiny3+  rebinZ3 = xform2 c_th3_rebinz3+  rebin3D = xform4 c_th3_rebin3d+instance ITH1 TH3 where+  add = xform2 c_th3_add+  addBinContent = xform2 c_th3_addbincontent+  chi2Test = xform3 c_th3_chi2test+  computeIntegral = xform0 c_th3_computeintegral+  directoryAutoAdd = xform1 c_th3_directoryautoadd+  divide = xform5 c_th3_divide+  drawCopyTH1 = xform1 c_th3_drawcopyth1+  drawNormalized = xform2 c_th3_drawnormalized+  drawPanelTH1 = xform0 c_th3_drawpanelth1+  bufferEmpty = xform1 c_th3_bufferempty+  evalF = xform2 c_th3_evalf+  fFT = xform2 c_th3_fft+  fill1 = xform1 c_th3_fill1+  fill1w = xform2 c_th3_fill1w+  fillN1 = xform4 c_th3_filln1+  fillRandom = xform2 c_th3_fillrandom+  findBin = xform3 c_th3_findbin+  findFixBin = xform3 c_th3_findfixbin+  findFirstBinAbove = xform2 c_th3_findfirstbinabove+  findLastBinAbove = xform2 c_th3_findlastbinabove+  fitPanelTH1 = xform0 c_th3_fitpanelth1+  getNdivisionA = xform1 c_th3_getndivisiona+  getAxisColorA = xform1 c_th3_getaxiscolora+  getLabelColorA = xform1 c_th3_getlabelcolora+  getLabelFontA = xform1 c_th3_getlabelfonta+  getLabelOffsetA = xform1 c_th3_getlabeloffseta+  getLabelSizeA = xform1 c_th3_getlabelsizea+  getTitleFontA = xform1 c_th3_gettitlefonta+  getTitleOffsetA = xform1 c_th3_gettitleoffseta+  getTitleSizeA = xform1 c_th3_gettitlesizea+  getTickLengthA = xform1 c_th3_getticklengtha+  getBarOffset = xform0 c_th3_getbaroffset+  getBarWidth = xform0 c_th3_getbarwidth+  getContour = xform1 c_th3_getcontour+  getContourLevel = xform1 c_th3_getcontourlevel+  getContourLevelPad = xform1 c_th3_getcontourlevelpad+  getBin = xform3 c_th3_getbin+  getBinCenter = xform1 c_th3_getbincenter+  getBinContent1 = xform1 c_th3_getbincontent1+  getBinContent2 = xform2 c_th3_getbincontent2+  getBinContent3 = xform3 c_th3_getbincontent3+  getBinError1 = xform1 c_th3_getbinerror1+  getBinError2 = xform2 c_th3_getbinerror2+  getBinError3 = xform3 c_th3_getbinerror3+  getBinLowEdge = xform1 c_th3_getbinlowedge+  getBinWidth = xform1 c_th3_getbinwidth+  getCellContent = xform2 c_th3_getcellcontent+  getCellError = xform2 c_th3_getcellerror+  getEntries = xform0 c_th3_getentries+  getEffectiveEntries = xform0 c_th3_geteffectiveentries+  getFunction = xform1 c_th3_getfunction+  getDimension = xform0 c_th3_getdimension+  getKurtosis = xform1 c_th3_getkurtosis+  getLowEdge = xform1 c_th3_getlowedge+  getMaximumTH1 = xform1 c_th3_getmaximumth1+  getMaximumBin = xform0 c_th3_getmaximumbin+  getMaximumStored = xform0 c_th3_getmaximumstored+  getMinimumTH1 = xform1 c_th3_getminimumth1+  getMinimumBin = xform0 c_th3_getminimumbin+  getMinimumStored = xform0 c_th3_getminimumstored+  getMean = xform1 c_th3_getmean+  getMeanError = xform1 c_th3_getmeanerror+  getNbinsX = xform0 c_th3_getnbinsx+  getNbinsY = xform0 c_th3_getnbinsy+  getNbinsZ = xform0 c_th3_getnbinsz+  getQuantilesTH1 = xform3 c_th3_getquantilesth1+  getRandom = xform0 c_th3_getrandom+  getStats = xform1 c_th3_getstats+  getSumOfWeights = xform0 c_th3_getsumofweights+  getSumw2 = xform0 c_th3_getsumw2+  getSumw2N = xform0 c_th3_getsumw2n+  getRMS = xform1 c_th3_getrms+  getRMSError = xform1 c_th3_getrmserror+  getSkewness = xform1 c_th3_getskewness+  integral1 = xform3 c_th3_integral1+  interpolate1 = xform1 c_th3_interpolate1+  interpolate2 = xform2 c_th3_interpolate2+  interpolate3 = xform3 c_th3_interpolate3+  kolmogorovTest = xform2 c_th3_kolmogorovtest+  labelsDeflate = xform1 c_th3_labelsdeflate+  labelsInflate = xform1 c_th3_labelsinflate+  labelsOption = xform2 c_th3_labelsoption+  multiflyF = xform2 c_th3_multiflyf+  multiply = xform5 c_th3_multiply+  putStats = xform1 c_th3_putstats+  rebin = xform3 c_th3_rebin+  rebinAxis = xform2 c_th3_rebinaxis+  rebuild = xform1 c_th3_rebuild+  recursiveRemove = xform1 c_th3_recursiveremove+  reset = xform1 c_th3_reset+  resetStats = xform0 c_th3_resetstats+  scale = xform2 c_th3_scale+  setAxisColorA = xform2 c_th3_setaxiscolora+  setAxisRange = xform3 c_th3_setaxisrange+  setBarOffset = xform1 c_th3_setbaroffset+  setBarWidth = xform1 c_th3_setbarwidth+  setBinContent1 = xform2 c_th3_setbincontent1+  setBinContent2 = xform3 c_th3_setbincontent2+  setBinContent3 = xform4 c_th3_setbincontent3+  setBinError1 = xform2 c_th3_setbinerror1+  setBinError2 = xform3 c_th3_setbinerror2+  setBinError3 = xform4 c_th3_setbinerror3+  setBins1 = xform2 c_th3_setbins1+  setBins2 = xform4 c_th3_setbins2+  setBins3 = xform6 c_th3_setbins3+  setBinsLength = xform1 c_th3_setbinslength+  setBuffer = xform2 c_th3_setbuffer+  setCellContent = xform3 c_th3_setcellcontent+  setContent = xform1 c_th3_setcontent+  setContour = xform2 c_th3_setcontour+  setContourLevel = xform2 c_th3_setcontourlevel+  setDirectory = xform1 c_th3_setdirectory+  setEntries = xform1 c_th3_setentries+  setError = xform1 c_th3_seterror+  setLabelColorA = xform2 c_th3_setlabelcolora+  setLabelSizeA = xform2 c_th3_setlabelsizea+  setLabelFontA = xform2 c_th3_setlabelfonta+  setLabelOffsetA = xform2 c_th3_setlabeloffseta+  setMaximum = xform1 c_th3_setmaximum+  setMinimum = xform1 c_th3_setminimum+  setNormFactor = xform1 c_th3_setnormfactor+  setStats = xform1 c_th3_setstats+  setOption = xform1 c_th3_setoption+  setXTitle = xform1 c_th3_setxtitle+  setYTitle = xform1 c_th3_setytitle+  setZTitle = xform1 c_th3_setztitle+  showBackground = xform2 c_th3_showbackground+  showPeaks = xform3 c_th3_showpeaks+  smooth = xform2 c_th3_smooth+  sumw2 = xform0 c_th3_sumw2+instance ITAtt3D TH3 where+instance ITObject TH3 where+  draw = xform1 c_th3_draw+  findObject = xform1 c_th3_findobject+  getName = xform0 c_th3_getname+  isA = xform0 c_th3_isa+  paint = xform1 c_th3_paint+  printObj = xform1 c_th3_printobj+  saveAs = xform2 c_th3_saveas+  write = xform3 c_th3_write+instance ITAttLine TH3 where+  getLineColor = xform0 c_th3_getlinecolor+  getLineStyle = xform0 c_th3_getlinestyle+  getLineWidth = xform0 c_th3_getlinewidth+  resetAttLine = xform1 c_th3_resetattline+  setLineAttributes = xform0 c_th3_setlineattributes+  setLineColor = xform1 c_th3_setlinecolor+  setLineStyle = xform1 c_th3_setlinestyle+  setLineWidth = xform1 c_th3_setlinewidth+instance ITAttFill TH3 where+  setFillColor = xform1 c_th3_setfillcolor+  setFillStyle = xform1 c_th3_setfillstyle+instance ITAttMarker TH3 where+  getMarkerColor = xform0 c_th3_getmarkercolor+  getMarkerStyle = xform0 c_th3_getmarkerstyle+  getMarkerSize = xform0 c_th3_getmarkersize+  resetAttMarker = xform1 c_th3_resetattmarker+  setMarkerAttributes = xform0 c_th3_setmarkerattributes+  setMarkerColor = xform1 c_th3_setmarkercolor+  setMarkerStyle = xform1 c_th3_setmarkerstyle+  setMarkerSize = xform1 c_th3_setmarkersize+instance IDeletable TH3 where+  delete = xform0 c_th3_delete++instance ITH3 (Exist TH3) where+  fill3 (ETH3 x) = fill3 x+  fill3w (ETH3 x) = fill3w x+  fitSlicesZ (ETH3 x) = fitSlicesZ x+  getCorrelationFactor3 (ETH3 x) = getCorrelationFactor3 x+  getCovariance3 (ETH3 x) = getCovariance3 x+  rebinX3 (ETH3 x) = rebinX3 x+  rebinY3 (ETH3 x) = rebinY3 x+  rebinZ3 (ETH3 x) = rebinZ3 x+  rebin3D (ETH3 x) = rebin3D x+instance ITH1 (Exist TH3) where+  add (ETH3 x) = add x+  addBinContent (ETH3 x) = addBinContent x+  chi2Test (ETH3 x) = chi2Test x+  computeIntegral (ETH3 x) = computeIntegral x+  directoryAutoAdd (ETH3 x) = directoryAutoAdd x+  divide (ETH3 x) = divide x+  drawCopyTH1 (ETH3 x) a1 = return . ETH3 =<< drawCopyTH1 x a1+  drawNormalized (ETH3 x) = drawNormalized x+  drawPanelTH1 (ETH3 x) = drawPanelTH1 x+  bufferEmpty (ETH3 x) = bufferEmpty x+  evalF (ETH3 x) = evalF x+  fFT (ETH3 x) = fFT x+  fill1 (ETH3 x) = fill1 x+  fill1w (ETH3 x) = fill1w x+  fillN1 (ETH3 x) = fillN1 x+  fillRandom (ETH3 x) = fillRandom x+  findBin (ETH3 x) = findBin x+  findFixBin (ETH3 x) = findFixBin x+  findFirstBinAbove (ETH3 x) = findFirstBinAbove x+  findLastBinAbove (ETH3 x) = findLastBinAbove x+  fitPanelTH1 (ETH3 x) = fitPanelTH1 x+  getNdivisionA (ETH3 x) = getNdivisionA x+  getAxisColorA (ETH3 x) = getAxisColorA x+  getLabelColorA (ETH3 x) = getLabelColorA x+  getLabelFontA (ETH3 x) = getLabelFontA x+  getLabelOffsetA (ETH3 x) = getLabelOffsetA x+  getLabelSizeA (ETH3 x) = getLabelSizeA x+  getTitleFontA (ETH3 x) = getTitleFontA x+  getTitleOffsetA (ETH3 x) = getTitleOffsetA x+  getTitleSizeA (ETH3 x) = getTitleSizeA x+  getTickLengthA (ETH3 x) = getTickLengthA x+  getBarOffset (ETH3 x) = getBarOffset x+  getBarWidth (ETH3 x) = getBarWidth x+  getContour (ETH3 x) = getContour x+  getContourLevel (ETH3 x) = getContourLevel x+  getContourLevelPad (ETH3 x) = getContourLevelPad x+  getBin (ETH3 x) = getBin x+  getBinCenter (ETH3 x) = getBinCenter x+  getBinContent1 (ETH3 x) = getBinContent1 x+  getBinContent2 (ETH3 x) = getBinContent2 x+  getBinContent3 (ETH3 x) = getBinContent3 x+  getBinError1 (ETH3 x) = getBinError1 x+  getBinError2 (ETH3 x) = getBinError2 x+  getBinError3 (ETH3 x) = getBinError3 x+  getBinLowEdge (ETH3 x) = getBinLowEdge x+  getBinWidth (ETH3 x) = getBinWidth x+  getCellContent (ETH3 x) = getCellContent x+  getCellError (ETH3 x) = getCellError x+  getEntries (ETH3 x) = getEntries x+  getEffectiveEntries (ETH3 x) = getEffectiveEntries x+  getFunction (ETH3 x) = getFunction x+  getDimension (ETH3 x) = getDimension x+  getKurtosis (ETH3 x) = getKurtosis x+  getLowEdge (ETH3 x) = getLowEdge x+  getMaximumTH1 (ETH3 x) = getMaximumTH1 x+  getMaximumBin (ETH3 x) = getMaximumBin x+  getMaximumStored (ETH3 x) = getMaximumStored x+  getMinimumTH1 (ETH3 x) = getMinimumTH1 x+  getMinimumBin (ETH3 x) = getMinimumBin x+  getMinimumStored (ETH3 x) = getMinimumStored x+  getMean (ETH3 x) = getMean x+  getMeanError (ETH3 x) = getMeanError x+  getNbinsX (ETH3 x) = getNbinsX x+  getNbinsY (ETH3 x) = getNbinsY x+  getNbinsZ (ETH3 x) = getNbinsZ x+  getQuantilesTH1 (ETH3 x) = getQuantilesTH1 x+  getRandom (ETH3 x) = getRandom x+  getStats (ETH3 x) = getStats x+  getSumOfWeights (ETH3 x) = getSumOfWeights x+  getSumw2 (ETH3 x) = getSumw2 x+  getSumw2N (ETH3 x) = getSumw2N x+  getRMS (ETH3 x) = getRMS x+  getRMSError (ETH3 x) = getRMSError x+  getSkewness (ETH3 x) = getSkewness x+  integral1 (ETH3 x) = integral1 x+  interpolate1 (ETH3 x) = interpolate1 x+  interpolate2 (ETH3 x) = interpolate2 x+  interpolate3 (ETH3 x) = interpolate3 x+  kolmogorovTest (ETH3 x) = kolmogorovTest x+  labelsDeflate (ETH3 x) = labelsDeflate x+  labelsInflate (ETH3 x) = labelsInflate x+  labelsOption (ETH3 x) = labelsOption x+  multiflyF (ETH3 x) = multiflyF x+  multiply (ETH3 x) = multiply x+  putStats (ETH3 x) = putStats x+  rebin (ETH3 x) = rebin x+  rebinAxis (ETH3 x) = rebinAxis x+  rebuild (ETH3 x) = rebuild x+  recursiveRemove (ETH3 x) = recursiveRemove x+  reset (ETH3 x) = reset x+  resetStats (ETH3 x) = resetStats x+  scale (ETH3 x) = scale x+  setAxisColorA (ETH3 x) = setAxisColorA x+  setAxisRange (ETH3 x) = setAxisRange x+  setBarOffset (ETH3 x) = setBarOffset x+  setBarWidth (ETH3 x) = setBarWidth x+  setBinContent1 (ETH3 x) = setBinContent1 x+  setBinContent2 (ETH3 x) = setBinContent2 x+  setBinContent3 (ETH3 x) = setBinContent3 x+  setBinError1 (ETH3 x) = setBinError1 x+  setBinError2 (ETH3 x) = setBinError2 x+  setBinError3 (ETH3 x) = setBinError3 x+  setBins1 (ETH3 x) = setBins1 x+  setBins2 (ETH3 x) = setBins2 x+  setBins3 (ETH3 x) = setBins3 x+  setBinsLength (ETH3 x) = setBinsLength x+  setBuffer (ETH3 x) = setBuffer x+  setCellContent (ETH3 x) = setCellContent x+  setContent (ETH3 x) = setContent x+  setContour (ETH3 x) = setContour x+  setContourLevel (ETH3 x) = setContourLevel x+  setDirectory (ETH3 x) = setDirectory x+  setEntries (ETH3 x) = setEntries x+  setError (ETH3 x) = setError x+  setLabelColorA (ETH3 x) = setLabelColorA x+  setLabelSizeA (ETH3 x) = setLabelSizeA x+  setLabelFontA (ETH3 x) = setLabelFontA x+  setLabelOffsetA (ETH3 x) = setLabelOffsetA x+  setMaximum (ETH3 x) = setMaximum x+  setMinimum (ETH3 x) = setMinimum x+  setNormFactor (ETH3 x) = setNormFactor x+  setStats (ETH3 x) = setStats x+  setOption (ETH3 x) = setOption x+  setXTitle (ETH3 x) = setXTitle x+  setYTitle (ETH3 x) = setYTitle x+  setZTitle (ETH3 x) = setZTitle x+  showBackground (ETH3 x) = showBackground x+  showPeaks (ETH3 x) = showPeaks x+  smooth (ETH3 x) = smooth x+  sumw2 (ETH3 x) = sumw2 x+instance ITAtt3D (Exist TH3) where++instance ITObject (Exist TH3) where+  draw (ETH3 x) = draw x+  findObject (ETH3 x) = findObject x+  getName (ETH3 x) = getName x+  isA (ETH3 x) = isA x+  paint (ETH3 x) = paint x+  printObj (ETH3 x) = printObj x+  saveAs (ETH3 x) = saveAs x+  write (ETH3 x) = write x+instance ITAttLine (Exist TH3) where+  getLineColor (ETH3 x) = getLineColor x+  getLineStyle (ETH3 x) = getLineStyle x+  getLineWidth (ETH3 x) = getLineWidth x+  resetAttLine (ETH3 x) = resetAttLine x+  setLineAttributes (ETH3 x) = setLineAttributes x+  setLineColor (ETH3 x) = setLineColor x+  setLineStyle (ETH3 x) = setLineStyle x+  setLineWidth (ETH3 x) = setLineWidth x+instance ITAttFill (Exist TH3) where+  setFillColor (ETH3 x) = setFillColor x+  setFillStyle (ETH3 x) = setFillStyle x+instance ITAttMarker (Exist TH3) where+  getMarkerColor (ETH3 x) = getMarkerColor x+  getMarkerStyle (ETH3 x) = getMarkerStyle x+  getMarkerSize (ETH3 x) = getMarkerSize x+  resetAttMarker (ETH3 x) = resetAttMarker x+  setMarkerAttributes (ETH3 x) = setMarkerAttributes x+  setMarkerColor (ETH3 x) = setMarkerColor x+  setMarkerStyle (ETH3 x) = setMarkerStyle x+  setMarkerSize (ETH3 x) = setMarkerSize x+instance IDeletable (Exist TH3) where+  delete (ETH3 x) = delete x++++tH3ProjectionX :: TH3 -> CString -> CInt -> CInt -> CInt -> CInt -> CString -> IO TH1D+tH3ProjectionX = xform6 c_th3_th3projectionx++tH3ProjectionY :: TH3 -> CString -> CInt -> CInt -> CInt -> CInt -> CString -> IO TH1D+tH3ProjectionY = xform6 c_th3_th3projectiony++tH3ProjectionZ :: TH3 -> CString -> CInt -> CInt -> CInt -> CInt -> CString -> IO TH1D+tH3ProjectionZ = xform6 c_th3_th3projectionz++tH3Project3D :: TH3 -> CString -> IO TH1+tH3Project3D = xform1 c_th3_th3project3d++++instance FPtr (Exist TH3) where+  type Raw (Exist TH3) = RawTH3+  get_fptr (ETH3 obj) = castForeignPtr (get_fptr obj)+  cast_fptr_to_obj fptr = ETH3 (cast_fptr_to_obj (fptr :: ForeignPtr RawTH3) :: TH3)
+ src/HROOT/Hist/TH3/Interface.hs view
@@ -0,0 +1,56 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++-- module HROOT.Class.Interface where++module HROOT.Hist.TH3.Interface where+++import Data.Word+import Foreign.C+import Foreign.Ptr+import Foreign.ForeignPtr+import FFICXX.Runtime.Cast++import HROOT.Hist.TH3.RawType+import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH1.Interface+import HROOT.Core.TAtt3D.Interface+---- ============ ----+import {-# SOURCE #-} HROOT.Hist.TF1.Interface+++class (ITH1 a,ITAtt3D a) => ITH3 a where++    fill3 :: a -> CDouble -> CDouble -> CDouble -> IO CInt ++    fill3w :: a -> CDouble -> CDouble -> CDouble -> CDouble -> IO CInt ++    fitSlicesZ :: (ITF1 c0, FPtr c0) => a -> c0 -> CInt -> CInt -> CInt -> CInt -> CInt -> CString -> IO () ++    getCorrelationFactor3 :: a -> CInt -> CInt -> IO CDouble ++    getCovariance3 :: a -> CInt -> CInt -> IO CDouble ++    rebinX3 :: a -> CInt -> CString -> IO TH3 ++    rebinY3 :: a -> CInt -> CString -> IO TH3 ++    rebinZ3 :: a -> CInt -> CString -> IO TH3 ++    rebin3D :: a -> CInt -> CInt -> CInt -> CString -> IO TH3 ++instance Existable TH3 where+  data Exist TH3 = forall a. (FPtr a, ITH3 a) => ETH3 a++upcastTH3 :: (FPtr a, ITH3 a) => a -> TH3+upcastTH3 h = let fh = get_fptr h+                  fh2 :: ForeignPtr RawTH3 = castForeignPtr fh+              in cast_fptr_to_obj fh2++downcastTH3 :: (FPtr a, ITH3 a) => TH3 -> a +downcastTH3 h = let fh = get_fptr h+                    fh2 = castForeignPtr fh+                in cast_fptr_to_obj fh2
+ src/HROOT/Hist/TH3/RawType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++module HROOT.Hist.TH3.RawType where+++import Foreign.ForeignPtr+import FFICXX.Runtime.Cast  ++data RawTH3+newtype TH3 = TH3 (ForeignPtr RawTH3) deriving (Eq, Ord, Show)+instance FPtr TH3 where+   type Raw TH3 = RawTH3+   get_fptr (TH3 fptr) = fptr+   cast_fptr_to_obj = TH3
+ src/HROOT/Hist/TH3C.hs view
@@ -0,0 +1,15 @@+module HROOT.Hist.TH3C+  (+    TH3C(..)+  , ITH3C+  , upcastTH3C+  , downcastTH3C++ +  ) where++import HROOT.Hist.TH3C.RawType+import HROOT.Hist.TH3C.Interface+import HROOT.Hist.TH3C.Implementation++
+ src/HROOT/Hist/TH3C/Cast.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeFamilies, +             MultiParamTypeClasses, OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH3C.Cast where+++import Foreign.Ptr+import Foreign.ForeignPtr (castForeignPtr, newForeignPtr_)+import Foreign.ForeignPtr.Unsafe+import FFICXX.Runtime.Cast+import System.IO.Unsafe++import HROOT.Hist.TH3C.RawType+import HROOT.Hist.TH3C.Interface++instance (ITH3C a, FPtr a) => Castable a (Ptr RawTH3C) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ ++instance Castable TH3C (Ptr RawTH3C) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+ src/HROOT/Hist/TH3C/FFI.hsc view
@@ -0,0 +1,525 @@+{-# LANGUAGE ForeignFunctionInterface #-}++-- module HROOT.Class.FFI where++module HROOT.Hist.TH3C.FFI where+++import Foreign.C            +import Foreign.Ptr++-- import HROOT.Class.Interface++-- #include ""++import HROOT.Hist.TH3C.RawType+import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH3.RawType+import HROOT.Hist.TF1.RawType+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TArrayD.RawType+import HROOT.Hist.TAxis.RawType+import HROOT.Core.TObject.RawType+import HROOT.Core.TClass.RawType++#include "HROOTHistTH3C.h"++foreign import ccall "HROOTHistTH3C.h TH3C_fill3" c_th3c_fill3 +  :: (Ptr RawTH3C) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3C.h TH3C_fill3w" c_th3c_fill3w +  :: (Ptr RawTH3C) -> CDouble -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3C.h TH3C_FitSlicesZ" c_th3c_fitslicesz +  :: (Ptr RawTH3C) -> (Ptr RawTF1) -> CInt -> CInt -> CInt -> CInt -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_getCorrelationFactor3" c_th3c_getcorrelationfactor3 +  :: (Ptr RawTH3C) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_getCovariance3" c_th3c_getcovariance3 +  :: (Ptr RawTH3C) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_rebinX3" c_th3c_rebinx3 +  :: (Ptr RawTH3C) -> CInt -> CString -> IO (Ptr RawTH3)++foreign import ccall "HROOTHistTH3C.h TH3C_rebinY3" c_th3c_rebiny3 +  :: (Ptr RawTH3C) -> CInt -> CString -> IO (Ptr RawTH3)++foreign import ccall "HROOTHistTH3C.h TH3C_rebinZ3" c_th3c_rebinz3 +  :: (Ptr RawTH3C) -> CInt -> CString -> IO (Ptr RawTH3)++foreign import ccall "HROOTHistTH3C.h TH3C_Rebin3D" c_th3c_rebin3d +  :: (Ptr RawTH3C) -> CInt -> CInt -> CInt -> CString -> IO (Ptr RawTH3)++foreign import ccall "HROOTHistTH3C.h TH3C_Add" c_th3c_add +  :: (Ptr RawTH3C) -> (Ptr RawTH1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_AddBinContent" c_th3c_addbincontent +  :: (Ptr RawTH3C) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_Chi2Test" c_th3c_chi2test +  :: (Ptr RawTH3C) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_ComputeIntegral" c_th3c_computeintegral +  :: (Ptr RawTH3C) -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_DirectoryAutoAdd" c_th3c_directoryautoadd +  :: (Ptr RawTH3C) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_Divide" c_th3c_divide +  :: (Ptr RawTH3C) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_drawCopyTH1" c_th3c_drawcopyth1 +  :: (Ptr RawTH3C) -> CString -> IO (Ptr RawTH3C)++foreign import ccall "HROOTHistTH3C.h TH3C_DrawNormalized" c_th3c_drawnormalized +  :: (Ptr RawTH3C) -> CString -> CDouble -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH3C.h TH3C_drawPanelTH1" c_th3c_drawpanelth1 +  :: (Ptr RawTH3C) -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_BufferEmpty" c_th3c_bufferempty +  :: (Ptr RawTH3C) -> CInt -> IO CInt++foreign import ccall "HROOTHistTH3C.h TH3C_evalF" c_th3c_evalf +  :: (Ptr RawTH3C) -> (Ptr RawTF1) -> CString -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_FFT" c_th3c_fft +  :: (Ptr RawTH3C) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH3C.h TH3C_fill1" c_th3c_fill1 +  :: (Ptr RawTH3C) -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3C.h TH3C_fill1w" c_th3c_fill1w +  :: (Ptr RawTH3C) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3C.h TH3C_fillN1" c_th3c_filln1 +  :: (Ptr RawTH3C) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_FillRandom" c_th3c_fillrandom +  :: (Ptr RawTH3C) -> (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_FindBin" c_th3c_findbin +  :: (Ptr RawTH3C) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3C.h TH3C_FindFixBin" c_th3c_findfixbin +  :: (Ptr RawTH3C) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3C.h TH3C_FindFirstBinAbove" c_th3c_findfirstbinabove +  :: (Ptr RawTH3C) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH3C.h TH3C_FindLastBinAbove" c_th3c_findlastbinabove +  :: (Ptr RawTH3C) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH3C.h TH3C_FitPanelTH1" c_th3c_fitpanelth1 +  :: (Ptr RawTH3C) -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_getNdivisionA" c_th3c_getndivisiona +  :: (Ptr RawTH3C) -> CString -> IO CInt++foreign import ccall "HROOTHistTH3C.h TH3C_getAxisColorA" c_th3c_getaxiscolora +  :: (Ptr RawTH3C) -> CString -> IO CInt++foreign import ccall "HROOTHistTH3C.h TH3C_getLabelColorA" c_th3c_getlabelcolora +  :: (Ptr RawTH3C) -> CString -> IO CInt++foreign import ccall "HROOTHistTH3C.h TH3C_getLabelFontA" c_th3c_getlabelfonta +  :: (Ptr RawTH3C) -> CString -> IO CInt++foreign import ccall "HROOTHistTH3C.h TH3C_getLabelOffsetA" c_th3c_getlabeloffseta +  :: (Ptr RawTH3C) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_getLabelSizeA" c_th3c_getlabelsizea +  :: (Ptr RawTH3C) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_getTitleFontA" c_th3c_gettitlefonta +  :: (Ptr RawTH3C) -> CString -> IO CInt++foreign import ccall "HROOTHistTH3C.h TH3C_getTitleOffsetA" c_th3c_gettitleoffseta +  :: (Ptr RawTH3C) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_getTitleSizeA" c_th3c_gettitlesizea +  :: (Ptr RawTH3C) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_getTickLengthA" c_th3c_getticklengtha +  :: (Ptr RawTH3C) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_GetBarOffset" c_th3c_getbaroffset +  :: (Ptr RawTH3C) -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_GetBarWidth" c_th3c_getbarwidth +  :: (Ptr RawTH3C) -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_GetContour" c_th3c_getcontour +  :: (Ptr RawTH3C) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH3C.h TH3C_GetContourLevel" c_th3c_getcontourlevel +  :: (Ptr RawTH3C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_GetContourLevelPad" c_th3c_getcontourlevelpad +  :: (Ptr RawTH3C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_GetBin" c_th3c_getbin +  :: (Ptr RawTH3C) -> CInt -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH3C.h TH3C_GetBinCenter" c_th3c_getbincenter +  :: (Ptr RawTH3C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_GetBinContent1" c_th3c_getbincontent1 +  :: (Ptr RawTH3C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_GetBinContent2" c_th3c_getbincontent2 +  :: (Ptr RawTH3C) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_GetBinContent3" c_th3c_getbincontent3 +  :: (Ptr RawTH3C) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_GetBinError1" c_th3c_getbinerror1 +  :: (Ptr RawTH3C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_GetBinError2" c_th3c_getbinerror2 +  :: (Ptr RawTH3C) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_GetBinError3" c_th3c_getbinerror3 +  :: (Ptr RawTH3C) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_GetBinLowEdge" c_th3c_getbinlowedge +  :: (Ptr RawTH3C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_GetBinWidth" c_th3c_getbinwidth +  :: (Ptr RawTH3C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_GetCellContent" c_th3c_getcellcontent +  :: (Ptr RawTH3C) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_GetCellError" c_th3c_getcellerror +  :: (Ptr RawTH3C) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_GetEntries" c_th3c_getentries +  :: (Ptr RawTH3C) -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_GetEffectiveEntries" c_th3c_geteffectiveentries +  :: (Ptr RawTH3C) -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_GetFunction" c_th3c_getfunction +  :: (Ptr RawTH3C) -> CString -> IO (Ptr RawTF1)++foreign import ccall "HROOTHistTH3C.h TH3C_GetDimension" c_th3c_getdimension +  :: (Ptr RawTH3C) -> IO CInt++foreign import ccall "HROOTHistTH3C.h TH3C_GetKurtosis" c_th3c_getkurtosis +  :: (Ptr RawTH3C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_GetLowEdge" c_th3c_getlowedge +  :: (Ptr RawTH3C) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_getMaximumTH1" c_th3c_getmaximumth1 +  :: (Ptr RawTH3C) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_GetMaximumBin" c_th3c_getmaximumbin +  :: (Ptr RawTH3C) -> IO CInt++foreign import ccall "HROOTHistTH3C.h TH3C_GetMaximumStored" c_th3c_getmaximumstored +  :: (Ptr RawTH3C) -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_getMinimumTH1" c_th3c_getminimumth1 +  :: (Ptr RawTH3C) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_GetMinimumBin" c_th3c_getminimumbin +  :: (Ptr RawTH3C) -> IO CInt++foreign import ccall "HROOTHistTH3C.h TH3C_GetMinimumStored" c_th3c_getminimumstored +  :: (Ptr RawTH3C) -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_GetMean" c_th3c_getmean +  :: (Ptr RawTH3C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_GetMeanError" c_th3c_getmeanerror +  :: (Ptr RawTH3C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_GetNbinsX" c_th3c_getnbinsx +  :: (Ptr RawTH3C) -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_GetNbinsY" c_th3c_getnbinsy +  :: (Ptr RawTH3C) -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_GetNbinsZ" c_th3c_getnbinsz +  :: (Ptr RawTH3C) -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_getQuantilesTH1" c_th3c_getquantilesth1 +  :: (Ptr RawTH3C) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH3C.h TH3C_GetRandom" c_th3c_getrandom +  :: (Ptr RawTH3C) -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_GetStats" c_th3c_getstats +  :: (Ptr RawTH3C) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_GetSumOfWeights" c_th3c_getsumofweights +  :: (Ptr RawTH3C) -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_GetSumw2" c_th3c_getsumw2 +  :: (Ptr RawTH3C) -> IO (Ptr RawTArrayD)++foreign import ccall "HROOTHistTH3C.h TH3C_GetSumw2N" c_th3c_getsumw2n +  :: (Ptr RawTH3C) -> IO CInt++foreign import ccall "HROOTHistTH3C.h TH3C_GetRMS" c_th3c_getrms +  :: (Ptr RawTH3C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_GetRMSError" c_th3c_getrmserror +  :: (Ptr RawTH3C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_GetSkewness" c_th3c_getskewness +  :: (Ptr RawTH3C) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_integral1" c_th3c_integral1 +  :: (Ptr RawTH3C) -> CInt -> CInt -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_interpolate1" c_th3c_interpolate1 +  :: (Ptr RawTH3C) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_interpolate2" c_th3c_interpolate2 +  :: (Ptr RawTH3C) -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_interpolate3" c_th3c_interpolate3 +  :: (Ptr RawTH3C) -> CDouble -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_KolmogorovTest" c_th3c_kolmogorovtest +  :: (Ptr RawTH3C) -> (Ptr RawTH1) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_LabelsDeflate" c_th3c_labelsdeflate +  :: (Ptr RawTH3C) -> CString -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_LabelsInflate" c_th3c_labelsinflate +  :: (Ptr RawTH3C) -> CString -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_LabelsOption" c_th3c_labelsoption +  :: (Ptr RawTH3C) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_multiflyF" c_th3c_multiflyf +  :: (Ptr RawTH3C) -> (Ptr RawTF1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_Multiply" c_th3c_multiply +  :: (Ptr RawTH3C) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_PutStats" c_th3c_putstats +  :: (Ptr RawTH3C) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_Rebin" c_th3c_rebin +  :: (Ptr RawTH3C) -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH3C.h TH3C_RebinAxis" c_th3c_rebinaxis +  :: (Ptr RawTH3C) -> CDouble -> (Ptr RawTAxis) -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_Rebuild" c_th3c_rebuild +  :: (Ptr RawTH3C) -> CString -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_RecursiveRemove" c_th3c_recursiveremove +  :: (Ptr RawTH3C) -> (Ptr RawTObject) -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_Reset" c_th3c_reset +  :: (Ptr RawTH3C) -> CString -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_ResetStats" c_th3c_resetstats +  :: (Ptr RawTH3C) -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_Scale" c_th3c_scale +  :: (Ptr RawTH3C) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_setAxisColorA" c_th3c_setaxiscolora +  :: (Ptr RawTH3C) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SetAxisRange" c_th3c_setaxisrange +  :: (Ptr RawTH3C) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SetBarOffset" c_th3c_setbaroffset +  :: (Ptr RawTH3C) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SetBarWidth" c_th3c_setbarwidth +  :: (Ptr RawTH3C) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_setBinContent1" c_th3c_setbincontent1 +  :: (Ptr RawTH3C) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_setBinContent2" c_th3c_setbincontent2 +  :: (Ptr RawTH3C) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_setBinContent3" c_th3c_setbincontent3 +  :: (Ptr RawTH3C) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_setBinError1" c_th3c_setbinerror1 +  :: (Ptr RawTH3C) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_setBinError2" c_th3c_setbinerror2 +  :: (Ptr RawTH3C) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_setBinError3" c_th3c_setbinerror3 +  :: (Ptr RawTH3C) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_setBins1" c_th3c_setbins1 +  :: (Ptr RawTH3C) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_setBins2" c_th3c_setbins2 +  :: (Ptr RawTH3C) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_setBins3" c_th3c_setbins3 +  :: (Ptr RawTH3C) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SetBinsLength" c_th3c_setbinslength +  :: (Ptr RawTH3C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SetBuffer" c_th3c_setbuffer +  :: (Ptr RawTH3C) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SetCellContent" c_th3c_setcellcontent +  :: (Ptr RawTH3C) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SetContent" c_th3c_setcontent +  :: (Ptr RawTH3C) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SetContour" c_th3c_setcontour +  :: (Ptr RawTH3C) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SetContourLevel" c_th3c_setcontourlevel +  :: (Ptr RawTH3C) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SetDirectory" c_th3c_setdirectory +  :: (Ptr RawTH3C) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SetEntries" c_th3c_setentries +  :: (Ptr RawTH3C) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SetError" c_th3c_seterror +  :: (Ptr RawTH3C) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_setLabelColorA" c_th3c_setlabelcolora +  :: (Ptr RawTH3C) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_setLabelSizeA" c_th3c_setlabelsizea +  :: (Ptr RawTH3C) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_setLabelFontA" c_th3c_setlabelfonta +  :: (Ptr RawTH3C) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_setLabelOffsetA" c_th3c_setlabeloffseta +  :: (Ptr RawTH3C) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SetMaximum" c_th3c_setmaximum +  :: (Ptr RawTH3C) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SetMinimum" c_th3c_setminimum +  :: (Ptr RawTH3C) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SetNormFactor" c_th3c_setnormfactor +  :: (Ptr RawTH3C) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SetStats" c_th3c_setstats +  :: (Ptr RawTH3C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SetOption" c_th3c_setoption +  :: (Ptr RawTH3C) -> CString -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SetXTitle" c_th3c_setxtitle +  :: (Ptr RawTH3C) -> CString -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SetYTitle" c_th3c_setytitle +  :: (Ptr RawTH3C) -> CString -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SetZTitle" c_th3c_setztitle +  :: (Ptr RawTH3C) -> CString -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_ShowBackground" c_th3c_showbackground +  :: (Ptr RawTH3C) -> CInt -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH3C.h TH3C_ShowPeaks" c_th3c_showpeaks +  :: (Ptr RawTH3C) -> CDouble -> CString -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3C.h TH3C_Smooth" c_th3c_smooth +  :: (Ptr RawTH3C) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_Sumw2" c_th3c_sumw2 +  :: (Ptr RawTH3C) -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_Draw" c_th3c_draw +  :: (Ptr RawTH3C) -> CString -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_FindObject" c_th3c_findobject +  :: (Ptr RawTH3C) -> CString -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTH3C.h TH3C_GetName" c_th3c_getname +  :: (Ptr RawTH3C) -> IO CString++foreign import ccall "HROOTHistTH3C.h TH3C_IsA" c_th3c_isa +  :: (Ptr RawTH3C) -> IO (Ptr RawTClass)++foreign import ccall "HROOTHistTH3C.h TH3C_Paint" c_th3c_paint +  :: (Ptr RawTH3C) -> CString -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_printObj" c_th3c_printobj +  :: (Ptr RawTH3C) -> CString -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SaveAs" c_th3c_saveas +  :: (Ptr RawTH3C) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_Write" c_th3c_write +  :: (Ptr RawTH3C) -> CString -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH3C.h TH3C_GetLineColor" c_th3c_getlinecolor +  :: (Ptr RawTH3C) -> IO CInt++foreign import ccall "HROOTHistTH3C.h TH3C_GetLineStyle" c_th3c_getlinestyle +  :: (Ptr RawTH3C) -> IO CInt++foreign import ccall "HROOTHistTH3C.h TH3C_GetLineWidth" c_th3c_getlinewidth +  :: (Ptr RawTH3C) -> IO CInt++foreign import ccall "HROOTHistTH3C.h TH3C_ResetAttLine" c_th3c_resetattline +  :: (Ptr RawTH3C) -> CString -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SetLineAttributes" c_th3c_setlineattributes +  :: (Ptr RawTH3C) -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SetLineColor" c_th3c_setlinecolor +  :: (Ptr RawTH3C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SetLineStyle" c_th3c_setlinestyle +  :: (Ptr RawTH3C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SetLineWidth" c_th3c_setlinewidth +  :: (Ptr RawTH3C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SetFillColor" c_th3c_setfillcolor +  :: (Ptr RawTH3C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SetFillStyle" c_th3c_setfillstyle +  :: (Ptr RawTH3C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_GetMarkerColor" c_th3c_getmarkercolor +  :: (Ptr RawTH3C) -> IO CInt++foreign import ccall "HROOTHistTH3C.h TH3C_GetMarkerStyle" c_th3c_getmarkerstyle +  :: (Ptr RawTH3C) -> IO CInt++foreign import ccall "HROOTHistTH3C.h TH3C_GetMarkerSize" c_th3c_getmarkersize +  :: (Ptr RawTH3C) -> IO CDouble++foreign import ccall "HROOTHistTH3C.h TH3C_ResetAttMarker" c_th3c_resetattmarker +  :: (Ptr RawTH3C) -> CString -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SetMarkerAttributes" c_th3c_setmarkerattributes +  :: (Ptr RawTH3C) -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SetMarkerColor" c_th3c_setmarkercolor +  :: (Ptr RawTH3C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SetMarkerStyle" c_th3c_setmarkerstyle +  :: (Ptr RawTH3C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_SetMarkerSize" c_th3c_setmarkersize +  :: (Ptr RawTH3C) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3C.h TH3C_delete" c_th3c_delete +  :: (Ptr RawTH3C) -> IO ()+
+ src/HROOT/Hist/TH3C/Implementation.hs view
@@ -0,0 +1,440 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, +             OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH3C.Implementation where+++import FFICXX.Runtime.Cast++import HROOT.Hist.TH3C.RawType+import HROOT.Hist.TH3C.FFI+import HROOT.Hist.TH3C.Interface+import HROOT.Hist.TH3C.Cast+import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH1D.Cast+import HROOT.Hist.TH1D.Interface+import HROOT.Hist.TF1.RawType+import HROOT.Hist.TF1.Cast+import HROOT.Hist.TF1.Interface+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TDirectory.Cast+import HROOT.Core.TDirectory.Interface+import HROOT.Core.TArrayD.RawType+import HROOT.Core.TArrayD.Cast+import HROOT.Core.TArrayD.Interface+import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.Cast+import HROOT.Hist.TAxis.Interface+import HROOT.Core.TClass.RawType+import HROOT.Core.TClass.Cast+import HROOT.Core.TClass.Interface+import HROOT.Hist.TH3.RawType+import HROOT.Hist.TH3.Cast+import HROOT.Hist.TH3.Interface+import HROOT.Core.TArrayC.RawType+import HROOT.Core.TArrayC.Cast+import HROOT.Core.TArrayC.Interface+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH1.Cast+import HROOT.Hist.TH1.Interface+import HROOT.Core.TAtt3D.RawType+import HROOT.Core.TAtt3D.Cast+import HROOT.Core.TAtt3D.Interface+import HROOT.Core.TObject.RawType+import HROOT.Core.TObject.Cast+import HROOT.Core.TObject.Interface+import HROOT.Core.TAttLine.RawType+import HROOT.Core.TAttLine.Cast+import HROOT.Core.TAttLine.Interface+import HROOT.Core.TAttFill.RawType+import HROOT.Core.TAttFill.Cast+import HROOT.Core.TAttFill.Interface+import HROOT.Core.TAttMarker.RawType+import HROOT.Core.TAttMarker.Cast+import HROOT.Core.TAttMarker.Interface+import HROOT.Core.Deletable.RawType+import HROOT.Core.Deletable.Cast+import HROOT.Core.Deletable.Interface+import HROOT.Core.TArray.RawType+import HROOT.Core.TArray.Cast+import HROOT.Core.TArray.Interface++import Data.Word+import Foreign.C+import Foreign.Ptr +import Foreign.ForeignPtr++import System.IO.Unsafe+++instance ITH3C TH3C where+instance ITH3 TH3C where+  fill3 = xform3 c_th3c_fill3+  fill3w = xform4 c_th3c_fill3w+  fitSlicesZ = xform7 c_th3c_fitslicesz+  getCorrelationFactor3 = xform2 c_th3c_getcorrelationfactor3+  getCovariance3 = xform2 c_th3c_getcovariance3+  rebinX3 = xform2 c_th3c_rebinx3+  rebinY3 = xform2 c_th3c_rebiny3+  rebinZ3 = xform2 c_th3c_rebinz3+  rebin3D = xform4 c_th3c_rebin3d+instance ITArrayC TH3C where+instance ITH1 TH3C where+  add = xform2 c_th3c_add+  addBinContent = xform2 c_th3c_addbincontent+  chi2Test = xform3 c_th3c_chi2test+  computeIntegral = xform0 c_th3c_computeintegral+  directoryAutoAdd = xform1 c_th3c_directoryautoadd+  divide = xform5 c_th3c_divide+  drawCopyTH1 = xform1 c_th3c_drawcopyth1+  drawNormalized = xform2 c_th3c_drawnormalized+  drawPanelTH1 = xform0 c_th3c_drawpanelth1+  bufferEmpty = xform1 c_th3c_bufferempty+  evalF = xform2 c_th3c_evalf+  fFT = xform2 c_th3c_fft+  fill1 = xform1 c_th3c_fill1+  fill1w = xform2 c_th3c_fill1w+  fillN1 = xform4 c_th3c_filln1+  fillRandom = xform2 c_th3c_fillrandom+  findBin = xform3 c_th3c_findbin+  findFixBin = xform3 c_th3c_findfixbin+  findFirstBinAbove = xform2 c_th3c_findfirstbinabove+  findLastBinAbove = xform2 c_th3c_findlastbinabove+  fitPanelTH1 = xform0 c_th3c_fitpanelth1+  getNdivisionA = xform1 c_th3c_getndivisiona+  getAxisColorA = xform1 c_th3c_getaxiscolora+  getLabelColorA = xform1 c_th3c_getlabelcolora+  getLabelFontA = xform1 c_th3c_getlabelfonta+  getLabelOffsetA = xform1 c_th3c_getlabeloffseta+  getLabelSizeA = xform1 c_th3c_getlabelsizea+  getTitleFontA = xform1 c_th3c_gettitlefonta+  getTitleOffsetA = xform1 c_th3c_gettitleoffseta+  getTitleSizeA = xform1 c_th3c_gettitlesizea+  getTickLengthA = xform1 c_th3c_getticklengtha+  getBarOffset = xform0 c_th3c_getbaroffset+  getBarWidth = xform0 c_th3c_getbarwidth+  getContour = xform1 c_th3c_getcontour+  getContourLevel = xform1 c_th3c_getcontourlevel+  getContourLevelPad = xform1 c_th3c_getcontourlevelpad+  getBin = xform3 c_th3c_getbin+  getBinCenter = xform1 c_th3c_getbincenter+  getBinContent1 = xform1 c_th3c_getbincontent1+  getBinContent2 = xform2 c_th3c_getbincontent2+  getBinContent3 = xform3 c_th3c_getbincontent3+  getBinError1 = xform1 c_th3c_getbinerror1+  getBinError2 = xform2 c_th3c_getbinerror2+  getBinError3 = xform3 c_th3c_getbinerror3+  getBinLowEdge = xform1 c_th3c_getbinlowedge+  getBinWidth = xform1 c_th3c_getbinwidth+  getCellContent = xform2 c_th3c_getcellcontent+  getCellError = xform2 c_th3c_getcellerror+  getEntries = xform0 c_th3c_getentries+  getEffectiveEntries = xform0 c_th3c_geteffectiveentries+  getFunction = xform1 c_th3c_getfunction+  getDimension = xform0 c_th3c_getdimension+  getKurtosis = xform1 c_th3c_getkurtosis+  getLowEdge = xform1 c_th3c_getlowedge+  getMaximumTH1 = xform1 c_th3c_getmaximumth1+  getMaximumBin = xform0 c_th3c_getmaximumbin+  getMaximumStored = xform0 c_th3c_getmaximumstored+  getMinimumTH1 = xform1 c_th3c_getminimumth1+  getMinimumBin = xform0 c_th3c_getminimumbin+  getMinimumStored = xform0 c_th3c_getminimumstored+  getMean = xform1 c_th3c_getmean+  getMeanError = xform1 c_th3c_getmeanerror+  getNbinsX = xform0 c_th3c_getnbinsx+  getNbinsY = xform0 c_th3c_getnbinsy+  getNbinsZ = xform0 c_th3c_getnbinsz+  getQuantilesTH1 = xform3 c_th3c_getquantilesth1+  getRandom = xform0 c_th3c_getrandom+  getStats = xform1 c_th3c_getstats+  getSumOfWeights = xform0 c_th3c_getsumofweights+  getSumw2 = xform0 c_th3c_getsumw2+  getSumw2N = xform0 c_th3c_getsumw2n+  getRMS = xform1 c_th3c_getrms+  getRMSError = xform1 c_th3c_getrmserror+  getSkewness = xform1 c_th3c_getskewness+  integral1 = xform3 c_th3c_integral1+  interpolate1 = xform1 c_th3c_interpolate1+  interpolate2 = xform2 c_th3c_interpolate2+  interpolate3 = xform3 c_th3c_interpolate3+  kolmogorovTest = xform2 c_th3c_kolmogorovtest+  labelsDeflate = xform1 c_th3c_labelsdeflate+  labelsInflate = xform1 c_th3c_labelsinflate+  labelsOption = xform2 c_th3c_labelsoption+  multiflyF = xform2 c_th3c_multiflyf+  multiply = xform5 c_th3c_multiply+  putStats = xform1 c_th3c_putstats+  rebin = xform3 c_th3c_rebin+  rebinAxis = xform2 c_th3c_rebinaxis+  rebuild = xform1 c_th3c_rebuild+  recursiveRemove = xform1 c_th3c_recursiveremove+  reset = xform1 c_th3c_reset+  resetStats = xform0 c_th3c_resetstats+  scale = xform2 c_th3c_scale+  setAxisColorA = xform2 c_th3c_setaxiscolora+  setAxisRange = xform3 c_th3c_setaxisrange+  setBarOffset = xform1 c_th3c_setbaroffset+  setBarWidth = xform1 c_th3c_setbarwidth+  setBinContent1 = xform2 c_th3c_setbincontent1+  setBinContent2 = xform3 c_th3c_setbincontent2+  setBinContent3 = xform4 c_th3c_setbincontent3+  setBinError1 = xform2 c_th3c_setbinerror1+  setBinError2 = xform3 c_th3c_setbinerror2+  setBinError3 = xform4 c_th3c_setbinerror3+  setBins1 = xform2 c_th3c_setbins1+  setBins2 = xform4 c_th3c_setbins2+  setBins3 = xform6 c_th3c_setbins3+  setBinsLength = xform1 c_th3c_setbinslength+  setBuffer = xform2 c_th3c_setbuffer+  setCellContent = xform3 c_th3c_setcellcontent+  setContent = xform1 c_th3c_setcontent+  setContour = xform2 c_th3c_setcontour+  setContourLevel = xform2 c_th3c_setcontourlevel+  setDirectory = xform1 c_th3c_setdirectory+  setEntries = xform1 c_th3c_setentries+  setError = xform1 c_th3c_seterror+  setLabelColorA = xform2 c_th3c_setlabelcolora+  setLabelSizeA = xform2 c_th3c_setlabelsizea+  setLabelFontA = xform2 c_th3c_setlabelfonta+  setLabelOffsetA = xform2 c_th3c_setlabeloffseta+  setMaximum = xform1 c_th3c_setmaximum+  setMinimum = xform1 c_th3c_setminimum+  setNormFactor = xform1 c_th3c_setnormfactor+  setStats = xform1 c_th3c_setstats+  setOption = xform1 c_th3c_setoption+  setXTitle = xform1 c_th3c_setxtitle+  setYTitle = xform1 c_th3c_setytitle+  setZTitle = xform1 c_th3c_setztitle+  showBackground = xform2 c_th3c_showbackground+  showPeaks = xform3 c_th3c_showpeaks+  smooth = xform2 c_th3c_smooth+  sumw2 = xform0 c_th3c_sumw2+instance ITAtt3D TH3C where+instance ITObject TH3C where+  draw = xform1 c_th3c_draw+  findObject = xform1 c_th3c_findobject+  getName = xform0 c_th3c_getname+  isA = xform0 c_th3c_isa+  paint = xform1 c_th3c_paint+  printObj = xform1 c_th3c_printobj+  saveAs = xform2 c_th3c_saveas+  write = xform3 c_th3c_write+instance ITAttLine TH3C where+  getLineColor = xform0 c_th3c_getlinecolor+  getLineStyle = xform0 c_th3c_getlinestyle+  getLineWidth = xform0 c_th3c_getlinewidth+  resetAttLine = xform1 c_th3c_resetattline+  setLineAttributes = xform0 c_th3c_setlineattributes+  setLineColor = xform1 c_th3c_setlinecolor+  setLineStyle = xform1 c_th3c_setlinestyle+  setLineWidth = xform1 c_th3c_setlinewidth+instance ITAttFill TH3C where+  setFillColor = xform1 c_th3c_setfillcolor+  setFillStyle = xform1 c_th3c_setfillstyle+instance ITAttMarker TH3C where+  getMarkerColor = xform0 c_th3c_getmarkercolor+  getMarkerStyle = xform0 c_th3c_getmarkerstyle+  getMarkerSize = xform0 c_th3c_getmarkersize+  resetAttMarker = xform1 c_th3c_resetattmarker+  setMarkerAttributes = xform0 c_th3c_setmarkerattributes+  setMarkerColor = xform1 c_th3c_setmarkercolor+  setMarkerStyle = xform1 c_th3c_setmarkerstyle+  setMarkerSize = xform1 c_th3c_setmarkersize+instance IDeletable TH3C where+  delete = xform0 c_th3c_delete+instance ITArray TH3C where++instance ITH3C (Exist TH3C) where++instance ITH3 (Exist TH3C) where+  fill3 (ETH3C x) = fill3 x+  fill3w (ETH3C x) = fill3w x+  fitSlicesZ (ETH3C x) = fitSlicesZ x+  getCorrelationFactor3 (ETH3C x) = getCorrelationFactor3 x+  getCovariance3 (ETH3C x) = getCovariance3 x+  rebinX3 (ETH3C x) = rebinX3 x+  rebinY3 (ETH3C x) = rebinY3 x+  rebinZ3 (ETH3C x) = rebinZ3 x+  rebin3D (ETH3C x) = rebin3D x+instance ITArrayC (Exist TH3C) where++instance ITH1 (Exist TH3C) where+  add (ETH3C x) = add x+  addBinContent (ETH3C x) = addBinContent x+  chi2Test (ETH3C x) = chi2Test x+  computeIntegral (ETH3C x) = computeIntegral x+  directoryAutoAdd (ETH3C x) = directoryAutoAdd x+  divide (ETH3C x) = divide x+  drawCopyTH1 (ETH3C x) a1 = return . ETH3C =<< drawCopyTH1 x a1+  drawNormalized (ETH3C x) = drawNormalized x+  drawPanelTH1 (ETH3C x) = drawPanelTH1 x+  bufferEmpty (ETH3C x) = bufferEmpty x+  evalF (ETH3C x) = evalF x+  fFT (ETH3C x) = fFT x+  fill1 (ETH3C x) = fill1 x+  fill1w (ETH3C x) = fill1w x+  fillN1 (ETH3C x) = fillN1 x+  fillRandom (ETH3C x) = fillRandom x+  findBin (ETH3C x) = findBin x+  findFixBin (ETH3C x) = findFixBin x+  findFirstBinAbove (ETH3C x) = findFirstBinAbove x+  findLastBinAbove (ETH3C x) = findLastBinAbove x+  fitPanelTH1 (ETH3C x) = fitPanelTH1 x+  getNdivisionA (ETH3C x) = getNdivisionA x+  getAxisColorA (ETH3C x) = getAxisColorA x+  getLabelColorA (ETH3C x) = getLabelColorA x+  getLabelFontA (ETH3C x) = getLabelFontA x+  getLabelOffsetA (ETH3C x) = getLabelOffsetA x+  getLabelSizeA (ETH3C x) = getLabelSizeA x+  getTitleFontA (ETH3C x) = getTitleFontA x+  getTitleOffsetA (ETH3C x) = getTitleOffsetA x+  getTitleSizeA (ETH3C x) = getTitleSizeA x+  getTickLengthA (ETH3C x) = getTickLengthA x+  getBarOffset (ETH3C x) = getBarOffset x+  getBarWidth (ETH3C x) = getBarWidth x+  getContour (ETH3C x) = getContour x+  getContourLevel (ETH3C x) = getContourLevel x+  getContourLevelPad (ETH3C x) = getContourLevelPad x+  getBin (ETH3C x) = getBin x+  getBinCenter (ETH3C x) = getBinCenter x+  getBinContent1 (ETH3C x) = getBinContent1 x+  getBinContent2 (ETH3C x) = getBinContent2 x+  getBinContent3 (ETH3C x) = getBinContent3 x+  getBinError1 (ETH3C x) = getBinError1 x+  getBinError2 (ETH3C x) = getBinError2 x+  getBinError3 (ETH3C x) = getBinError3 x+  getBinLowEdge (ETH3C x) = getBinLowEdge x+  getBinWidth (ETH3C x) = getBinWidth x+  getCellContent (ETH3C x) = getCellContent x+  getCellError (ETH3C x) = getCellError x+  getEntries (ETH3C x) = getEntries x+  getEffectiveEntries (ETH3C x) = getEffectiveEntries x+  getFunction (ETH3C x) = getFunction x+  getDimension (ETH3C x) = getDimension x+  getKurtosis (ETH3C x) = getKurtosis x+  getLowEdge (ETH3C x) = getLowEdge x+  getMaximumTH1 (ETH3C x) = getMaximumTH1 x+  getMaximumBin (ETH3C x) = getMaximumBin x+  getMaximumStored (ETH3C x) = getMaximumStored x+  getMinimumTH1 (ETH3C x) = getMinimumTH1 x+  getMinimumBin (ETH3C x) = getMinimumBin x+  getMinimumStored (ETH3C x) = getMinimumStored x+  getMean (ETH3C x) = getMean x+  getMeanError (ETH3C x) = getMeanError x+  getNbinsX (ETH3C x) = getNbinsX x+  getNbinsY (ETH3C x) = getNbinsY x+  getNbinsZ (ETH3C x) = getNbinsZ x+  getQuantilesTH1 (ETH3C x) = getQuantilesTH1 x+  getRandom (ETH3C x) = getRandom x+  getStats (ETH3C x) = getStats x+  getSumOfWeights (ETH3C x) = getSumOfWeights x+  getSumw2 (ETH3C x) = getSumw2 x+  getSumw2N (ETH3C x) = getSumw2N x+  getRMS (ETH3C x) = getRMS x+  getRMSError (ETH3C x) = getRMSError x+  getSkewness (ETH3C x) = getSkewness x+  integral1 (ETH3C x) = integral1 x+  interpolate1 (ETH3C x) = interpolate1 x+  interpolate2 (ETH3C x) = interpolate2 x+  interpolate3 (ETH3C x) = interpolate3 x+  kolmogorovTest (ETH3C x) = kolmogorovTest x+  labelsDeflate (ETH3C x) = labelsDeflate x+  labelsInflate (ETH3C x) = labelsInflate x+  labelsOption (ETH3C x) = labelsOption x+  multiflyF (ETH3C x) = multiflyF x+  multiply (ETH3C x) = multiply x+  putStats (ETH3C x) = putStats x+  rebin (ETH3C x) = rebin x+  rebinAxis (ETH3C x) = rebinAxis x+  rebuild (ETH3C x) = rebuild x+  recursiveRemove (ETH3C x) = recursiveRemove x+  reset (ETH3C x) = reset x+  resetStats (ETH3C x) = resetStats x+  scale (ETH3C x) = scale x+  setAxisColorA (ETH3C x) = setAxisColorA x+  setAxisRange (ETH3C x) = setAxisRange x+  setBarOffset (ETH3C x) = setBarOffset x+  setBarWidth (ETH3C x) = setBarWidth x+  setBinContent1 (ETH3C x) = setBinContent1 x+  setBinContent2 (ETH3C x) = setBinContent2 x+  setBinContent3 (ETH3C x) = setBinContent3 x+  setBinError1 (ETH3C x) = setBinError1 x+  setBinError2 (ETH3C x) = setBinError2 x+  setBinError3 (ETH3C x) = setBinError3 x+  setBins1 (ETH3C x) = setBins1 x+  setBins2 (ETH3C x) = setBins2 x+  setBins3 (ETH3C x) = setBins3 x+  setBinsLength (ETH3C x) = setBinsLength x+  setBuffer (ETH3C x) = setBuffer x+  setCellContent (ETH3C x) = setCellContent x+  setContent (ETH3C x) = setContent x+  setContour (ETH3C x) = setContour x+  setContourLevel (ETH3C x) = setContourLevel x+  setDirectory (ETH3C x) = setDirectory x+  setEntries (ETH3C x) = setEntries x+  setError (ETH3C x) = setError x+  setLabelColorA (ETH3C x) = setLabelColorA x+  setLabelSizeA (ETH3C x) = setLabelSizeA x+  setLabelFontA (ETH3C x) = setLabelFontA x+  setLabelOffsetA (ETH3C x) = setLabelOffsetA x+  setMaximum (ETH3C x) = setMaximum x+  setMinimum (ETH3C x) = setMinimum x+  setNormFactor (ETH3C x) = setNormFactor x+  setStats (ETH3C x) = setStats x+  setOption (ETH3C x) = setOption x+  setXTitle (ETH3C x) = setXTitle x+  setYTitle (ETH3C x) = setYTitle x+  setZTitle (ETH3C x) = setZTitle x+  showBackground (ETH3C x) = showBackground x+  showPeaks (ETH3C x) = showPeaks x+  smooth (ETH3C x) = smooth x+  sumw2 (ETH3C x) = sumw2 x+instance ITAtt3D (Exist TH3C) where++instance ITObject (Exist TH3C) where+  draw (ETH3C x) = draw x+  findObject (ETH3C x) = findObject x+  getName (ETH3C x) = getName x+  isA (ETH3C x) = isA x+  paint (ETH3C x) = paint x+  printObj (ETH3C x) = printObj x+  saveAs (ETH3C x) = saveAs x+  write (ETH3C x) = write x+instance ITAttLine (Exist TH3C) where+  getLineColor (ETH3C x) = getLineColor x+  getLineStyle (ETH3C x) = getLineStyle x+  getLineWidth (ETH3C x) = getLineWidth x+  resetAttLine (ETH3C x) = resetAttLine x+  setLineAttributes (ETH3C x) = setLineAttributes x+  setLineColor (ETH3C x) = setLineColor x+  setLineStyle (ETH3C x) = setLineStyle x+  setLineWidth (ETH3C x) = setLineWidth x+instance ITAttFill (Exist TH3C) where+  setFillColor (ETH3C x) = setFillColor x+  setFillStyle (ETH3C x) = setFillStyle x+instance ITAttMarker (Exist TH3C) where+  getMarkerColor (ETH3C x) = getMarkerColor x+  getMarkerStyle (ETH3C x) = getMarkerStyle x+  getMarkerSize (ETH3C x) = getMarkerSize x+  resetAttMarker (ETH3C x) = resetAttMarker x+  setMarkerAttributes (ETH3C x) = setMarkerAttributes x+  setMarkerColor (ETH3C x) = setMarkerColor x+  setMarkerStyle (ETH3C x) = setMarkerStyle x+  setMarkerSize (ETH3C x) = setMarkerSize x+instance IDeletable (Exist TH3C) where+  delete (ETH3C x) = delete x+instance ITArray (Exist TH3C) where+++++++++instance FPtr (Exist TH3C) where+  type Raw (Exist TH3C) = RawTH3C+  get_fptr (ETH3C obj) = castForeignPtr (get_fptr obj)+  cast_fptr_to_obj fptr = ETH3C (cast_fptr_to_obj (fptr :: ForeignPtr RawTH3C) :: TH3C)
+ src/HROOT/Hist/TH3C/Interface.hs view
@@ -0,0 +1,37 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++-- module HROOT.Class.Interface where++module HROOT.Hist.TH3C.Interface where+++import Data.Word+import Foreign.C+import Foreign.Ptr+import Foreign.ForeignPtr+import FFICXX.Runtime.Cast++import HROOT.Hist.TH3C.RawType++import HROOT.Hist.TH3.Interface+import HROOT.Core.TArrayC.Interface+---- ============ ----++++class (ITH3 a,ITArrayC a) => ITH3C a where++instance Existable TH3C where+  data Exist TH3C = forall a. (FPtr a, ITH3C a) => ETH3C a++upcastTH3C :: (FPtr a, ITH3C a) => a -> TH3C+upcastTH3C h = let fh = get_fptr h+                   fh2 :: ForeignPtr RawTH3C = castForeignPtr fh+               in cast_fptr_to_obj fh2++downcastTH3C :: (FPtr a, ITH3C a) => TH3C -> a +downcastTH3C h = let fh = get_fptr h+                     fh2 = castForeignPtr fh+                 in cast_fptr_to_obj fh2
+ src/HROOT/Hist/TH3C/RawType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++module HROOT.Hist.TH3C.RawType where+++import Foreign.ForeignPtr+import FFICXX.Runtime.Cast  ++data RawTH3C+newtype TH3C = TH3C (ForeignPtr RawTH3C) deriving (Eq, Ord, Show)+instance FPtr TH3C where+   type Raw TH3C = RawTH3C+   get_fptr (TH3C fptr) = fptr+   cast_fptr_to_obj = TH3C
+ src/HROOT/Hist/TH3D.hs view
@@ -0,0 +1,15 @@+module HROOT.Hist.TH3D+  (+    TH3D(..)+  , ITH3D+  , upcastTH3D+  , downcastTH3D++ +  ) where++import HROOT.Hist.TH3D.RawType+import HROOT.Hist.TH3D.Interface+import HROOT.Hist.TH3D.Implementation++
+ src/HROOT/Hist/TH3D/Cast.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeFamilies, +             MultiParamTypeClasses, OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH3D.Cast where+++import Foreign.Ptr+import Foreign.ForeignPtr (castForeignPtr, newForeignPtr_)+import Foreign.ForeignPtr.Unsafe+import FFICXX.Runtime.Cast+import System.IO.Unsafe++import HROOT.Hist.TH3D.RawType+import HROOT.Hist.TH3D.Interface++instance (ITH3D a, FPtr a) => Castable a (Ptr RawTH3D) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ ++instance Castable TH3D (Ptr RawTH3D) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+ src/HROOT/Hist/TH3D/FFI.hsc view
@@ -0,0 +1,525 @@+{-# LANGUAGE ForeignFunctionInterface #-}++-- module HROOT.Class.FFI where++module HROOT.Hist.TH3D.FFI where+++import Foreign.C            +import Foreign.Ptr++-- import HROOT.Class.Interface++-- #include ""++import HROOT.Hist.TH3D.RawType+import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH3.RawType+import HROOT.Hist.TF1.RawType+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TArrayD.RawType+import HROOT.Hist.TAxis.RawType+import HROOT.Core.TObject.RawType+import HROOT.Core.TClass.RawType++#include "HROOTHistTH3D.h"++foreign import ccall "HROOTHistTH3D.h TH3D_fill3" c_th3d_fill3 +  :: (Ptr RawTH3D) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3D.h TH3D_fill3w" c_th3d_fill3w +  :: (Ptr RawTH3D) -> CDouble -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3D.h TH3D_FitSlicesZ" c_th3d_fitslicesz +  :: (Ptr RawTH3D) -> (Ptr RawTF1) -> CInt -> CInt -> CInt -> CInt -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_getCorrelationFactor3" c_th3d_getcorrelationfactor3 +  :: (Ptr RawTH3D) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_getCovariance3" c_th3d_getcovariance3 +  :: (Ptr RawTH3D) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_rebinX3" c_th3d_rebinx3 +  :: (Ptr RawTH3D) -> CInt -> CString -> IO (Ptr RawTH3)++foreign import ccall "HROOTHistTH3D.h TH3D_rebinY3" c_th3d_rebiny3 +  :: (Ptr RawTH3D) -> CInt -> CString -> IO (Ptr RawTH3)++foreign import ccall "HROOTHistTH3D.h TH3D_rebinZ3" c_th3d_rebinz3 +  :: (Ptr RawTH3D) -> CInt -> CString -> IO (Ptr RawTH3)++foreign import ccall "HROOTHistTH3D.h TH3D_Rebin3D" c_th3d_rebin3d +  :: (Ptr RawTH3D) -> CInt -> CInt -> CInt -> CString -> IO (Ptr RawTH3)++foreign import ccall "HROOTHistTH3D.h TH3D_Add" c_th3d_add +  :: (Ptr RawTH3D) -> (Ptr RawTH1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_AddBinContent" c_th3d_addbincontent +  :: (Ptr RawTH3D) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_Chi2Test" c_th3d_chi2test +  :: (Ptr RawTH3D) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_ComputeIntegral" c_th3d_computeintegral +  :: (Ptr RawTH3D) -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_DirectoryAutoAdd" c_th3d_directoryautoadd +  :: (Ptr RawTH3D) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_Divide" c_th3d_divide +  :: (Ptr RawTH3D) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_drawCopyTH1" c_th3d_drawcopyth1 +  :: (Ptr RawTH3D) -> CString -> IO (Ptr RawTH3D)++foreign import ccall "HROOTHistTH3D.h TH3D_DrawNormalized" c_th3d_drawnormalized +  :: (Ptr RawTH3D) -> CString -> CDouble -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH3D.h TH3D_drawPanelTH1" c_th3d_drawpanelth1 +  :: (Ptr RawTH3D) -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_BufferEmpty" c_th3d_bufferempty +  :: (Ptr RawTH3D) -> CInt -> IO CInt++foreign import ccall "HROOTHistTH3D.h TH3D_evalF" c_th3d_evalf +  :: (Ptr RawTH3D) -> (Ptr RawTF1) -> CString -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_FFT" c_th3d_fft +  :: (Ptr RawTH3D) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH3D.h TH3D_fill1" c_th3d_fill1 +  :: (Ptr RawTH3D) -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3D.h TH3D_fill1w" c_th3d_fill1w +  :: (Ptr RawTH3D) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3D.h TH3D_fillN1" c_th3d_filln1 +  :: (Ptr RawTH3D) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_FillRandom" c_th3d_fillrandom +  :: (Ptr RawTH3D) -> (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_FindBin" c_th3d_findbin +  :: (Ptr RawTH3D) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3D.h TH3D_FindFixBin" c_th3d_findfixbin +  :: (Ptr RawTH3D) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3D.h TH3D_FindFirstBinAbove" c_th3d_findfirstbinabove +  :: (Ptr RawTH3D) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH3D.h TH3D_FindLastBinAbove" c_th3d_findlastbinabove +  :: (Ptr RawTH3D) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH3D.h TH3D_FitPanelTH1" c_th3d_fitpanelth1 +  :: (Ptr RawTH3D) -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_getNdivisionA" c_th3d_getndivisiona +  :: (Ptr RawTH3D) -> CString -> IO CInt++foreign import ccall "HROOTHistTH3D.h TH3D_getAxisColorA" c_th3d_getaxiscolora +  :: (Ptr RawTH3D) -> CString -> IO CInt++foreign import ccall "HROOTHistTH3D.h TH3D_getLabelColorA" c_th3d_getlabelcolora +  :: (Ptr RawTH3D) -> CString -> IO CInt++foreign import ccall "HROOTHistTH3D.h TH3D_getLabelFontA" c_th3d_getlabelfonta +  :: (Ptr RawTH3D) -> CString -> IO CInt++foreign import ccall "HROOTHistTH3D.h TH3D_getLabelOffsetA" c_th3d_getlabeloffseta +  :: (Ptr RawTH3D) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_getLabelSizeA" c_th3d_getlabelsizea +  :: (Ptr RawTH3D) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_getTitleFontA" c_th3d_gettitlefonta +  :: (Ptr RawTH3D) -> CString -> IO CInt++foreign import ccall "HROOTHistTH3D.h TH3D_getTitleOffsetA" c_th3d_gettitleoffseta +  :: (Ptr RawTH3D) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_getTitleSizeA" c_th3d_gettitlesizea +  :: (Ptr RawTH3D) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_getTickLengthA" c_th3d_getticklengtha +  :: (Ptr RawTH3D) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_GetBarOffset" c_th3d_getbaroffset +  :: (Ptr RawTH3D) -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_GetBarWidth" c_th3d_getbarwidth +  :: (Ptr RawTH3D) -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_GetContour" c_th3d_getcontour +  :: (Ptr RawTH3D) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH3D.h TH3D_GetContourLevel" c_th3d_getcontourlevel +  :: (Ptr RawTH3D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_GetContourLevelPad" c_th3d_getcontourlevelpad +  :: (Ptr RawTH3D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_GetBin" c_th3d_getbin +  :: (Ptr RawTH3D) -> CInt -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH3D.h TH3D_GetBinCenter" c_th3d_getbincenter +  :: (Ptr RawTH3D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_GetBinContent1" c_th3d_getbincontent1 +  :: (Ptr RawTH3D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_GetBinContent2" c_th3d_getbincontent2 +  :: (Ptr RawTH3D) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_GetBinContent3" c_th3d_getbincontent3 +  :: (Ptr RawTH3D) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_GetBinError1" c_th3d_getbinerror1 +  :: (Ptr RawTH3D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_GetBinError2" c_th3d_getbinerror2 +  :: (Ptr RawTH3D) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_GetBinError3" c_th3d_getbinerror3 +  :: (Ptr RawTH3D) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_GetBinLowEdge" c_th3d_getbinlowedge +  :: (Ptr RawTH3D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_GetBinWidth" c_th3d_getbinwidth +  :: (Ptr RawTH3D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_GetCellContent" c_th3d_getcellcontent +  :: (Ptr RawTH3D) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_GetCellError" c_th3d_getcellerror +  :: (Ptr RawTH3D) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_GetEntries" c_th3d_getentries +  :: (Ptr RawTH3D) -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_GetEffectiveEntries" c_th3d_geteffectiveentries +  :: (Ptr RawTH3D) -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_GetFunction" c_th3d_getfunction +  :: (Ptr RawTH3D) -> CString -> IO (Ptr RawTF1)++foreign import ccall "HROOTHistTH3D.h TH3D_GetDimension" c_th3d_getdimension +  :: (Ptr RawTH3D) -> IO CInt++foreign import ccall "HROOTHistTH3D.h TH3D_GetKurtosis" c_th3d_getkurtosis +  :: (Ptr RawTH3D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_GetLowEdge" c_th3d_getlowedge +  :: (Ptr RawTH3D) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_getMaximumTH1" c_th3d_getmaximumth1 +  :: (Ptr RawTH3D) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_GetMaximumBin" c_th3d_getmaximumbin +  :: (Ptr RawTH3D) -> IO CInt++foreign import ccall "HROOTHistTH3D.h TH3D_GetMaximumStored" c_th3d_getmaximumstored +  :: (Ptr RawTH3D) -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_getMinimumTH1" c_th3d_getminimumth1 +  :: (Ptr RawTH3D) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_GetMinimumBin" c_th3d_getminimumbin +  :: (Ptr RawTH3D) -> IO CInt++foreign import ccall "HROOTHistTH3D.h TH3D_GetMinimumStored" c_th3d_getminimumstored +  :: (Ptr RawTH3D) -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_GetMean" c_th3d_getmean +  :: (Ptr RawTH3D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_GetMeanError" c_th3d_getmeanerror +  :: (Ptr RawTH3D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_GetNbinsX" c_th3d_getnbinsx +  :: (Ptr RawTH3D) -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_GetNbinsY" c_th3d_getnbinsy +  :: (Ptr RawTH3D) -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_GetNbinsZ" c_th3d_getnbinsz +  :: (Ptr RawTH3D) -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_getQuantilesTH1" c_th3d_getquantilesth1 +  :: (Ptr RawTH3D) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH3D.h TH3D_GetRandom" c_th3d_getrandom +  :: (Ptr RawTH3D) -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_GetStats" c_th3d_getstats +  :: (Ptr RawTH3D) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_GetSumOfWeights" c_th3d_getsumofweights +  :: (Ptr RawTH3D) -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_GetSumw2" c_th3d_getsumw2 +  :: (Ptr RawTH3D) -> IO (Ptr RawTArrayD)++foreign import ccall "HROOTHistTH3D.h TH3D_GetSumw2N" c_th3d_getsumw2n +  :: (Ptr RawTH3D) -> IO CInt++foreign import ccall "HROOTHistTH3D.h TH3D_GetRMS" c_th3d_getrms +  :: (Ptr RawTH3D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_GetRMSError" c_th3d_getrmserror +  :: (Ptr RawTH3D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_GetSkewness" c_th3d_getskewness +  :: (Ptr RawTH3D) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_integral1" c_th3d_integral1 +  :: (Ptr RawTH3D) -> CInt -> CInt -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_interpolate1" c_th3d_interpolate1 +  :: (Ptr RawTH3D) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_interpolate2" c_th3d_interpolate2 +  :: (Ptr RawTH3D) -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_interpolate3" c_th3d_interpolate3 +  :: (Ptr RawTH3D) -> CDouble -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_KolmogorovTest" c_th3d_kolmogorovtest +  :: (Ptr RawTH3D) -> (Ptr RawTH1) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_LabelsDeflate" c_th3d_labelsdeflate +  :: (Ptr RawTH3D) -> CString -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_LabelsInflate" c_th3d_labelsinflate +  :: (Ptr RawTH3D) -> CString -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_LabelsOption" c_th3d_labelsoption +  :: (Ptr RawTH3D) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_multiflyF" c_th3d_multiflyf +  :: (Ptr RawTH3D) -> (Ptr RawTF1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_Multiply" c_th3d_multiply +  :: (Ptr RawTH3D) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_PutStats" c_th3d_putstats +  :: (Ptr RawTH3D) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_Rebin" c_th3d_rebin +  :: (Ptr RawTH3D) -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH3D.h TH3D_RebinAxis" c_th3d_rebinaxis +  :: (Ptr RawTH3D) -> CDouble -> (Ptr RawTAxis) -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_Rebuild" c_th3d_rebuild +  :: (Ptr RawTH3D) -> CString -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_RecursiveRemove" c_th3d_recursiveremove +  :: (Ptr RawTH3D) -> (Ptr RawTObject) -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_Reset" c_th3d_reset +  :: (Ptr RawTH3D) -> CString -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_ResetStats" c_th3d_resetstats +  :: (Ptr RawTH3D) -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_Scale" c_th3d_scale +  :: (Ptr RawTH3D) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_setAxisColorA" c_th3d_setaxiscolora +  :: (Ptr RawTH3D) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SetAxisRange" c_th3d_setaxisrange +  :: (Ptr RawTH3D) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SetBarOffset" c_th3d_setbaroffset +  :: (Ptr RawTH3D) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SetBarWidth" c_th3d_setbarwidth +  :: (Ptr RawTH3D) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_setBinContent1" c_th3d_setbincontent1 +  :: (Ptr RawTH3D) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_setBinContent2" c_th3d_setbincontent2 +  :: (Ptr RawTH3D) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_setBinContent3" c_th3d_setbincontent3 +  :: (Ptr RawTH3D) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_setBinError1" c_th3d_setbinerror1 +  :: (Ptr RawTH3D) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_setBinError2" c_th3d_setbinerror2 +  :: (Ptr RawTH3D) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_setBinError3" c_th3d_setbinerror3 +  :: (Ptr RawTH3D) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_setBins1" c_th3d_setbins1 +  :: (Ptr RawTH3D) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_setBins2" c_th3d_setbins2 +  :: (Ptr RawTH3D) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_setBins3" c_th3d_setbins3 +  :: (Ptr RawTH3D) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SetBinsLength" c_th3d_setbinslength +  :: (Ptr RawTH3D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SetBuffer" c_th3d_setbuffer +  :: (Ptr RawTH3D) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SetCellContent" c_th3d_setcellcontent +  :: (Ptr RawTH3D) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SetContent" c_th3d_setcontent +  :: (Ptr RawTH3D) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SetContour" c_th3d_setcontour +  :: (Ptr RawTH3D) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SetContourLevel" c_th3d_setcontourlevel +  :: (Ptr RawTH3D) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SetDirectory" c_th3d_setdirectory +  :: (Ptr RawTH3D) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SetEntries" c_th3d_setentries +  :: (Ptr RawTH3D) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SetError" c_th3d_seterror +  :: (Ptr RawTH3D) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_setLabelColorA" c_th3d_setlabelcolora +  :: (Ptr RawTH3D) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_setLabelSizeA" c_th3d_setlabelsizea +  :: (Ptr RawTH3D) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_setLabelFontA" c_th3d_setlabelfonta +  :: (Ptr RawTH3D) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_setLabelOffsetA" c_th3d_setlabeloffseta +  :: (Ptr RawTH3D) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SetMaximum" c_th3d_setmaximum +  :: (Ptr RawTH3D) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SetMinimum" c_th3d_setminimum +  :: (Ptr RawTH3D) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SetNormFactor" c_th3d_setnormfactor +  :: (Ptr RawTH3D) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SetStats" c_th3d_setstats +  :: (Ptr RawTH3D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SetOption" c_th3d_setoption +  :: (Ptr RawTH3D) -> CString -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SetXTitle" c_th3d_setxtitle +  :: (Ptr RawTH3D) -> CString -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SetYTitle" c_th3d_setytitle +  :: (Ptr RawTH3D) -> CString -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SetZTitle" c_th3d_setztitle +  :: (Ptr RawTH3D) -> CString -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_ShowBackground" c_th3d_showbackground +  :: (Ptr RawTH3D) -> CInt -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH3D.h TH3D_ShowPeaks" c_th3d_showpeaks +  :: (Ptr RawTH3D) -> CDouble -> CString -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3D.h TH3D_Smooth" c_th3d_smooth +  :: (Ptr RawTH3D) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_Sumw2" c_th3d_sumw2 +  :: (Ptr RawTH3D) -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_Draw" c_th3d_draw +  :: (Ptr RawTH3D) -> CString -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_FindObject" c_th3d_findobject +  :: (Ptr RawTH3D) -> CString -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTH3D.h TH3D_GetName" c_th3d_getname +  :: (Ptr RawTH3D) -> IO CString++foreign import ccall "HROOTHistTH3D.h TH3D_IsA" c_th3d_isa +  :: (Ptr RawTH3D) -> IO (Ptr RawTClass)++foreign import ccall "HROOTHistTH3D.h TH3D_Paint" c_th3d_paint +  :: (Ptr RawTH3D) -> CString -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_printObj" c_th3d_printobj +  :: (Ptr RawTH3D) -> CString -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SaveAs" c_th3d_saveas +  :: (Ptr RawTH3D) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_Write" c_th3d_write +  :: (Ptr RawTH3D) -> CString -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH3D.h TH3D_GetLineColor" c_th3d_getlinecolor +  :: (Ptr RawTH3D) -> IO CInt++foreign import ccall "HROOTHistTH3D.h TH3D_GetLineStyle" c_th3d_getlinestyle +  :: (Ptr RawTH3D) -> IO CInt++foreign import ccall "HROOTHistTH3D.h TH3D_GetLineWidth" c_th3d_getlinewidth +  :: (Ptr RawTH3D) -> IO CInt++foreign import ccall "HROOTHistTH3D.h TH3D_ResetAttLine" c_th3d_resetattline +  :: (Ptr RawTH3D) -> CString -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SetLineAttributes" c_th3d_setlineattributes +  :: (Ptr RawTH3D) -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SetLineColor" c_th3d_setlinecolor +  :: (Ptr RawTH3D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SetLineStyle" c_th3d_setlinestyle +  :: (Ptr RawTH3D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SetLineWidth" c_th3d_setlinewidth +  :: (Ptr RawTH3D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SetFillColor" c_th3d_setfillcolor +  :: (Ptr RawTH3D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SetFillStyle" c_th3d_setfillstyle +  :: (Ptr RawTH3D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_GetMarkerColor" c_th3d_getmarkercolor +  :: (Ptr RawTH3D) -> IO CInt++foreign import ccall "HROOTHistTH3D.h TH3D_GetMarkerStyle" c_th3d_getmarkerstyle +  :: (Ptr RawTH3D) -> IO CInt++foreign import ccall "HROOTHistTH3D.h TH3D_GetMarkerSize" c_th3d_getmarkersize +  :: (Ptr RawTH3D) -> IO CDouble++foreign import ccall "HROOTHistTH3D.h TH3D_ResetAttMarker" c_th3d_resetattmarker +  :: (Ptr RawTH3D) -> CString -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SetMarkerAttributes" c_th3d_setmarkerattributes +  :: (Ptr RawTH3D) -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SetMarkerColor" c_th3d_setmarkercolor +  :: (Ptr RawTH3D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SetMarkerStyle" c_th3d_setmarkerstyle +  :: (Ptr RawTH3D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_SetMarkerSize" c_th3d_setmarkersize +  :: (Ptr RawTH3D) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3D.h TH3D_delete" c_th3d_delete +  :: (Ptr RawTH3D) -> IO ()+
+ src/HROOT/Hist/TH3D/Implementation.hs view
@@ -0,0 +1,437 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, +             OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH3D.Implementation where+++import FFICXX.Runtime.Cast++import HROOT.Hist.TH3D.RawType+import HROOT.Hist.TH3D.FFI+import HROOT.Hist.TH3D.Interface+import HROOT.Hist.TH3D.Cast+import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH1D.Cast+import HROOT.Hist.TH1D.Interface+import HROOT.Hist.TF1.RawType+import HROOT.Hist.TF1.Cast+import HROOT.Hist.TF1.Interface+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TDirectory.Cast+import HROOT.Core.TDirectory.Interface+import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.Cast+import HROOT.Hist.TAxis.Interface+import HROOT.Core.TClass.RawType+import HROOT.Core.TClass.Cast+import HROOT.Core.TClass.Interface+import HROOT.Hist.TH3.RawType+import HROOT.Hist.TH3.Cast+import HROOT.Hist.TH3.Interface+import HROOT.Core.TArrayD.RawType+import HROOT.Core.TArrayD.Cast+import HROOT.Core.TArrayD.Interface+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH1.Cast+import HROOT.Hist.TH1.Interface+import HROOT.Core.TAtt3D.RawType+import HROOT.Core.TAtt3D.Cast+import HROOT.Core.TAtt3D.Interface+import HROOT.Core.TObject.RawType+import HROOT.Core.TObject.Cast+import HROOT.Core.TObject.Interface+import HROOT.Core.TAttLine.RawType+import HROOT.Core.TAttLine.Cast+import HROOT.Core.TAttLine.Interface+import HROOT.Core.TAttFill.RawType+import HROOT.Core.TAttFill.Cast+import HROOT.Core.TAttFill.Interface+import HROOT.Core.TAttMarker.RawType+import HROOT.Core.TAttMarker.Cast+import HROOT.Core.TAttMarker.Interface+import HROOT.Core.Deletable.RawType+import HROOT.Core.Deletable.Cast+import HROOT.Core.Deletable.Interface+import HROOT.Core.TArray.RawType+import HROOT.Core.TArray.Cast+import HROOT.Core.TArray.Interface++import Data.Word+import Foreign.C+import Foreign.Ptr +import Foreign.ForeignPtr++import System.IO.Unsafe+++instance ITH3D TH3D where+instance ITH3 TH3D where+  fill3 = xform3 c_th3d_fill3+  fill3w = xform4 c_th3d_fill3w+  fitSlicesZ = xform7 c_th3d_fitslicesz+  getCorrelationFactor3 = xform2 c_th3d_getcorrelationfactor3+  getCovariance3 = xform2 c_th3d_getcovariance3+  rebinX3 = xform2 c_th3d_rebinx3+  rebinY3 = xform2 c_th3d_rebiny3+  rebinZ3 = xform2 c_th3d_rebinz3+  rebin3D = xform4 c_th3d_rebin3d+instance ITArrayD TH3D where+instance ITH1 TH3D where+  add = xform2 c_th3d_add+  addBinContent = xform2 c_th3d_addbincontent+  chi2Test = xform3 c_th3d_chi2test+  computeIntegral = xform0 c_th3d_computeintegral+  directoryAutoAdd = xform1 c_th3d_directoryautoadd+  divide = xform5 c_th3d_divide+  drawCopyTH1 = xform1 c_th3d_drawcopyth1+  drawNormalized = xform2 c_th3d_drawnormalized+  drawPanelTH1 = xform0 c_th3d_drawpanelth1+  bufferEmpty = xform1 c_th3d_bufferempty+  evalF = xform2 c_th3d_evalf+  fFT = xform2 c_th3d_fft+  fill1 = xform1 c_th3d_fill1+  fill1w = xform2 c_th3d_fill1w+  fillN1 = xform4 c_th3d_filln1+  fillRandom = xform2 c_th3d_fillrandom+  findBin = xform3 c_th3d_findbin+  findFixBin = xform3 c_th3d_findfixbin+  findFirstBinAbove = xform2 c_th3d_findfirstbinabove+  findLastBinAbove = xform2 c_th3d_findlastbinabove+  fitPanelTH1 = xform0 c_th3d_fitpanelth1+  getNdivisionA = xform1 c_th3d_getndivisiona+  getAxisColorA = xform1 c_th3d_getaxiscolora+  getLabelColorA = xform1 c_th3d_getlabelcolora+  getLabelFontA = xform1 c_th3d_getlabelfonta+  getLabelOffsetA = xform1 c_th3d_getlabeloffseta+  getLabelSizeA = xform1 c_th3d_getlabelsizea+  getTitleFontA = xform1 c_th3d_gettitlefonta+  getTitleOffsetA = xform1 c_th3d_gettitleoffseta+  getTitleSizeA = xform1 c_th3d_gettitlesizea+  getTickLengthA = xform1 c_th3d_getticklengtha+  getBarOffset = xform0 c_th3d_getbaroffset+  getBarWidth = xform0 c_th3d_getbarwidth+  getContour = xform1 c_th3d_getcontour+  getContourLevel = xform1 c_th3d_getcontourlevel+  getContourLevelPad = xform1 c_th3d_getcontourlevelpad+  getBin = xform3 c_th3d_getbin+  getBinCenter = xform1 c_th3d_getbincenter+  getBinContent1 = xform1 c_th3d_getbincontent1+  getBinContent2 = xform2 c_th3d_getbincontent2+  getBinContent3 = xform3 c_th3d_getbincontent3+  getBinError1 = xform1 c_th3d_getbinerror1+  getBinError2 = xform2 c_th3d_getbinerror2+  getBinError3 = xform3 c_th3d_getbinerror3+  getBinLowEdge = xform1 c_th3d_getbinlowedge+  getBinWidth = xform1 c_th3d_getbinwidth+  getCellContent = xform2 c_th3d_getcellcontent+  getCellError = xform2 c_th3d_getcellerror+  getEntries = xform0 c_th3d_getentries+  getEffectiveEntries = xform0 c_th3d_geteffectiveentries+  getFunction = xform1 c_th3d_getfunction+  getDimension = xform0 c_th3d_getdimension+  getKurtosis = xform1 c_th3d_getkurtosis+  getLowEdge = xform1 c_th3d_getlowedge+  getMaximumTH1 = xform1 c_th3d_getmaximumth1+  getMaximumBin = xform0 c_th3d_getmaximumbin+  getMaximumStored = xform0 c_th3d_getmaximumstored+  getMinimumTH1 = xform1 c_th3d_getminimumth1+  getMinimumBin = xform0 c_th3d_getminimumbin+  getMinimumStored = xform0 c_th3d_getminimumstored+  getMean = xform1 c_th3d_getmean+  getMeanError = xform1 c_th3d_getmeanerror+  getNbinsX = xform0 c_th3d_getnbinsx+  getNbinsY = xform0 c_th3d_getnbinsy+  getNbinsZ = xform0 c_th3d_getnbinsz+  getQuantilesTH1 = xform3 c_th3d_getquantilesth1+  getRandom = xform0 c_th3d_getrandom+  getStats = xform1 c_th3d_getstats+  getSumOfWeights = xform0 c_th3d_getsumofweights+  getSumw2 = xform0 c_th3d_getsumw2+  getSumw2N = xform0 c_th3d_getsumw2n+  getRMS = xform1 c_th3d_getrms+  getRMSError = xform1 c_th3d_getrmserror+  getSkewness = xform1 c_th3d_getskewness+  integral1 = xform3 c_th3d_integral1+  interpolate1 = xform1 c_th3d_interpolate1+  interpolate2 = xform2 c_th3d_interpolate2+  interpolate3 = xform3 c_th3d_interpolate3+  kolmogorovTest = xform2 c_th3d_kolmogorovtest+  labelsDeflate = xform1 c_th3d_labelsdeflate+  labelsInflate = xform1 c_th3d_labelsinflate+  labelsOption = xform2 c_th3d_labelsoption+  multiflyF = xform2 c_th3d_multiflyf+  multiply = xform5 c_th3d_multiply+  putStats = xform1 c_th3d_putstats+  rebin = xform3 c_th3d_rebin+  rebinAxis = xform2 c_th3d_rebinaxis+  rebuild = xform1 c_th3d_rebuild+  recursiveRemove = xform1 c_th3d_recursiveremove+  reset = xform1 c_th3d_reset+  resetStats = xform0 c_th3d_resetstats+  scale = xform2 c_th3d_scale+  setAxisColorA = xform2 c_th3d_setaxiscolora+  setAxisRange = xform3 c_th3d_setaxisrange+  setBarOffset = xform1 c_th3d_setbaroffset+  setBarWidth = xform1 c_th3d_setbarwidth+  setBinContent1 = xform2 c_th3d_setbincontent1+  setBinContent2 = xform3 c_th3d_setbincontent2+  setBinContent3 = xform4 c_th3d_setbincontent3+  setBinError1 = xform2 c_th3d_setbinerror1+  setBinError2 = xform3 c_th3d_setbinerror2+  setBinError3 = xform4 c_th3d_setbinerror3+  setBins1 = xform2 c_th3d_setbins1+  setBins2 = xform4 c_th3d_setbins2+  setBins3 = xform6 c_th3d_setbins3+  setBinsLength = xform1 c_th3d_setbinslength+  setBuffer = xform2 c_th3d_setbuffer+  setCellContent = xform3 c_th3d_setcellcontent+  setContent = xform1 c_th3d_setcontent+  setContour = xform2 c_th3d_setcontour+  setContourLevel = xform2 c_th3d_setcontourlevel+  setDirectory = xform1 c_th3d_setdirectory+  setEntries = xform1 c_th3d_setentries+  setError = xform1 c_th3d_seterror+  setLabelColorA = xform2 c_th3d_setlabelcolora+  setLabelSizeA = xform2 c_th3d_setlabelsizea+  setLabelFontA = xform2 c_th3d_setlabelfonta+  setLabelOffsetA = xform2 c_th3d_setlabeloffseta+  setMaximum = xform1 c_th3d_setmaximum+  setMinimum = xform1 c_th3d_setminimum+  setNormFactor = xform1 c_th3d_setnormfactor+  setStats = xform1 c_th3d_setstats+  setOption = xform1 c_th3d_setoption+  setXTitle = xform1 c_th3d_setxtitle+  setYTitle = xform1 c_th3d_setytitle+  setZTitle = xform1 c_th3d_setztitle+  showBackground = xform2 c_th3d_showbackground+  showPeaks = xform3 c_th3d_showpeaks+  smooth = xform2 c_th3d_smooth+  sumw2 = xform0 c_th3d_sumw2+instance ITAtt3D TH3D where+instance ITObject TH3D where+  draw = xform1 c_th3d_draw+  findObject = xform1 c_th3d_findobject+  getName = xform0 c_th3d_getname+  isA = xform0 c_th3d_isa+  paint = xform1 c_th3d_paint+  printObj = xform1 c_th3d_printobj+  saveAs = xform2 c_th3d_saveas+  write = xform3 c_th3d_write+instance ITAttLine TH3D where+  getLineColor = xform0 c_th3d_getlinecolor+  getLineStyle = xform0 c_th3d_getlinestyle+  getLineWidth = xform0 c_th3d_getlinewidth+  resetAttLine = xform1 c_th3d_resetattline+  setLineAttributes = xform0 c_th3d_setlineattributes+  setLineColor = xform1 c_th3d_setlinecolor+  setLineStyle = xform1 c_th3d_setlinestyle+  setLineWidth = xform1 c_th3d_setlinewidth+instance ITAttFill TH3D where+  setFillColor = xform1 c_th3d_setfillcolor+  setFillStyle = xform1 c_th3d_setfillstyle+instance ITAttMarker TH3D where+  getMarkerColor = xform0 c_th3d_getmarkercolor+  getMarkerStyle = xform0 c_th3d_getmarkerstyle+  getMarkerSize = xform0 c_th3d_getmarkersize+  resetAttMarker = xform1 c_th3d_resetattmarker+  setMarkerAttributes = xform0 c_th3d_setmarkerattributes+  setMarkerColor = xform1 c_th3d_setmarkercolor+  setMarkerStyle = xform1 c_th3d_setmarkerstyle+  setMarkerSize = xform1 c_th3d_setmarkersize+instance IDeletable TH3D where+  delete = xform0 c_th3d_delete+instance ITArray TH3D where++instance ITH3D (Exist TH3D) where++instance ITH3 (Exist TH3D) where+  fill3 (ETH3D x) = fill3 x+  fill3w (ETH3D x) = fill3w x+  fitSlicesZ (ETH3D x) = fitSlicesZ x+  getCorrelationFactor3 (ETH3D x) = getCorrelationFactor3 x+  getCovariance3 (ETH3D x) = getCovariance3 x+  rebinX3 (ETH3D x) = rebinX3 x+  rebinY3 (ETH3D x) = rebinY3 x+  rebinZ3 (ETH3D x) = rebinZ3 x+  rebin3D (ETH3D x) = rebin3D x+instance ITArrayD (Exist TH3D) where++instance ITH1 (Exist TH3D) where+  add (ETH3D x) = add x+  addBinContent (ETH3D x) = addBinContent x+  chi2Test (ETH3D x) = chi2Test x+  computeIntegral (ETH3D x) = computeIntegral x+  directoryAutoAdd (ETH3D x) = directoryAutoAdd x+  divide (ETH3D x) = divide x+  drawCopyTH1 (ETH3D x) a1 = return . ETH3D =<< drawCopyTH1 x a1+  drawNormalized (ETH3D x) = drawNormalized x+  drawPanelTH1 (ETH3D x) = drawPanelTH1 x+  bufferEmpty (ETH3D x) = bufferEmpty x+  evalF (ETH3D x) = evalF x+  fFT (ETH3D x) = fFT x+  fill1 (ETH3D x) = fill1 x+  fill1w (ETH3D x) = fill1w x+  fillN1 (ETH3D x) = fillN1 x+  fillRandom (ETH3D x) = fillRandom x+  findBin (ETH3D x) = findBin x+  findFixBin (ETH3D x) = findFixBin x+  findFirstBinAbove (ETH3D x) = findFirstBinAbove x+  findLastBinAbove (ETH3D x) = findLastBinAbove x+  fitPanelTH1 (ETH3D x) = fitPanelTH1 x+  getNdivisionA (ETH3D x) = getNdivisionA x+  getAxisColorA (ETH3D x) = getAxisColorA x+  getLabelColorA (ETH3D x) = getLabelColorA x+  getLabelFontA (ETH3D x) = getLabelFontA x+  getLabelOffsetA (ETH3D x) = getLabelOffsetA x+  getLabelSizeA (ETH3D x) = getLabelSizeA x+  getTitleFontA (ETH3D x) = getTitleFontA x+  getTitleOffsetA (ETH3D x) = getTitleOffsetA x+  getTitleSizeA (ETH3D x) = getTitleSizeA x+  getTickLengthA (ETH3D x) = getTickLengthA x+  getBarOffset (ETH3D x) = getBarOffset x+  getBarWidth (ETH3D x) = getBarWidth x+  getContour (ETH3D x) = getContour x+  getContourLevel (ETH3D x) = getContourLevel x+  getContourLevelPad (ETH3D x) = getContourLevelPad x+  getBin (ETH3D x) = getBin x+  getBinCenter (ETH3D x) = getBinCenter x+  getBinContent1 (ETH3D x) = getBinContent1 x+  getBinContent2 (ETH3D x) = getBinContent2 x+  getBinContent3 (ETH3D x) = getBinContent3 x+  getBinError1 (ETH3D x) = getBinError1 x+  getBinError2 (ETH3D x) = getBinError2 x+  getBinError3 (ETH3D x) = getBinError3 x+  getBinLowEdge (ETH3D x) = getBinLowEdge x+  getBinWidth (ETH3D x) = getBinWidth x+  getCellContent (ETH3D x) = getCellContent x+  getCellError (ETH3D x) = getCellError x+  getEntries (ETH3D x) = getEntries x+  getEffectiveEntries (ETH3D x) = getEffectiveEntries x+  getFunction (ETH3D x) = getFunction x+  getDimension (ETH3D x) = getDimension x+  getKurtosis (ETH3D x) = getKurtosis x+  getLowEdge (ETH3D x) = getLowEdge x+  getMaximumTH1 (ETH3D x) = getMaximumTH1 x+  getMaximumBin (ETH3D x) = getMaximumBin x+  getMaximumStored (ETH3D x) = getMaximumStored x+  getMinimumTH1 (ETH3D x) = getMinimumTH1 x+  getMinimumBin (ETH3D x) = getMinimumBin x+  getMinimumStored (ETH3D x) = getMinimumStored x+  getMean (ETH3D x) = getMean x+  getMeanError (ETH3D x) = getMeanError x+  getNbinsX (ETH3D x) = getNbinsX x+  getNbinsY (ETH3D x) = getNbinsY x+  getNbinsZ (ETH3D x) = getNbinsZ x+  getQuantilesTH1 (ETH3D x) = getQuantilesTH1 x+  getRandom (ETH3D x) = getRandom x+  getStats (ETH3D x) = getStats x+  getSumOfWeights (ETH3D x) = getSumOfWeights x+  getSumw2 (ETH3D x) = getSumw2 x+  getSumw2N (ETH3D x) = getSumw2N x+  getRMS (ETH3D x) = getRMS x+  getRMSError (ETH3D x) = getRMSError x+  getSkewness (ETH3D x) = getSkewness x+  integral1 (ETH3D x) = integral1 x+  interpolate1 (ETH3D x) = interpolate1 x+  interpolate2 (ETH3D x) = interpolate2 x+  interpolate3 (ETH3D x) = interpolate3 x+  kolmogorovTest (ETH3D x) = kolmogorovTest x+  labelsDeflate (ETH3D x) = labelsDeflate x+  labelsInflate (ETH3D x) = labelsInflate x+  labelsOption (ETH3D x) = labelsOption x+  multiflyF (ETH3D x) = multiflyF x+  multiply (ETH3D x) = multiply x+  putStats (ETH3D x) = putStats x+  rebin (ETH3D x) = rebin x+  rebinAxis (ETH3D x) = rebinAxis x+  rebuild (ETH3D x) = rebuild x+  recursiveRemove (ETH3D x) = recursiveRemove x+  reset (ETH3D x) = reset x+  resetStats (ETH3D x) = resetStats x+  scale (ETH3D x) = scale x+  setAxisColorA (ETH3D x) = setAxisColorA x+  setAxisRange (ETH3D x) = setAxisRange x+  setBarOffset (ETH3D x) = setBarOffset x+  setBarWidth (ETH3D x) = setBarWidth x+  setBinContent1 (ETH3D x) = setBinContent1 x+  setBinContent2 (ETH3D x) = setBinContent2 x+  setBinContent3 (ETH3D x) = setBinContent3 x+  setBinError1 (ETH3D x) = setBinError1 x+  setBinError2 (ETH3D x) = setBinError2 x+  setBinError3 (ETH3D x) = setBinError3 x+  setBins1 (ETH3D x) = setBins1 x+  setBins2 (ETH3D x) = setBins2 x+  setBins3 (ETH3D x) = setBins3 x+  setBinsLength (ETH3D x) = setBinsLength x+  setBuffer (ETH3D x) = setBuffer x+  setCellContent (ETH3D x) = setCellContent x+  setContent (ETH3D x) = setContent x+  setContour (ETH3D x) = setContour x+  setContourLevel (ETH3D x) = setContourLevel x+  setDirectory (ETH3D x) = setDirectory x+  setEntries (ETH3D x) = setEntries x+  setError (ETH3D x) = setError x+  setLabelColorA (ETH3D x) = setLabelColorA x+  setLabelSizeA (ETH3D x) = setLabelSizeA x+  setLabelFontA (ETH3D x) = setLabelFontA x+  setLabelOffsetA (ETH3D x) = setLabelOffsetA x+  setMaximum (ETH3D x) = setMaximum x+  setMinimum (ETH3D x) = setMinimum x+  setNormFactor (ETH3D x) = setNormFactor x+  setStats (ETH3D x) = setStats x+  setOption (ETH3D x) = setOption x+  setXTitle (ETH3D x) = setXTitle x+  setYTitle (ETH3D x) = setYTitle x+  setZTitle (ETH3D x) = setZTitle x+  showBackground (ETH3D x) = showBackground x+  showPeaks (ETH3D x) = showPeaks x+  smooth (ETH3D x) = smooth x+  sumw2 (ETH3D x) = sumw2 x+instance ITAtt3D (Exist TH3D) where++instance ITObject (Exist TH3D) where+  draw (ETH3D x) = draw x+  findObject (ETH3D x) = findObject x+  getName (ETH3D x) = getName x+  isA (ETH3D x) = isA x+  paint (ETH3D x) = paint x+  printObj (ETH3D x) = printObj x+  saveAs (ETH3D x) = saveAs x+  write (ETH3D x) = write x+instance ITAttLine (Exist TH3D) where+  getLineColor (ETH3D x) = getLineColor x+  getLineStyle (ETH3D x) = getLineStyle x+  getLineWidth (ETH3D x) = getLineWidth x+  resetAttLine (ETH3D x) = resetAttLine x+  setLineAttributes (ETH3D x) = setLineAttributes x+  setLineColor (ETH3D x) = setLineColor x+  setLineStyle (ETH3D x) = setLineStyle x+  setLineWidth (ETH3D x) = setLineWidth x+instance ITAttFill (Exist TH3D) where+  setFillColor (ETH3D x) = setFillColor x+  setFillStyle (ETH3D x) = setFillStyle x+instance ITAttMarker (Exist TH3D) where+  getMarkerColor (ETH3D x) = getMarkerColor x+  getMarkerStyle (ETH3D x) = getMarkerStyle x+  getMarkerSize (ETH3D x) = getMarkerSize x+  resetAttMarker (ETH3D x) = resetAttMarker x+  setMarkerAttributes (ETH3D x) = setMarkerAttributes x+  setMarkerColor (ETH3D x) = setMarkerColor x+  setMarkerStyle (ETH3D x) = setMarkerStyle x+  setMarkerSize (ETH3D x) = setMarkerSize x+instance IDeletable (Exist TH3D) where+  delete (ETH3D x) = delete x+instance ITArray (Exist TH3D) where+++++++++instance FPtr (Exist TH3D) where+  type Raw (Exist TH3D) = RawTH3D+  get_fptr (ETH3D obj) = castForeignPtr (get_fptr obj)+  cast_fptr_to_obj fptr = ETH3D (cast_fptr_to_obj (fptr :: ForeignPtr RawTH3D) :: TH3D)
+ src/HROOT/Hist/TH3D/Interface.hs view
@@ -0,0 +1,37 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++-- module HROOT.Class.Interface where++module HROOT.Hist.TH3D.Interface where+++import Data.Word+import Foreign.C+import Foreign.Ptr+import Foreign.ForeignPtr+import FFICXX.Runtime.Cast++import HROOT.Hist.TH3D.RawType++import HROOT.Hist.TH3.Interface+import HROOT.Core.TArrayD.Interface+---- ============ ----++++class (ITH3 a,ITArrayD a) => ITH3D a where++instance Existable TH3D where+  data Exist TH3D = forall a. (FPtr a, ITH3D a) => ETH3D a++upcastTH3D :: (FPtr a, ITH3D a) => a -> TH3D+upcastTH3D h = let fh = get_fptr h+                   fh2 :: ForeignPtr RawTH3D = castForeignPtr fh+               in cast_fptr_to_obj fh2++downcastTH3D :: (FPtr a, ITH3D a) => TH3D -> a +downcastTH3D h = let fh = get_fptr h+                     fh2 = castForeignPtr fh+                 in cast_fptr_to_obj fh2
+ src/HROOT/Hist/TH3D/RawType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++module HROOT.Hist.TH3D.RawType where+++import Foreign.ForeignPtr+import FFICXX.Runtime.Cast  ++data RawTH3D+newtype TH3D = TH3D (ForeignPtr RawTH3D) deriving (Eq, Ord, Show)+instance FPtr TH3D where+   type Raw TH3D = RawTH3D+   get_fptr (TH3D fptr) = fptr+   cast_fptr_to_obj = TH3D
+ src/HROOT/Hist/TH3F.hs view
@@ -0,0 +1,15 @@+module HROOT.Hist.TH3F+  (+    TH3F(..)+  , ITH3F+  , upcastTH3F+  , downcastTH3F++ +  ) where++import HROOT.Hist.TH3F.RawType+import HROOT.Hist.TH3F.Interface+import HROOT.Hist.TH3F.Implementation++
+ src/HROOT/Hist/TH3F/Cast.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeFamilies, +             MultiParamTypeClasses, OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH3F.Cast where+++import Foreign.Ptr+import Foreign.ForeignPtr (castForeignPtr, newForeignPtr_)+import Foreign.ForeignPtr.Unsafe+import FFICXX.Runtime.Cast+import System.IO.Unsafe++import HROOT.Hist.TH3F.RawType+import HROOT.Hist.TH3F.Interface++instance (ITH3F a, FPtr a) => Castable a (Ptr RawTH3F) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ ++instance Castable TH3F (Ptr RawTH3F) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+ src/HROOT/Hist/TH3F/FFI.hsc view
@@ -0,0 +1,525 @@+{-# LANGUAGE ForeignFunctionInterface #-}++-- module HROOT.Class.FFI where++module HROOT.Hist.TH3F.FFI where+++import Foreign.C            +import Foreign.Ptr++-- import HROOT.Class.Interface++-- #include ""++import HROOT.Hist.TH3F.RawType+import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH3.RawType+import HROOT.Hist.TF1.RawType+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TArrayD.RawType+import HROOT.Hist.TAxis.RawType+import HROOT.Core.TObject.RawType+import HROOT.Core.TClass.RawType++#include "HROOTHistTH3F.h"++foreign import ccall "HROOTHistTH3F.h TH3F_fill3" c_th3f_fill3 +  :: (Ptr RawTH3F) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3F.h TH3F_fill3w" c_th3f_fill3w +  :: (Ptr RawTH3F) -> CDouble -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3F.h TH3F_FitSlicesZ" c_th3f_fitslicesz +  :: (Ptr RawTH3F) -> (Ptr RawTF1) -> CInt -> CInt -> CInt -> CInt -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_getCorrelationFactor3" c_th3f_getcorrelationfactor3 +  :: (Ptr RawTH3F) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_getCovariance3" c_th3f_getcovariance3 +  :: (Ptr RawTH3F) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_rebinX3" c_th3f_rebinx3 +  :: (Ptr RawTH3F) -> CInt -> CString -> IO (Ptr RawTH3)++foreign import ccall "HROOTHistTH3F.h TH3F_rebinY3" c_th3f_rebiny3 +  :: (Ptr RawTH3F) -> CInt -> CString -> IO (Ptr RawTH3)++foreign import ccall "HROOTHistTH3F.h TH3F_rebinZ3" c_th3f_rebinz3 +  :: (Ptr RawTH3F) -> CInt -> CString -> IO (Ptr RawTH3)++foreign import ccall "HROOTHistTH3F.h TH3F_Rebin3D" c_th3f_rebin3d +  :: (Ptr RawTH3F) -> CInt -> CInt -> CInt -> CString -> IO (Ptr RawTH3)++foreign import ccall "HROOTHistTH3F.h TH3F_Add" c_th3f_add +  :: (Ptr RawTH3F) -> (Ptr RawTH1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_AddBinContent" c_th3f_addbincontent +  :: (Ptr RawTH3F) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_Chi2Test" c_th3f_chi2test +  :: (Ptr RawTH3F) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_ComputeIntegral" c_th3f_computeintegral +  :: (Ptr RawTH3F) -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_DirectoryAutoAdd" c_th3f_directoryautoadd +  :: (Ptr RawTH3F) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_Divide" c_th3f_divide +  :: (Ptr RawTH3F) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_drawCopyTH1" c_th3f_drawcopyth1 +  :: (Ptr RawTH3F) -> CString -> IO (Ptr RawTH3F)++foreign import ccall "HROOTHistTH3F.h TH3F_DrawNormalized" c_th3f_drawnormalized +  :: (Ptr RawTH3F) -> CString -> CDouble -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH3F.h TH3F_drawPanelTH1" c_th3f_drawpanelth1 +  :: (Ptr RawTH3F) -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_BufferEmpty" c_th3f_bufferempty +  :: (Ptr RawTH3F) -> CInt -> IO CInt++foreign import ccall "HROOTHistTH3F.h TH3F_evalF" c_th3f_evalf +  :: (Ptr RawTH3F) -> (Ptr RawTF1) -> CString -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_FFT" c_th3f_fft +  :: (Ptr RawTH3F) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH3F.h TH3F_fill1" c_th3f_fill1 +  :: (Ptr RawTH3F) -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3F.h TH3F_fill1w" c_th3f_fill1w +  :: (Ptr RawTH3F) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3F.h TH3F_fillN1" c_th3f_filln1 +  :: (Ptr RawTH3F) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_FillRandom" c_th3f_fillrandom +  :: (Ptr RawTH3F) -> (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_FindBin" c_th3f_findbin +  :: (Ptr RawTH3F) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3F.h TH3F_FindFixBin" c_th3f_findfixbin +  :: (Ptr RawTH3F) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3F.h TH3F_FindFirstBinAbove" c_th3f_findfirstbinabove +  :: (Ptr RawTH3F) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH3F.h TH3F_FindLastBinAbove" c_th3f_findlastbinabove +  :: (Ptr RawTH3F) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH3F.h TH3F_FitPanelTH1" c_th3f_fitpanelth1 +  :: (Ptr RawTH3F) -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_getNdivisionA" c_th3f_getndivisiona +  :: (Ptr RawTH3F) -> CString -> IO CInt++foreign import ccall "HROOTHistTH3F.h TH3F_getAxisColorA" c_th3f_getaxiscolora +  :: (Ptr RawTH3F) -> CString -> IO CInt++foreign import ccall "HROOTHistTH3F.h TH3F_getLabelColorA" c_th3f_getlabelcolora +  :: (Ptr RawTH3F) -> CString -> IO CInt++foreign import ccall "HROOTHistTH3F.h TH3F_getLabelFontA" c_th3f_getlabelfonta +  :: (Ptr RawTH3F) -> CString -> IO CInt++foreign import ccall "HROOTHistTH3F.h TH3F_getLabelOffsetA" c_th3f_getlabeloffseta +  :: (Ptr RawTH3F) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_getLabelSizeA" c_th3f_getlabelsizea +  :: (Ptr RawTH3F) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_getTitleFontA" c_th3f_gettitlefonta +  :: (Ptr RawTH3F) -> CString -> IO CInt++foreign import ccall "HROOTHistTH3F.h TH3F_getTitleOffsetA" c_th3f_gettitleoffseta +  :: (Ptr RawTH3F) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_getTitleSizeA" c_th3f_gettitlesizea +  :: (Ptr RawTH3F) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_getTickLengthA" c_th3f_getticklengtha +  :: (Ptr RawTH3F) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_GetBarOffset" c_th3f_getbaroffset +  :: (Ptr RawTH3F) -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_GetBarWidth" c_th3f_getbarwidth +  :: (Ptr RawTH3F) -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_GetContour" c_th3f_getcontour +  :: (Ptr RawTH3F) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH3F.h TH3F_GetContourLevel" c_th3f_getcontourlevel +  :: (Ptr RawTH3F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_GetContourLevelPad" c_th3f_getcontourlevelpad +  :: (Ptr RawTH3F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_GetBin" c_th3f_getbin +  :: (Ptr RawTH3F) -> CInt -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH3F.h TH3F_GetBinCenter" c_th3f_getbincenter +  :: (Ptr RawTH3F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_GetBinContent1" c_th3f_getbincontent1 +  :: (Ptr RawTH3F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_GetBinContent2" c_th3f_getbincontent2 +  :: (Ptr RawTH3F) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_GetBinContent3" c_th3f_getbincontent3 +  :: (Ptr RawTH3F) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_GetBinError1" c_th3f_getbinerror1 +  :: (Ptr RawTH3F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_GetBinError2" c_th3f_getbinerror2 +  :: (Ptr RawTH3F) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_GetBinError3" c_th3f_getbinerror3 +  :: (Ptr RawTH3F) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_GetBinLowEdge" c_th3f_getbinlowedge +  :: (Ptr RawTH3F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_GetBinWidth" c_th3f_getbinwidth +  :: (Ptr RawTH3F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_GetCellContent" c_th3f_getcellcontent +  :: (Ptr RawTH3F) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_GetCellError" c_th3f_getcellerror +  :: (Ptr RawTH3F) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_GetEntries" c_th3f_getentries +  :: (Ptr RawTH3F) -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_GetEffectiveEntries" c_th3f_geteffectiveentries +  :: (Ptr RawTH3F) -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_GetFunction" c_th3f_getfunction +  :: (Ptr RawTH3F) -> CString -> IO (Ptr RawTF1)++foreign import ccall "HROOTHistTH3F.h TH3F_GetDimension" c_th3f_getdimension +  :: (Ptr RawTH3F) -> IO CInt++foreign import ccall "HROOTHistTH3F.h TH3F_GetKurtosis" c_th3f_getkurtosis +  :: (Ptr RawTH3F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_GetLowEdge" c_th3f_getlowedge +  :: (Ptr RawTH3F) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_getMaximumTH1" c_th3f_getmaximumth1 +  :: (Ptr RawTH3F) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_GetMaximumBin" c_th3f_getmaximumbin +  :: (Ptr RawTH3F) -> IO CInt++foreign import ccall "HROOTHistTH3F.h TH3F_GetMaximumStored" c_th3f_getmaximumstored +  :: (Ptr RawTH3F) -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_getMinimumTH1" c_th3f_getminimumth1 +  :: (Ptr RawTH3F) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_GetMinimumBin" c_th3f_getminimumbin +  :: (Ptr RawTH3F) -> IO CInt++foreign import ccall "HROOTHistTH3F.h TH3F_GetMinimumStored" c_th3f_getminimumstored +  :: (Ptr RawTH3F) -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_GetMean" c_th3f_getmean +  :: (Ptr RawTH3F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_GetMeanError" c_th3f_getmeanerror +  :: (Ptr RawTH3F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_GetNbinsX" c_th3f_getnbinsx +  :: (Ptr RawTH3F) -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_GetNbinsY" c_th3f_getnbinsy +  :: (Ptr RawTH3F) -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_GetNbinsZ" c_th3f_getnbinsz +  :: (Ptr RawTH3F) -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_getQuantilesTH1" c_th3f_getquantilesth1 +  :: (Ptr RawTH3F) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH3F.h TH3F_GetRandom" c_th3f_getrandom +  :: (Ptr RawTH3F) -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_GetStats" c_th3f_getstats +  :: (Ptr RawTH3F) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_GetSumOfWeights" c_th3f_getsumofweights +  :: (Ptr RawTH3F) -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_GetSumw2" c_th3f_getsumw2 +  :: (Ptr RawTH3F) -> IO (Ptr RawTArrayD)++foreign import ccall "HROOTHistTH3F.h TH3F_GetSumw2N" c_th3f_getsumw2n +  :: (Ptr RawTH3F) -> IO CInt++foreign import ccall "HROOTHistTH3F.h TH3F_GetRMS" c_th3f_getrms +  :: (Ptr RawTH3F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_GetRMSError" c_th3f_getrmserror +  :: (Ptr RawTH3F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_GetSkewness" c_th3f_getskewness +  :: (Ptr RawTH3F) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_integral1" c_th3f_integral1 +  :: (Ptr RawTH3F) -> CInt -> CInt -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_interpolate1" c_th3f_interpolate1 +  :: (Ptr RawTH3F) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_interpolate2" c_th3f_interpolate2 +  :: (Ptr RawTH3F) -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_interpolate3" c_th3f_interpolate3 +  :: (Ptr RawTH3F) -> CDouble -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_KolmogorovTest" c_th3f_kolmogorovtest +  :: (Ptr RawTH3F) -> (Ptr RawTH1) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_LabelsDeflate" c_th3f_labelsdeflate +  :: (Ptr RawTH3F) -> CString -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_LabelsInflate" c_th3f_labelsinflate +  :: (Ptr RawTH3F) -> CString -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_LabelsOption" c_th3f_labelsoption +  :: (Ptr RawTH3F) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_multiflyF" c_th3f_multiflyf +  :: (Ptr RawTH3F) -> (Ptr RawTF1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_Multiply" c_th3f_multiply +  :: (Ptr RawTH3F) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_PutStats" c_th3f_putstats +  :: (Ptr RawTH3F) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_Rebin" c_th3f_rebin +  :: (Ptr RawTH3F) -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH3F.h TH3F_RebinAxis" c_th3f_rebinaxis +  :: (Ptr RawTH3F) -> CDouble -> (Ptr RawTAxis) -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_Rebuild" c_th3f_rebuild +  :: (Ptr RawTH3F) -> CString -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_RecursiveRemove" c_th3f_recursiveremove +  :: (Ptr RawTH3F) -> (Ptr RawTObject) -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_Reset" c_th3f_reset +  :: (Ptr RawTH3F) -> CString -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_ResetStats" c_th3f_resetstats +  :: (Ptr RawTH3F) -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_Scale" c_th3f_scale +  :: (Ptr RawTH3F) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_setAxisColorA" c_th3f_setaxiscolora +  :: (Ptr RawTH3F) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SetAxisRange" c_th3f_setaxisrange +  :: (Ptr RawTH3F) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SetBarOffset" c_th3f_setbaroffset +  :: (Ptr RawTH3F) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SetBarWidth" c_th3f_setbarwidth +  :: (Ptr RawTH3F) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_setBinContent1" c_th3f_setbincontent1 +  :: (Ptr RawTH3F) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_setBinContent2" c_th3f_setbincontent2 +  :: (Ptr RawTH3F) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_setBinContent3" c_th3f_setbincontent3 +  :: (Ptr RawTH3F) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_setBinError1" c_th3f_setbinerror1 +  :: (Ptr RawTH3F) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_setBinError2" c_th3f_setbinerror2 +  :: (Ptr RawTH3F) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_setBinError3" c_th3f_setbinerror3 +  :: (Ptr RawTH3F) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_setBins1" c_th3f_setbins1 +  :: (Ptr RawTH3F) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_setBins2" c_th3f_setbins2 +  :: (Ptr RawTH3F) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_setBins3" c_th3f_setbins3 +  :: (Ptr RawTH3F) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SetBinsLength" c_th3f_setbinslength +  :: (Ptr RawTH3F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SetBuffer" c_th3f_setbuffer +  :: (Ptr RawTH3F) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SetCellContent" c_th3f_setcellcontent +  :: (Ptr RawTH3F) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SetContent" c_th3f_setcontent +  :: (Ptr RawTH3F) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SetContour" c_th3f_setcontour +  :: (Ptr RawTH3F) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SetContourLevel" c_th3f_setcontourlevel +  :: (Ptr RawTH3F) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SetDirectory" c_th3f_setdirectory +  :: (Ptr RawTH3F) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SetEntries" c_th3f_setentries +  :: (Ptr RawTH3F) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SetError" c_th3f_seterror +  :: (Ptr RawTH3F) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_setLabelColorA" c_th3f_setlabelcolora +  :: (Ptr RawTH3F) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_setLabelSizeA" c_th3f_setlabelsizea +  :: (Ptr RawTH3F) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_setLabelFontA" c_th3f_setlabelfonta +  :: (Ptr RawTH3F) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_setLabelOffsetA" c_th3f_setlabeloffseta +  :: (Ptr RawTH3F) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SetMaximum" c_th3f_setmaximum +  :: (Ptr RawTH3F) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SetMinimum" c_th3f_setminimum +  :: (Ptr RawTH3F) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SetNormFactor" c_th3f_setnormfactor +  :: (Ptr RawTH3F) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SetStats" c_th3f_setstats +  :: (Ptr RawTH3F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SetOption" c_th3f_setoption +  :: (Ptr RawTH3F) -> CString -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SetXTitle" c_th3f_setxtitle +  :: (Ptr RawTH3F) -> CString -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SetYTitle" c_th3f_setytitle +  :: (Ptr RawTH3F) -> CString -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SetZTitle" c_th3f_setztitle +  :: (Ptr RawTH3F) -> CString -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_ShowBackground" c_th3f_showbackground +  :: (Ptr RawTH3F) -> CInt -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH3F.h TH3F_ShowPeaks" c_th3f_showpeaks +  :: (Ptr RawTH3F) -> CDouble -> CString -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3F.h TH3F_Smooth" c_th3f_smooth +  :: (Ptr RawTH3F) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_Sumw2" c_th3f_sumw2 +  :: (Ptr RawTH3F) -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_Draw" c_th3f_draw +  :: (Ptr RawTH3F) -> CString -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_FindObject" c_th3f_findobject +  :: (Ptr RawTH3F) -> CString -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTH3F.h TH3F_GetName" c_th3f_getname +  :: (Ptr RawTH3F) -> IO CString++foreign import ccall "HROOTHistTH3F.h TH3F_IsA" c_th3f_isa +  :: (Ptr RawTH3F) -> IO (Ptr RawTClass)++foreign import ccall "HROOTHistTH3F.h TH3F_Paint" c_th3f_paint +  :: (Ptr RawTH3F) -> CString -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_printObj" c_th3f_printobj +  :: (Ptr RawTH3F) -> CString -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SaveAs" c_th3f_saveas +  :: (Ptr RawTH3F) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_Write" c_th3f_write +  :: (Ptr RawTH3F) -> CString -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH3F.h TH3F_GetLineColor" c_th3f_getlinecolor +  :: (Ptr RawTH3F) -> IO CInt++foreign import ccall "HROOTHistTH3F.h TH3F_GetLineStyle" c_th3f_getlinestyle +  :: (Ptr RawTH3F) -> IO CInt++foreign import ccall "HROOTHistTH3F.h TH3F_GetLineWidth" c_th3f_getlinewidth +  :: (Ptr RawTH3F) -> IO CInt++foreign import ccall "HROOTHistTH3F.h TH3F_ResetAttLine" c_th3f_resetattline +  :: (Ptr RawTH3F) -> CString -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SetLineAttributes" c_th3f_setlineattributes +  :: (Ptr RawTH3F) -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SetLineColor" c_th3f_setlinecolor +  :: (Ptr RawTH3F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SetLineStyle" c_th3f_setlinestyle +  :: (Ptr RawTH3F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SetLineWidth" c_th3f_setlinewidth +  :: (Ptr RawTH3F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SetFillColor" c_th3f_setfillcolor +  :: (Ptr RawTH3F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SetFillStyle" c_th3f_setfillstyle +  :: (Ptr RawTH3F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_GetMarkerColor" c_th3f_getmarkercolor +  :: (Ptr RawTH3F) -> IO CInt++foreign import ccall "HROOTHistTH3F.h TH3F_GetMarkerStyle" c_th3f_getmarkerstyle +  :: (Ptr RawTH3F) -> IO CInt++foreign import ccall "HROOTHistTH3F.h TH3F_GetMarkerSize" c_th3f_getmarkersize +  :: (Ptr RawTH3F) -> IO CDouble++foreign import ccall "HROOTHistTH3F.h TH3F_ResetAttMarker" c_th3f_resetattmarker +  :: (Ptr RawTH3F) -> CString -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SetMarkerAttributes" c_th3f_setmarkerattributes +  :: (Ptr RawTH3F) -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SetMarkerColor" c_th3f_setmarkercolor +  :: (Ptr RawTH3F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SetMarkerStyle" c_th3f_setmarkerstyle +  :: (Ptr RawTH3F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_SetMarkerSize" c_th3f_setmarkersize +  :: (Ptr RawTH3F) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3F.h TH3F_delete" c_th3f_delete +  :: (Ptr RawTH3F) -> IO ()+
+ src/HROOT/Hist/TH3F/Implementation.hs view
@@ -0,0 +1,440 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, +             OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH3F.Implementation where+++import FFICXX.Runtime.Cast++import HROOT.Hist.TH3F.RawType+import HROOT.Hist.TH3F.FFI+import HROOT.Hist.TH3F.Interface+import HROOT.Hist.TH3F.Cast+import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH1D.Cast+import HROOT.Hist.TH1D.Interface+import HROOT.Hist.TF1.RawType+import HROOT.Hist.TF1.Cast+import HROOT.Hist.TF1.Interface+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TDirectory.Cast+import HROOT.Core.TDirectory.Interface+import HROOT.Core.TArrayD.RawType+import HROOT.Core.TArrayD.Cast+import HROOT.Core.TArrayD.Interface+import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.Cast+import HROOT.Hist.TAxis.Interface+import HROOT.Core.TClass.RawType+import HROOT.Core.TClass.Cast+import HROOT.Core.TClass.Interface+import HROOT.Hist.TH3.RawType+import HROOT.Hist.TH3.Cast+import HROOT.Hist.TH3.Interface+import HROOT.Core.TArrayF.RawType+import HROOT.Core.TArrayF.Cast+import HROOT.Core.TArrayF.Interface+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH1.Cast+import HROOT.Hist.TH1.Interface+import HROOT.Core.TAtt3D.RawType+import HROOT.Core.TAtt3D.Cast+import HROOT.Core.TAtt3D.Interface+import HROOT.Core.TObject.RawType+import HROOT.Core.TObject.Cast+import HROOT.Core.TObject.Interface+import HROOT.Core.TAttLine.RawType+import HROOT.Core.TAttLine.Cast+import HROOT.Core.TAttLine.Interface+import HROOT.Core.TAttFill.RawType+import HROOT.Core.TAttFill.Cast+import HROOT.Core.TAttFill.Interface+import HROOT.Core.TAttMarker.RawType+import HROOT.Core.TAttMarker.Cast+import HROOT.Core.TAttMarker.Interface+import HROOT.Core.Deletable.RawType+import HROOT.Core.Deletable.Cast+import HROOT.Core.Deletable.Interface+import HROOT.Core.TArray.RawType+import HROOT.Core.TArray.Cast+import HROOT.Core.TArray.Interface++import Data.Word+import Foreign.C+import Foreign.Ptr +import Foreign.ForeignPtr++import System.IO.Unsafe+++instance ITH3F TH3F where+instance ITH3 TH3F where+  fill3 = xform3 c_th3f_fill3+  fill3w = xform4 c_th3f_fill3w+  fitSlicesZ = xform7 c_th3f_fitslicesz+  getCorrelationFactor3 = xform2 c_th3f_getcorrelationfactor3+  getCovariance3 = xform2 c_th3f_getcovariance3+  rebinX3 = xform2 c_th3f_rebinx3+  rebinY3 = xform2 c_th3f_rebiny3+  rebinZ3 = xform2 c_th3f_rebinz3+  rebin3D = xform4 c_th3f_rebin3d+instance ITArrayF TH3F where+instance ITH1 TH3F where+  add = xform2 c_th3f_add+  addBinContent = xform2 c_th3f_addbincontent+  chi2Test = xform3 c_th3f_chi2test+  computeIntegral = xform0 c_th3f_computeintegral+  directoryAutoAdd = xform1 c_th3f_directoryautoadd+  divide = xform5 c_th3f_divide+  drawCopyTH1 = xform1 c_th3f_drawcopyth1+  drawNormalized = xform2 c_th3f_drawnormalized+  drawPanelTH1 = xform0 c_th3f_drawpanelth1+  bufferEmpty = xform1 c_th3f_bufferempty+  evalF = xform2 c_th3f_evalf+  fFT = xform2 c_th3f_fft+  fill1 = xform1 c_th3f_fill1+  fill1w = xform2 c_th3f_fill1w+  fillN1 = xform4 c_th3f_filln1+  fillRandom = xform2 c_th3f_fillrandom+  findBin = xform3 c_th3f_findbin+  findFixBin = xform3 c_th3f_findfixbin+  findFirstBinAbove = xform2 c_th3f_findfirstbinabove+  findLastBinAbove = xform2 c_th3f_findlastbinabove+  fitPanelTH1 = xform0 c_th3f_fitpanelth1+  getNdivisionA = xform1 c_th3f_getndivisiona+  getAxisColorA = xform1 c_th3f_getaxiscolora+  getLabelColorA = xform1 c_th3f_getlabelcolora+  getLabelFontA = xform1 c_th3f_getlabelfonta+  getLabelOffsetA = xform1 c_th3f_getlabeloffseta+  getLabelSizeA = xform1 c_th3f_getlabelsizea+  getTitleFontA = xform1 c_th3f_gettitlefonta+  getTitleOffsetA = xform1 c_th3f_gettitleoffseta+  getTitleSizeA = xform1 c_th3f_gettitlesizea+  getTickLengthA = xform1 c_th3f_getticklengtha+  getBarOffset = xform0 c_th3f_getbaroffset+  getBarWidth = xform0 c_th3f_getbarwidth+  getContour = xform1 c_th3f_getcontour+  getContourLevel = xform1 c_th3f_getcontourlevel+  getContourLevelPad = xform1 c_th3f_getcontourlevelpad+  getBin = xform3 c_th3f_getbin+  getBinCenter = xform1 c_th3f_getbincenter+  getBinContent1 = xform1 c_th3f_getbincontent1+  getBinContent2 = xform2 c_th3f_getbincontent2+  getBinContent3 = xform3 c_th3f_getbincontent3+  getBinError1 = xform1 c_th3f_getbinerror1+  getBinError2 = xform2 c_th3f_getbinerror2+  getBinError3 = xform3 c_th3f_getbinerror3+  getBinLowEdge = xform1 c_th3f_getbinlowedge+  getBinWidth = xform1 c_th3f_getbinwidth+  getCellContent = xform2 c_th3f_getcellcontent+  getCellError = xform2 c_th3f_getcellerror+  getEntries = xform0 c_th3f_getentries+  getEffectiveEntries = xform0 c_th3f_geteffectiveentries+  getFunction = xform1 c_th3f_getfunction+  getDimension = xform0 c_th3f_getdimension+  getKurtosis = xform1 c_th3f_getkurtosis+  getLowEdge = xform1 c_th3f_getlowedge+  getMaximumTH1 = xform1 c_th3f_getmaximumth1+  getMaximumBin = xform0 c_th3f_getmaximumbin+  getMaximumStored = xform0 c_th3f_getmaximumstored+  getMinimumTH1 = xform1 c_th3f_getminimumth1+  getMinimumBin = xform0 c_th3f_getminimumbin+  getMinimumStored = xform0 c_th3f_getminimumstored+  getMean = xform1 c_th3f_getmean+  getMeanError = xform1 c_th3f_getmeanerror+  getNbinsX = xform0 c_th3f_getnbinsx+  getNbinsY = xform0 c_th3f_getnbinsy+  getNbinsZ = xform0 c_th3f_getnbinsz+  getQuantilesTH1 = xform3 c_th3f_getquantilesth1+  getRandom = xform0 c_th3f_getrandom+  getStats = xform1 c_th3f_getstats+  getSumOfWeights = xform0 c_th3f_getsumofweights+  getSumw2 = xform0 c_th3f_getsumw2+  getSumw2N = xform0 c_th3f_getsumw2n+  getRMS = xform1 c_th3f_getrms+  getRMSError = xform1 c_th3f_getrmserror+  getSkewness = xform1 c_th3f_getskewness+  integral1 = xform3 c_th3f_integral1+  interpolate1 = xform1 c_th3f_interpolate1+  interpolate2 = xform2 c_th3f_interpolate2+  interpolate3 = xform3 c_th3f_interpolate3+  kolmogorovTest = xform2 c_th3f_kolmogorovtest+  labelsDeflate = xform1 c_th3f_labelsdeflate+  labelsInflate = xform1 c_th3f_labelsinflate+  labelsOption = xform2 c_th3f_labelsoption+  multiflyF = xform2 c_th3f_multiflyf+  multiply = xform5 c_th3f_multiply+  putStats = xform1 c_th3f_putstats+  rebin = xform3 c_th3f_rebin+  rebinAxis = xform2 c_th3f_rebinaxis+  rebuild = xform1 c_th3f_rebuild+  recursiveRemove = xform1 c_th3f_recursiveremove+  reset = xform1 c_th3f_reset+  resetStats = xform0 c_th3f_resetstats+  scale = xform2 c_th3f_scale+  setAxisColorA = xform2 c_th3f_setaxiscolora+  setAxisRange = xform3 c_th3f_setaxisrange+  setBarOffset = xform1 c_th3f_setbaroffset+  setBarWidth = xform1 c_th3f_setbarwidth+  setBinContent1 = xform2 c_th3f_setbincontent1+  setBinContent2 = xform3 c_th3f_setbincontent2+  setBinContent3 = xform4 c_th3f_setbincontent3+  setBinError1 = xform2 c_th3f_setbinerror1+  setBinError2 = xform3 c_th3f_setbinerror2+  setBinError3 = xform4 c_th3f_setbinerror3+  setBins1 = xform2 c_th3f_setbins1+  setBins2 = xform4 c_th3f_setbins2+  setBins3 = xform6 c_th3f_setbins3+  setBinsLength = xform1 c_th3f_setbinslength+  setBuffer = xform2 c_th3f_setbuffer+  setCellContent = xform3 c_th3f_setcellcontent+  setContent = xform1 c_th3f_setcontent+  setContour = xform2 c_th3f_setcontour+  setContourLevel = xform2 c_th3f_setcontourlevel+  setDirectory = xform1 c_th3f_setdirectory+  setEntries = xform1 c_th3f_setentries+  setError = xform1 c_th3f_seterror+  setLabelColorA = xform2 c_th3f_setlabelcolora+  setLabelSizeA = xform2 c_th3f_setlabelsizea+  setLabelFontA = xform2 c_th3f_setlabelfonta+  setLabelOffsetA = xform2 c_th3f_setlabeloffseta+  setMaximum = xform1 c_th3f_setmaximum+  setMinimum = xform1 c_th3f_setminimum+  setNormFactor = xform1 c_th3f_setnormfactor+  setStats = xform1 c_th3f_setstats+  setOption = xform1 c_th3f_setoption+  setXTitle = xform1 c_th3f_setxtitle+  setYTitle = xform1 c_th3f_setytitle+  setZTitle = xform1 c_th3f_setztitle+  showBackground = xform2 c_th3f_showbackground+  showPeaks = xform3 c_th3f_showpeaks+  smooth = xform2 c_th3f_smooth+  sumw2 = xform0 c_th3f_sumw2+instance ITAtt3D TH3F where+instance ITObject TH3F where+  draw = xform1 c_th3f_draw+  findObject = xform1 c_th3f_findobject+  getName = xform0 c_th3f_getname+  isA = xform0 c_th3f_isa+  paint = xform1 c_th3f_paint+  printObj = xform1 c_th3f_printobj+  saveAs = xform2 c_th3f_saveas+  write = xform3 c_th3f_write+instance ITAttLine TH3F where+  getLineColor = xform0 c_th3f_getlinecolor+  getLineStyle = xform0 c_th3f_getlinestyle+  getLineWidth = xform0 c_th3f_getlinewidth+  resetAttLine = xform1 c_th3f_resetattline+  setLineAttributes = xform0 c_th3f_setlineattributes+  setLineColor = xform1 c_th3f_setlinecolor+  setLineStyle = xform1 c_th3f_setlinestyle+  setLineWidth = xform1 c_th3f_setlinewidth+instance ITAttFill TH3F where+  setFillColor = xform1 c_th3f_setfillcolor+  setFillStyle = xform1 c_th3f_setfillstyle+instance ITAttMarker TH3F where+  getMarkerColor = xform0 c_th3f_getmarkercolor+  getMarkerStyle = xform0 c_th3f_getmarkerstyle+  getMarkerSize = xform0 c_th3f_getmarkersize+  resetAttMarker = xform1 c_th3f_resetattmarker+  setMarkerAttributes = xform0 c_th3f_setmarkerattributes+  setMarkerColor = xform1 c_th3f_setmarkercolor+  setMarkerStyle = xform1 c_th3f_setmarkerstyle+  setMarkerSize = xform1 c_th3f_setmarkersize+instance IDeletable TH3F where+  delete = xform0 c_th3f_delete+instance ITArray TH3F where++instance ITH3F (Exist TH3F) where++instance ITH3 (Exist TH3F) where+  fill3 (ETH3F x) = fill3 x+  fill3w (ETH3F x) = fill3w x+  fitSlicesZ (ETH3F x) = fitSlicesZ x+  getCorrelationFactor3 (ETH3F x) = getCorrelationFactor3 x+  getCovariance3 (ETH3F x) = getCovariance3 x+  rebinX3 (ETH3F x) = rebinX3 x+  rebinY3 (ETH3F x) = rebinY3 x+  rebinZ3 (ETH3F x) = rebinZ3 x+  rebin3D (ETH3F x) = rebin3D x+instance ITArrayF (Exist TH3F) where++instance ITH1 (Exist TH3F) where+  add (ETH3F x) = add x+  addBinContent (ETH3F x) = addBinContent x+  chi2Test (ETH3F x) = chi2Test x+  computeIntegral (ETH3F x) = computeIntegral x+  directoryAutoAdd (ETH3F x) = directoryAutoAdd x+  divide (ETH3F x) = divide x+  drawCopyTH1 (ETH3F x) a1 = return . ETH3F =<< drawCopyTH1 x a1+  drawNormalized (ETH3F x) = drawNormalized x+  drawPanelTH1 (ETH3F x) = drawPanelTH1 x+  bufferEmpty (ETH3F x) = bufferEmpty x+  evalF (ETH3F x) = evalF x+  fFT (ETH3F x) = fFT x+  fill1 (ETH3F x) = fill1 x+  fill1w (ETH3F x) = fill1w x+  fillN1 (ETH3F x) = fillN1 x+  fillRandom (ETH3F x) = fillRandom x+  findBin (ETH3F x) = findBin x+  findFixBin (ETH3F x) = findFixBin x+  findFirstBinAbove (ETH3F x) = findFirstBinAbove x+  findLastBinAbove (ETH3F x) = findLastBinAbove x+  fitPanelTH1 (ETH3F x) = fitPanelTH1 x+  getNdivisionA (ETH3F x) = getNdivisionA x+  getAxisColorA (ETH3F x) = getAxisColorA x+  getLabelColorA (ETH3F x) = getLabelColorA x+  getLabelFontA (ETH3F x) = getLabelFontA x+  getLabelOffsetA (ETH3F x) = getLabelOffsetA x+  getLabelSizeA (ETH3F x) = getLabelSizeA x+  getTitleFontA (ETH3F x) = getTitleFontA x+  getTitleOffsetA (ETH3F x) = getTitleOffsetA x+  getTitleSizeA (ETH3F x) = getTitleSizeA x+  getTickLengthA (ETH3F x) = getTickLengthA x+  getBarOffset (ETH3F x) = getBarOffset x+  getBarWidth (ETH3F x) = getBarWidth x+  getContour (ETH3F x) = getContour x+  getContourLevel (ETH3F x) = getContourLevel x+  getContourLevelPad (ETH3F x) = getContourLevelPad x+  getBin (ETH3F x) = getBin x+  getBinCenter (ETH3F x) = getBinCenter x+  getBinContent1 (ETH3F x) = getBinContent1 x+  getBinContent2 (ETH3F x) = getBinContent2 x+  getBinContent3 (ETH3F x) = getBinContent3 x+  getBinError1 (ETH3F x) = getBinError1 x+  getBinError2 (ETH3F x) = getBinError2 x+  getBinError3 (ETH3F x) = getBinError3 x+  getBinLowEdge (ETH3F x) = getBinLowEdge x+  getBinWidth (ETH3F x) = getBinWidth x+  getCellContent (ETH3F x) = getCellContent x+  getCellError (ETH3F x) = getCellError x+  getEntries (ETH3F x) = getEntries x+  getEffectiveEntries (ETH3F x) = getEffectiveEntries x+  getFunction (ETH3F x) = getFunction x+  getDimension (ETH3F x) = getDimension x+  getKurtosis (ETH3F x) = getKurtosis x+  getLowEdge (ETH3F x) = getLowEdge x+  getMaximumTH1 (ETH3F x) = getMaximumTH1 x+  getMaximumBin (ETH3F x) = getMaximumBin x+  getMaximumStored (ETH3F x) = getMaximumStored x+  getMinimumTH1 (ETH3F x) = getMinimumTH1 x+  getMinimumBin (ETH3F x) = getMinimumBin x+  getMinimumStored (ETH3F x) = getMinimumStored x+  getMean (ETH3F x) = getMean x+  getMeanError (ETH3F x) = getMeanError x+  getNbinsX (ETH3F x) = getNbinsX x+  getNbinsY (ETH3F x) = getNbinsY x+  getNbinsZ (ETH3F x) = getNbinsZ x+  getQuantilesTH1 (ETH3F x) = getQuantilesTH1 x+  getRandom (ETH3F x) = getRandom x+  getStats (ETH3F x) = getStats x+  getSumOfWeights (ETH3F x) = getSumOfWeights x+  getSumw2 (ETH3F x) = getSumw2 x+  getSumw2N (ETH3F x) = getSumw2N x+  getRMS (ETH3F x) = getRMS x+  getRMSError (ETH3F x) = getRMSError x+  getSkewness (ETH3F x) = getSkewness x+  integral1 (ETH3F x) = integral1 x+  interpolate1 (ETH3F x) = interpolate1 x+  interpolate2 (ETH3F x) = interpolate2 x+  interpolate3 (ETH3F x) = interpolate3 x+  kolmogorovTest (ETH3F x) = kolmogorovTest x+  labelsDeflate (ETH3F x) = labelsDeflate x+  labelsInflate (ETH3F x) = labelsInflate x+  labelsOption (ETH3F x) = labelsOption x+  multiflyF (ETH3F x) = multiflyF x+  multiply (ETH3F x) = multiply x+  putStats (ETH3F x) = putStats x+  rebin (ETH3F x) = rebin x+  rebinAxis (ETH3F x) = rebinAxis x+  rebuild (ETH3F x) = rebuild x+  recursiveRemove (ETH3F x) = recursiveRemove x+  reset (ETH3F x) = reset x+  resetStats (ETH3F x) = resetStats x+  scale (ETH3F x) = scale x+  setAxisColorA (ETH3F x) = setAxisColorA x+  setAxisRange (ETH3F x) = setAxisRange x+  setBarOffset (ETH3F x) = setBarOffset x+  setBarWidth (ETH3F x) = setBarWidth x+  setBinContent1 (ETH3F x) = setBinContent1 x+  setBinContent2 (ETH3F x) = setBinContent2 x+  setBinContent3 (ETH3F x) = setBinContent3 x+  setBinError1 (ETH3F x) = setBinError1 x+  setBinError2 (ETH3F x) = setBinError2 x+  setBinError3 (ETH3F x) = setBinError3 x+  setBins1 (ETH3F x) = setBins1 x+  setBins2 (ETH3F x) = setBins2 x+  setBins3 (ETH3F x) = setBins3 x+  setBinsLength (ETH3F x) = setBinsLength x+  setBuffer (ETH3F x) = setBuffer x+  setCellContent (ETH3F x) = setCellContent x+  setContent (ETH3F x) = setContent x+  setContour (ETH3F x) = setContour x+  setContourLevel (ETH3F x) = setContourLevel x+  setDirectory (ETH3F x) = setDirectory x+  setEntries (ETH3F x) = setEntries x+  setError (ETH3F x) = setError x+  setLabelColorA (ETH3F x) = setLabelColorA x+  setLabelSizeA (ETH3F x) = setLabelSizeA x+  setLabelFontA (ETH3F x) = setLabelFontA x+  setLabelOffsetA (ETH3F x) = setLabelOffsetA x+  setMaximum (ETH3F x) = setMaximum x+  setMinimum (ETH3F x) = setMinimum x+  setNormFactor (ETH3F x) = setNormFactor x+  setStats (ETH3F x) = setStats x+  setOption (ETH3F x) = setOption x+  setXTitle (ETH3F x) = setXTitle x+  setYTitle (ETH3F x) = setYTitle x+  setZTitle (ETH3F x) = setZTitle x+  showBackground (ETH3F x) = showBackground x+  showPeaks (ETH3F x) = showPeaks x+  smooth (ETH3F x) = smooth x+  sumw2 (ETH3F x) = sumw2 x+instance ITAtt3D (Exist TH3F) where++instance ITObject (Exist TH3F) where+  draw (ETH3F x) = draw x+  findObject (ETH3F x) = findObject x+  getName (ETH3F x) = getName x+  isA (ETH3F x) = isA x+  paint (ETH3F x) = paint x+  printObj (ETH3F x) = printObj x+  saveAs (ETH3F x) = saveAs x+  write (ETH3F x) = write x+instance ITAttLine (Exist TH3F) where+  getLineColor (ETH3F x) = getLineColor x+  getLineStyle (ETH3F x) = getLineStyle x+  getLineWidth (ETH3F x) = getLineWidth x+  resetAttLine (ETH3F x) = resetAttLine x+  setLineAttributes (ETH3F x) = setLineAttributes x+  setLineColor (ETH3F x) = setLineColor x+  setLineStyle (ETH3F x) = setLineStyle x+  setLineWidth (ETH3F x) = setLineWidth x+instance ITAttFill (Exist TH3F) where+  setFillColor (ETH3F x) = setFillColor x+  setFillStyle (ETH3F x) = setFillStyle x+instance ITAttMarker (Exist TH3F) where+  getMarkerColor (ETH3F x) = getMarkerColor x+  getMarkerStyle (ETH3F x) = getMarkerStyle x+  getMarkerSize (ETH3F x) = getMarkerSize x+  resetAttMarker (ETH3F x) = resetAttMarker x+  setMarkerAttributes (ETH3F x) = setMarkerAttributes x+  setMarkerColor (ETH3F x) = setMarkerColor x+  setMarkerStyle (ETH3F x) = setMarkerStyle x+  setMarkerSize (ETH3F x) = setMarkerSize x+instance IDeletable (Exist TH3F) where+  delete (ETH3F x) = delete x+instance ITArray (Exist TH3F) where+++++++++instance FPtr (Exist TH3F) where+  type Raw (Exist TH3F) = RawTH3F+  get_fptr (ETH3F obj) = castForeignPtr (get_fptr obj)+  cast_fptr_to_obj fptr = ETH3F (cast_fptr_to_obj (fptr :: ForeignPtr RawTH3F) :: TH3F)
+ src/HROOT/Hist/TH3F/Interface.hs view
@@ -0,0 +1,37 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++-- module HROOT.Class.Interface where++module HROOT.Hist.TH3F.Interface where+++import Data.Word+import Foreign.C+import Foreign.Ptr+import Foreign.ForeignPtr+import FFICXX.Runtime.Cast++import HROOT.Hist.TH3F.RawType++import HROOT.Hist.TH3.Interface+import HROOT.Core.TArrayF.Interface+---- ============ ----++++class (ITH3 a,ITArrayF a) => ITH3F a where++instance Existable TH3F where+  data Exist TH3F = forall a. (FPtr a, ITH3F a) => ETH3F a++upcastTH3F :: (FPtr a, ITH3F a) => a -> TH3F+upcastTH3F h = let fh = get_fptr h+                   fh2 :: ForeignPtr RawTH3F = castForeignPtr fh+               in cast_fptr_to_obj fh2++downcastTH3F :: (FPtr a, ITH3F a) => TH3F -> a +downcastTH3F h = let fh = get_fptr h+                     fh2 = castForeignPtr fh+                 in cast_fptr_to_obj fh2
+ src/HROOT/Hist/TH3F/RawType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++module HROOT.Hist.TH3F.RawType where+++import Foreign.ForeignPtr+import FFICXX.Runtime.Cast  ++data RawTH3F+newtype TH3F = TH3F (ForeignPtr RawTH3F) deriving (Eq, Ord, Show)+instance FPtr TH3F where+   type Raw TH3F = RawTH3F+   get_fptr (TH3F fptr) = fptr+   cast_fptr_to_obj = TH3F
+ src/HROOT/Hist/TH3I.hs view
@@ -0,0 +1,15 @@+module HROOT.Hist.TH3I+  (+    TH3I(..)+  , ITH3I+  , upcastTH3I+  , downcastTH3I++ +  ) where++import HROOT.Hist.TH3I.RawType+import HROOT.Hist.TH3I.Interface+import HROOT.Hist.TH3I.Implementation++
+ src/HROOT/Hist/TH3I/Cast.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeFamilies, +             MultiParamTypeClasses, OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH3I.Cast where+++import Foreign.Ptr+import Foreign.ForeignPtr (castForeignPtr, newForeignPtr_)+import Foreign.ForeignPtr.Unsafe+import FFICXX.Runtime.Cast+import System.IO.Unsafe++import HROOT.Hist.TH3I.RawType+import HROOT.Hist.TH3I.Interface++instance (ITH3I a, FPtr a) => Castable a (Ptr RawTH3I) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ ++instance Castable TH3I (Ptr RawTH3I) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+ src/HROOT/Hist/TH3I/FFI.hsc view
@@ -0,0 +1,525 @@+{-# LANGUAGE ForeignFunctionInterface #-}++-- module HROOT.Class.FFI where++module HROOT.Hist.TH3I.FFI where+++import Foreign.C            +import Foreign.Ptr++-- import HROOT.Class.Interface++-- #include ""++import HROOT.Hist.TH3I.RawType+import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH3.RawType+import HROOT.Hist.TF1.RawType+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TArrayD.RawType+import HROOT.Hist.TAxis.RawType+import HROOT.Core.TObject.RawType+import HROOT.Core.TClass.RawType++#include "HROOTHistTH3I.h"++foreign import ccall "HROOTHistTH3I.h TH3I_fill3" c_th3i_fill3 +  :: (Ptr RawTH3I) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3I.h TH3I_fill3w" c_th3i_fill3w +  :: (Ptr RawTH3I) -> CDouble -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3I.h TH3I_FitSlicesZ" c_th3i_fitslicesz +  :: (Ptr RawTH3I) -> (Ptr RawTF1) -> CInt -> CInt -> CInt -> CInt -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_getCorrelationFactor3" c_th3i_getcorrelationfactor3 +  :: (Ptr RawTH3I) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_getCovariance3" c_th3i_getcovariance3 +  :: (Ptr RawTH3I) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_rebinX3" c_th3i_rebinx3 +  :: (Ptr RawTH3I) -> CInt -> CString -> IO (Ptr RawTH3)++foreign import ccall "HROOTHistTH3I.h TH3I_rebinY3" c_th3i_rebiny3 +  :: (Ptr RawTH3I) -> CInt -> CString -> IO (Ptr RawTH3)++foreign import ccall "HROOTHistTH3I.h TH3I_rebinZ3" c_th3i_rebinz3 +  :: (Ptr RawTH3I) -> CInt -> CString -> IO (Ptr RawTH3)++foreign import ccall "HROOTHistTH3I.h TH3I_Rebin3D" c_th3i_rebin3d +  :: (Ptr RawTH3I) -> CInt -> CInt -> CInt -> CString -> IO (Ptr RawTH3)++foreign import ccall "HROOTHistTH3I.h TH3I_Add" c_th3i_add +  :: (Ptr RawTH3I) -> (Ptr RawTH1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_AddBinContent" c_th3i_addbincontent +  :: (Ptr RawTH3I) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_Chi2Test" c_th3i_chi2test +  :: (Ptr RawTH3I) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_ComputeIntegral" c_th3i_computeintegral +  :: (Ptr RawTH3I) -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_DirectoryAutoAdd" c_th3i_directoryautoadd +  :: (Ptr RawTH3I) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_Divide" c_th3i_divide +  :: (Ptr RawTH3I) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_drawCopyTH1" c_th3i_drawcopyth1 +  :: (Ptr RawTH3I) -> CString -> IO (Ptr RawTH3I)++foreign import ccall "HROOTHistTH3I.h TH3I_DrawNormalized" c_th3i_drawnormalized +  :: (Ptr RawTH3I) -> CString -> CDouble -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH3I.h TH3I_drawPanelTH1" c_th3i_drawpanelth1 +  :: (Ptr RawTH3I) -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_BufferEmpty" c_th3i_bufferempty +  :: (Ptr RawTH3I) -> CInt -> IO CInt++foreign import ccall "HROOTHistTH3I.h TH3I_evalF" c_th3i_evalf +  :: (Ptr RawTH3I) -> (Ptr RawTF1) -> CString -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_FFT" c_th3i_fft +  :: (Ptr RawTH3I) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH3I.h TH3I_fill1" c_th3i_fill1 +  :: (Ptr RawTH3I) -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3I.h TH3I_fill1w" c_th3i_fill1w +  :: (Ptr RawTH3I) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3I.h TH3I_fillN1" c_th3i_filln1 +  :: (Ptr RawTH3I) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_FillRandom" c_th3i_fillrandom +  :: (Ptr RawTH3I) -> (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_FindBin" c_th3i_findbin +  :: (Ptr RawTH3I) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3I.h TH3I_FindFixBin" c_th3i_findfixbin +  :: (Ptr RawTH3I) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3I.h TH3I_FindFirstBinAbove" c_th3i_findfirstbinabove +  :: (Ptr RawTH3I) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH3I.h TH3I_FindLastBinAbove" c_th3i_findlastbinabove +  :: (Ptr RawTH3I) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH3I.h TH3I_FitPanelTH1" c_th3i_fitpanelth1 +  :: (Ptr RawTH3I) -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_getNdivisionA" c_th3i_getndivisiona +  :: (Ptr RawTH3I) -> CString -> IO CInt++foreign import ccall "HROOTHistTH3I.h TH3I_getAxisColorA" c_th3i_getaxiscolora +  :: (Ptr RawTH3I) -> CString -> IO CInt++foreign import ccall "HROOTHistTH3I.h TH3I_getLabelColorA" c_th3i_getlabelcolora +  :: (Ptr RawTH3I) -> CString -> IO CInt++foreign import ccall "HROOTHistTH3I.h TH3I_getLabelFontA" c_th3i_getlabelfonta +  :: (Ptr RawTH3I) -> CString -> IO CInt++foreign import ccall "HROOTHistTH3I.h TH3I_getLabelOffsetA" c_th3i_getlabeloffseta +  :: (Ptr RawTH3I) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_getLabelSizeA" c_th3i_getlabelsizea +  :: (Ptr RawTH3I) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_getTitleFontA" c_th3i_gettitlefonta +  :: (Ptr RawTH3I) -> CString -> IO CInt++foreign import ccall "HROOTHistTH3I.h TH3I_getTitleOffsetA" c_th3i_gettitleoffseta +  :: (Ptr RawTH3I) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_getTitleSizeA" c_th3i_gettitlesizea +  :: (Ptr RawTH3I) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_getTickLengthA" c_th3i_getticklengtha +  :: (Ptr RawTH3I) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_GetBarOffset" c_th3i_getbaroffset +  :: (Ptr RawTH3I) -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_GetBarWidth" c_th3i_getbarwidth +  :: (Ptr RawTH3I) -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_GetContour" c_th3i_getcontour +  :: (Ptr RawTH3I) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH3I.h TH3I_GetContourLevel" c_th3i_getcontourlevel +  :: (Ptr RawTH3I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_GetContourLevelPad" c_th3i_getcontourlevelpad +  :: (Ptr RawTH3I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_GetBin" c_th3i_getbin +  :: (Ptr RawTH3I) -> CInt -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH3I.h TH3I_GetBinCenter" c_th3i_getbincenter +  :: (Ptr RawTH3I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_GetBinContent1" c_th3i_getbincontent1 +  :: (Ptr RawTH3I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_GetBinContent2" c_th3i_getbincontent2 +  :: (Ptr RawTH3I) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_GetBinContent3" c_th3i_getbincontent3 +  :: (Ptr RawTH3I) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_GetBinError1" c_th3i_getbinerror1 +  :: (Ptr RawTH3I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_GetBinError2" c_th3i_getbinerror2 +  :: (Ptr RawTH3I) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_GetBinError3" c_th3i_getbinerror3 +  :: (Ptr RawTH3I) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_GetBinLowEdge" c_th3i_getbinlowedge +  :: (Ptr RawTH3I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_GetBinWidth" c_th3i_getbinwidth +  :: (Ptr RawTH3I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_GetCellContent" c_th3i_getcellcontent +  :: (Ptr RawTH3I) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_GetCellError" c_th3i_getcellerror +  :: (Ptr RawTH3I) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_GetEntries" c_th3i_getentries +  :: (Ptr RawTH3I) -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_GetEffectiveEntries" c_th3i_geteffectiveentries +  :: (Ptr RawTH3I) -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_GetFunction" c_th3i_getfunction +  :: (Ptr RawTH3I) -> CString -> IO (Ptr RawTF1)++foreign import ccall "HROOTHistTH3I.h TH3I_GetDimension" c_th3i_getdimension +  :: (Ptr RawTH3I) -> IO CInt++foreign import ccall "HROOTHistTH3I.h TH3I_GetKurtosis" c_th3i_getkurtosis +  :: (Ptr RawTH3I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_GetLowEdge" c_th3i_getlowedge +  :: (Ptr RawTH3I) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_getMaximumTH1" c_th3i_getmaximumth1 +  :: (Ptr RawTH3I) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_GetMaximumBin" c_th3i_getmaximumbin +  :: (Ptr RawTH3I) -> IO CInt++foreign import ccall "HROOTHistTH3I.h TH3I_GetMaximumStored" c_th3i_getmaximumstored +  :: (Ptr RawTH3I) -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_getMinimumTH1" c_th3i_getminimumth1 +  :: (Ptr RawTH3I) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_GetMinimumBin" c_th3i_getminimumbin +  :: (Ptr RawTH3I) -> IO CInt++foreign import ccall "HROOTHistTH3I.h TH3I_GetMinimumStored" c_th3i_getminimumstored +  :: (Ptr RawTH3I) -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_GetMean" c_th3i_getmean +  :: (Ptr RawTH3I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_GetMeanError" c_th3i_getmeanerror +  :: (Ptr RawTH3I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_GetNbinsX" c_th3i_getnbinsx +  :: (Ptr RawTH3I) -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_GetNbinsY" c_th3i_getnbinsy +  :: (Ptr RawTH3I) -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_GetNbinsZ" c_th3i_getnbinsz +  :: (Ptr RawTH3I) -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_getQuantilesTH1" c_th3i_getquantilesth1 +  :: (Ptr RawTH3I) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH3I.h TH3I_GetRandom" c_th3i_getrandom +  :: (Ptr RawTH3I) -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_GetStats" c_th3i_getstats +  :: (Ptr RawTH3I) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_GetSumOfWeights" c_th3i_getsumofweights +  :: (Ptr RawTH3I) -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_GetSumw2" c_th3i_getsumw2 +  :: (Ptr RawTH3I) -> IO (Ptr RawTArrayD)++foreign import ccall "HROOTHistTH3I.h TH3I_GetSumw2N" c_th3i_getsumw2n +  :: (Ptr RawTH3I) -> IO CInt++foreign import ccall "HROOTHistTH3I.h TH3I_GetRMS" c_th3i_getrms +  :: (Ptr RawTH3I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_GetRMSError" c_th3i_getrmserror +  :: (Ptr RawTH3I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_GetSkewness" c_th3i_getskewness +  :: (Ptr RawTH3I) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_integral1" c_th3i_integral1 +  :: (Ptr RawTH3I) -> CInt -> CInt -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_interpolate1" c_th3i_interpolate1 +  :: (Ptr RawTH3I) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_interpolate2" c_th3i_interpolate2 +  :: (Ptr RawTH3I) -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_interpolate3" c_th3i_interpolate3 +  :: (Ptr RawTH3I) -> CDouble -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_KolmogorovTest" c_th3i_kolmogorovtest +  :: (Ptr RawTH3I) -> (Ptr RawTH1) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_LabelsDeflate" c_th3i_labelsdeflate +  :: (Ptr RawTH3I) -> CString -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_LabelsInflate" c_th3i_labelsinflate +  :: (Ptr RawTH3I) -> CString -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_LabelsOption" c_th3i_labelsoption +  :: (Ptr RawTH3I) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_multiflyF" c_th3i_multiflyf +  :: (Ptr RawTH3I) -> (Ptr RawTF1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_Multiply" c_th3i_multiply +  :: (Ptr RawTH3I) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_PutStats" c_th3i_putstats +  :: (Ptr RawTH3I) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_Rebin" c_th3i_rebin +  :: (Ptr RawTH3I) -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH3I.h TH3I_RebinAxis" c_th3i_rebinaxis +  :: (Ptr RawTH3I) -> CDouble -> (Ptr RawTAxis) -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_Rebuild" c_th3i_rebuild +  :: (Ptr RawTH3I) -> CString -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_RecursiveRemove" c_th3i_recursiveremove +  :: (Ptr RawTH3I) -> (Ptr RawTObject) -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_Reset" c_th3i_reset +  :: (Ptr RawTH3I) -> CString -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_ResetStats" c_th3i_resetstats +  :: (Ptr RawTH3I) -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_Scale" c_th3i_scale +  :: (Ptr RawTH3I) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_setAxisColorA" c_th3i_setaxiscolora +  :: (Ptr RawTH3I) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SetAxisRange" c_th3i_setaxisrange +  :: (Ptr RawTH3I) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SetBarOffset" c_th3i_setbaroffset +  :: (Ptr RawTH3I) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SetBarWidth" c_th3i_setbarwidth +  :: (Ptr RawTH3I) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_setBinContent1" c_th3i_setbincontent1 +  :: (Ptr RawTH3I) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_setBinContent2" c_th3i_setbincontent2 +  :: (Ptr RawTH3I) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_setBinContent3" c_th3i_setbincontent3 +  :: (Ptr RawTH3I) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_setBinError1" c_th3i_setbinerror1 +  :: (Ptr RawTH3I) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_setBinError2" c_th3i_setbinerror2 +  :: (Ptr RawTH3I) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_setBinError3" c_th3i_setbinerror3 +  :: (Ptr RawTH3I) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_setBins1" c_th3i_setbins1 +  :: (Ptr RawTH3I) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_setBins2" c_th3i_setbins2 +  :: (Ptr RawTH3I) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_setBins3" c_th3i_setbins3 +  :: (Ptr RawTH3I) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SetBinsLength" c_th3i_setbinslength +  :: (Ptr RawTH3I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SetBuffer" c_th3i_setbuffer +  :: (Ptr RawTH3I) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SetCellContent" c_th3i_setcellcontent +  :: (Ptr RawTH3I) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SetContent" c_th3i_setcontent +  :: (Ptr RawTH3I) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SetContour" c_th3i_setcontour +  :: (Ptr RawTH3I) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SetContourLevel" c_th3i_setcontourlevel +  :: (Ptr RawTH3I) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SetDirectory" c_th3i_setdirectory +  :: (Ptr RawTH3I) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SetEntries" c_th3i_setentries +  :: (Ptr RawTH3I) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SetError" c_th3i_seterror +  :: (Ptr RawTH3I) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_setLabelColorA" c_th3i_setlabelcolora +  :: (Ptr RawTH3I) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_setLabelSizeA" c_th3i_setlabelsizea +  :: (Ptr RawTH3I) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_setLabelFontA" c_th3i_setlabelfonta +  :: (Ptr RawTH3I) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_setLabelOffsetA" c_th3i_setlabeloffseta +  :: (Ptr RawTH3I) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SetMaximum" c_th3i_setmaximum +  :: (Ptr RawTH3I) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SetMinimum" c_th3i_setminimum +  :: (Ptr RawTH3I) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SetNormFactor" c_th3i_setnormfactor +  :: (Ptr RawTH3I) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SetStats" c_th3i_setstats +  :: (Ptr RawTH3I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SetOption" c_th3i_setoption +  :: (Ptr RawTH3I) -> CString -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SetXTitle" c_th3i_setxtitle +  :: (Ptr RawTH3I) -> CString -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SetYTitle" c_th3i_setytitle +  :: (Ptr RawTH3I) -> CString -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SetZTitle" c_th3i_setztitle +  :: (Ptr RawTH3I) -> CString -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_ShowBackground" c_th3i_showbackground +  :: (Ptr RawTH3I) -> CInt -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH3I.h TH3I_ShowPeaks" c_th3i_showpeaks +  :: (Ptr RawTH3I) -> CDouble -> CString -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3I.h TH3I_Smooth" c_th3i_smooth +  :: (Ptr RawTH3I) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_Sumw2" c_th3i_sumw2 +  :: (Ptr RawTH3I) -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_Draw" c_th3i_draw +  :: (Ptr RawTH3I) -> CString -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_FindObject" c_th3i_findobject +  :: (Ptr RawTH3I) -> CString -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTH3I.h TH3I_GetName" c_th3i_getname +  :: (Ptr RawTH3I) -> IO CString++foreign import ccall "HROOTHistTH3I.h TH3I_IsA" c_th3i_isa +  :: (Ptr RawTH3I) -> IO (Ptr RawTClass)++foreign import ccall "HROOTHistTH3I.h TH3I_Paint" c_th3i_paint +  :: (Ptr RawTH3I) -> CString -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_printObj" c_th3i_printobj +  :: (Ptr RawTH3I) -> CString -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SaveAs" c_th3i_saveas +  :: (Ptr RawTH3I) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_Write" c_th3i_write +  :: (Ptr RawTH3I) -> CString -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH3I.h TH3I_GetLineColor" c_th3i_getlinecolor +  :: (Ptr RawTH3I) -> IO CInt++foreign import ccall "HROOTHistTH3I.h TH3I_GetLineStyle" c_th3i_getlinestyle +  :: (Ptr RawTH3I) -> IO CInt++foreign import ccall "HROOTHistTH3I.h TH3I_GetLineWidth" c_th3i_getlinewidth +  :: (Ptr RawTH3I) -> IO CInt++foreign import ccall "HROOTHistTH3I.h TH3I_ResetAttLine" c_th3i_resetattline +  :: (Ptr RawTH3I) -> CString -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SetLineAttributes" c_th3i_setlineattributes +  :: (Ptr RawTH3I) -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SetLineColor" c_th3i_setlinecolor +  :: (Ptr RawTH3I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SetLineStyle" c_th3i_setlinestyle +  :: (Ptr RawTH3I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SetLineWidth" c_th3i_setlinewidth +  :: (Ptr RawTH3I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SetFillColor" c_th3i_setfillcolor +  :: (Ptr RawTH3I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SetFillStyle" c_th3i_setfillstyle +  :: (Ptr RawTH3I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_GetMarkerColor" c_th3i_getmarkercolor +  :: (Ptr RawTH3I) -> IO CInt++foreign import ccall "HROOTHistTH3I.h TH3I_GetMarkerStyle" c_th3i_getmarkerstyle +  :: (Ptr RawTH3I) -> IO CInt++foreign import ccall "HROOTHistTH3I.h TH3I_GetMarkerSize" c_th3i_getmarkersize +  :: (Ptr RawTH3I) -> IO CDouble++foreign import ccall "HROOTHistTH3I.h TH3I_ResetAttMarker" c_th3i_resetattmarker +  :: (Ptr RawTH3I) -> CString -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SetMarkerAttributes" c_th3i_setmarkerattributes +  :: (Ptr RawTH3I) -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SetMarkerColor" c_th3i_setmarkercolor +  :: (Ptr RawTH3I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SetMarkerStyle" c_th3i_setmarkerstyle +  :: (Ptr RawTH3I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_SetMarkerSize" c_th3i_setmarkersize +  :: (Ptr RawTH3I) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3I.h TH3I_delete" c_th3i_delete +  :: (Ptr RawTH3I) -> IO ()+
+ src/HROOT/Hist/TH3I/Implementation.hs view
@@ -0,0 +1,440 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, +             OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH3I.Implementation where+++import FFICXX.Runtime.Cast++import HROOT.Hist.TH3I.RawType+import HROOT.Hist.TH3I.FFI+import HROOT.Hist.TH3I.Interface+import HROOT.Hist.TH3I.Cast+import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH1D.Cast+import HROOT.Hist.TH1D.Interface+import HROOT.Hist.TF1.RawType+import HROOT.Hist.TF1.Cast+import HROOT.Hist.TF1.Interface+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TDirectory.Cast+import HROOT.Core.TDirectory.Interface+import HROOT.Core.TArrayD.RawType+import HROOT.Core.TArrayD.Cast+import HROOT.Core.TArrayD.Interface+import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.Cast+import HROOT.Hist.TAxis.Interface+import HROOT.Core.TClass.RawType+import HROOT.Core.TClass.Cast+import HROOT.Core.TClass.Interface+import HROOT.Hist.TH3.RawType+import HROOT.Hist.TH3.Cast+import HROOT.Hist.TH3.Interface+import HROOT.Core.TArrayI.RawType+import HROOT.Core.TArrayI.Cast+import HROOT.Core.TArrayI.Interface+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH1.Cast+import HROOT.Hist.TH1.Interface+import HROOT.Core.TAtt3D.RawType+import HROOT.Core.TAtt3D.Cast+import HROOT.Core.TAtt3D.Interface+import HROOT.Core.TObject.RawType+import HROOT.Core.TObject.Cast+import HROOT.Core.TObject.Interface+import HROOT.Core.TAttLine.RawType+import HROOT.Core.TAttLine.Cast+import HROOT.Core.TAttLine.Interface+import HROOT.Core.TAttFill.RawType+import HROOT.Core.TAttFill.Cast+import HROOT.Core.TAttFill.Interface+import HROOT.Core.TAttMarker.RawType+import HROOT.Core.TAttMarker.Cast+import HROOT.Core.TAttMarker.Interface+import HROOT.Core.Deletable.RawType+import HROOT.Core.Deletable.Cast+import HROOT.Core.Deletable.Interface+import HROOT.Core.TArray.RawType+import HROOT.Core.TArray.Cast+import HROOT.Core.TArray.Interface++import Data.Word+import Foreign.C+import Foreign.Ptr +import Foreign.ForeignPtr++import System.IO.Unsafe+++instance ITH3I TH3I where+instance ITH3 TH3I where+  fill3 = xform3 c_th3i_fill3+  fill3w = xform4 c_th3i_fill3w+  fitSlicesZ = xform7 c_th3i_fitslicesz+  getCorrelationFactor3 = xform2 c_th3i_getcorrelationfactor3+  getCovariance3 = xform2 c_th3i_getcovariance3+  rebinX3 = xform2 c_th3i_rebinx3+  rebinY3 = xform2 c_th3i_rebiny3+  rebinZ3 = xform2 c_th3i_rebinz3+  rebin3D = xform4 c_th3i_rebin3d+instance ITArrayI TH3I where+instance ITH1 TH3I where+  add = xform2 c_th3i_add+  addBinContent = xform2 c_th3i_addbincontent+  chi2Test = xform3 c_th3i_chi2test+  computeIntegral = xform0 c_th3i_computeintegral+  directoryAutoAdd = xform1 c_th3i_directoryautoadd+  divide = xform5 c_th3i_divide+  drawCopyTH1 = xform1 c_th3i_drawcopyth1+  drawNormalized = xform2 c_th3i_drawnormalized+  drawPanelTH1 = xform0 c_th3i_drawpanelth1+  bufferEmpty = xform1 c_th3i_bufferempty+  evalF = xform2 c_th3i_evalf+  fFT = xform2 c_th3i_fft+  fill1 = xform1 c_th3i_fill1+  fill1w = xform2 c_th3i_fill1w+  fillN1 = xform4 c_th3i_filln1+  fillRandom = xform2 c_th3i_fillrandom+  findBin = xform3 c_th3i_findbin+  findFixBin = xform3 c_th3i_findfixbin+  findFirstBinAbove = xform2 c_th3i_findfirstbinabove+  findLastBinAbove = xform2 c_th3i_findlastbinabove+  fitPanelTH1 = xform0 c_th3i_fitpanelth1+  getNdivisionA = xform1 c_th3i_getndivisiona+  getAxisColorA = xform1 c_th3i_getaxiscolora+  getLabelColorA = xform1 c_th3i_getlabelcolora+  getLabelFontA = xform1 c_th3i_getlabelfonta+  getLabelOffsetA = xform1 c_th3i_getlabeloffseta+  getLabelSizeA = xform1 c_th3i_getlabelsizea+  getTitleFontA = xform1 c_th3i_gettitlefonta+  getTitleOffsetA = xform1 c_th3i_gettitleoffseta+  getTitleSizeA = xform1 c_th3i_gettitlesizea+  getTickLengthA = xform1 c_th3i_getticklengtha+  getBarOffset = xform0 c_th3i_getbaroffset+  getBarWidth = xform0 c_th3i_getbarwidth+  getContour = xform1 c_th3i_getcontour+  getContourLevel = xform1 c_th3i_getcontourlevel+  getContourLevelPad = xform1 c_th3i_getcontourlevelpad+  getBin = xform3 c_th3i_getbin+  getBinCenter = xform1 c_th3i_getbincenter+  getBinContent1 = xform1 c_th3i_getbincontent1+  getBinContent2 = xform2 c_th3i_getbincontent2+  getBinContent3 = xform3 c_th3i_getbincontent3+  getBinError1 = xform1 c_th3i_getbinerror1+  getBinError2 = xform2 c_th3i_getbinerror2+  getBinError3 = xform3 c_th3i_getbinerror3+  getBinLowEdge = xform1 c_th3i_getbinlowedge+  getBinWidth = xform1 c_th3i_getbinwidth+  getCellContent = xform2 c_th3i_getcellcontent+  getCellError = xform2 c_th3i_getcellerror+  getEntries = xform0 c_th3i_getentries+  getEffectiveEntries = xform0 c_th3i_geteffectiveentries+  getFunction = xform1 c_th3i_getfunction+  getDimension = xform0 c_th3i_getdimension+  getKurtosis = xform1 c_th3i_getkurtosis+  getLowEdge = xform1 c_th3i_getlowedge+  getMaximumTH1 = xform1 c_th3i_getmaximumth1+  getMaximumBin = xform0 c_th3i_getmaximumbin+  getMaximumStored = xform0 c_th3i_getmaximumstored+  getMinimumTH1 = xform1 c_th3i_getminimumth1+  getMinimumBin = xform0 c_th3i_getminimumbin+  getMinimumStored = xform0 c_th3i_getminimumstored+  getMean = xform1 c_th3i_getmean+  getMeanError = xform1 c_th3i_getmeanerror+  getNbinsX = xform0 c_th3i_getnbinsx+  getNbinsY = xform0 c_th3i_getnbinsy+  getNbinsZ = xform0 c_th3i_getnbinsz+  getQuantilesTH1 = xform3 c_th3i_getquantilesth1+  getRandom = xform0 c_th3i_getrandom+  getStats = xform1 c_th3i_getstats+  getSumOfWeights = xform0 c_th3i_getsumofweights+  getSumw2 = xform0 c_th3i_getsumw2+  getSumw2N = xform0 c_th3i_getsumw2n+  getRMS = xform1 c_th3i_getrms+  getRMSError = xform1 c_th3i_getrmserror+  getSkewness = xform1 c_th3i_getskewness+  integral1 = xform3 c_th3i_integral1+  interpolate1 = xform1 c_th3i_interpolate1+  interpolate2 = xform2 c_th3i_interpolate2+  interpolate3 = xform3 c_th3i_interpolate3+  kolmogorovTest = xform2 c_th3i_kolmogorovtest+  labelsDeflate = xform1 c_th3i_labelsdeflate+  labelsInflate = xform1 c_th3i_labelsinflate+  labelsOption = xform2 c_th3i_labelsoption+  multiflyF = xform2 c_th3i_multiflyf+  multiply = xform5 c_th3i_multiply+  putStats = xform1 c_th3i_putstats+  rebin = xform3 c_th3i_rebin+  rebinAxis = xform2 c_th3i_rebinaxis+  rebuild = xform1 c_th3i_rebuild+  recursiveRemove = xform1 c_th3i_recursiveremove+  reset = xform1 c_th3i_reset+  resetStats = xform0 c_th3i_resetstats+  scale = xform2 c_th3i_scale+  setAxisColorA = xform2 c_th3i_setaxiscolora+  setAxisRange = xform3 c_th3i_setaxisrange+  setBarOffset = xform1 c_th3i_setbaroffset+  setBarWidth = xform1 c_th3i_setbarwidth+  setBinContent1 = xform2 c_th3i_setbincontent1+  setBinContent2 = xform3 c_th3i_setbincontent2+  setBinContent3 = xform4 c_th3i_setbincontent3+  setBinError1 = xform2 c_th3i_setbinerror1+  setBinError2 = xform3 c_th3i_setbinerror2+  setBinError3 = xform4 c_th3i_setbinerror3+  setBins1 = xform2 c_th3i_setbins1+  setBins2 = xform4 c_th3i_setbins2+  setBins3 = xform6 c_th3i_setbins3+  setBinsLength = xform1 c_th3i_setbinslength+  setBuffer = xform2 c_th3i_setbuffer+  setCellContent = xform3 c_th3i_setcellcontent+  setContent = xform1 c_th3i_setcontent+  setContour = xform2 c_th3i_setcontour+  setContourLevel = xform2 c_th3i_setcontourlevel+  setDirectory = xform1 c_th3i_setdirectory+  setEntries = xform1 c_th3i_setentries+  setError = xform1 c_th3i_seterror+  setLabelColorA = xform2 c_th3i_setlabelcolora+  setLabelSizeA = xform2 c_th3i_setlabelsizea+  setLabelFontA = xform2 c_th3i_setlabelfonta+  setLabelOffsetA = xform2 c_th3i_setlabeloffseta+  setMaximum = xform1 c_th3i_setmaximum+  setMinimum = xform1 c_th3i_setminimum+  setNormFactor = xform1 c_th3i_setnormfactor+  setStats = xform1 c_th3i_setstats+  setOption = xform1 c_th3i_setoption+  setXTitle = xform1 c_th3i_setxtitle+  setYTitle = xform1 c_th3i_setytitle+  setZTitle = xform1 c_th3i_setztitle+  showBackground = xform2 c_th3i_showbackground+  showPeaks = xform3 c_th3i_showpeaks+  smooth = xform2 c_th3i_smooth+  sumw2 = xform0 c_th3i_sumw2+instance ITAtt3D TH3I where+instance ITObject TH3I where+  draw = xform1 c_th3i_draw+  findObject = xform1 c_th3i_findobject+  getName = xform0 c_th3i_getname+  isA = xform0 c_th3i_isa+  paint = xform1 c_th3i_paint+  printObj = xform1 c_th3i_printobj+  saveAs = xform2 c_th3i_saveas+  write = xform3 c_th3i_write+instance ITAttLine TH3I where+  getLineColor = xform0 c_th3i_getlinecolor+  getLineStyle = xform0 c_th3i_getlinestyle+  getLineWidth = xform0 c_th3i_getlinewidth+  resetAttLine = xform1 c_th3i_resetattline+  setLineAttributes = xform0 c_th3i_setlineattributes+  setLineColor = xform1 c_th3i_setlinecolor+  setLineStyle = xform1 c_th3i_setlinestyle+  setLineWidth = xform1 c_th3i_setlinewidth+instance ITAttFill TH3I where+  setFillColor = xform1 c_th3i_setfillcolor+  setFillStyle = xform1 c_th3i_setfillstyle+instance ITAttMarker TH3I where+  getMarkerColor = xform0 c_th3i_getmarkercolor+  getMarkerStyle = xform0 c_th3i_getmarkerstyle+  getMarkerSize = xform0 c_th3i_getmarkersize+  resetAttMarker = xform1 c_th3i_resetattmarker+  setMarkerAttributes = xform0 c_th3i_setmarkerattributes+  setMarkerColor = xform1 c_th3i_setmarkercolor+  setMarkerStyle = xform1 c_th3i_setmarkerstyle+  setMarkerSize = xform1 c_th3i_setmarkersize+instance IDeletable TH3I where+  delete = xform0 c_th3i_delete+instance ITArray TH3I where++instance ITH3I (Exist TH3I) where++instance ITH3 (Exist TH3I) where+  fill3 (ETH3I x) = fill3 x+  fill3w (ETH3I x) = fill3w x+  fitSlicesZ (ETH3I x) = fitSlicesZ x+  getCorrelationFactor3 (ETH3I x) = getCorrelationFactor3 x+  getCovariance3 (ETH3I x) = getCovariance3 x+  rebinX3 (ETH3I x) = rebinX3 x+  rebinY3 (ETH3I x) = rebinY3 x+  rebinZ3 (ETH3I x) = rebinZ3 x+  rebin3D (ETH3I x) = rebin3D x+instance ITArrayI (Exist TH3I) where++instance ITH1 (Exist TH3I) where+  add (ETH3I x) = add x+  addBinContent (ETH3I x) = addBinContent x+  chi2Test (ETH3I x) = chi2Test x+  computeIntegral (ETH3I x) = computeIntegral x+  directoryAutoAdd (ETH3I x) = directoryAutoAdd x+  divide (ETH3I x) = divide x+  drawCopyTH1 (ETH3I x) a1 = return . ETH3I =<< drawCopyTH1 x a1+  drawNormalized (ETH3I x) = drawNormalized x+  drawPanelTH1 (ETH3I x) = drawPanelTH1 x+  bufferEmpty (ETH3I x) = bufferEmpty x+  evalF (ETH3I x) = evalF x+  fFT (ETH3I x) = fFT x+  fill1 (ETH3I x) = fill1 x+  fill1w (ETH3I x) = fill1w x+  fillN1 (ETH3I x) = fillN1 x+  fillRandom (ETH3I x) = fillRandom x+  findBin (ETH3I x) = findBin x+  findFixBin (ETH3I x) = findFixBin x+  findFirstBinAbove (ETH3I x) = findFirstBinAbove x+  findLastBinAbove (ETH3I x) = findLastBinAbove x+  fitPanelTH1 (ETH3I x) = fitPanelTH1 x+  getNdivisionA (ETH3I x) = getNdivisionA x+  getAxisColorA (ETH3I x) = getAxisColorA x+  getLabelColorA (ETH3I x) = getLabelColorA x+  getLabelFontA (ETH3I x) = getLabelFontA x+  getLabelOffsetA (ETH3I x) = getLabelOffsetA x+  getLabelSizeA (ETH3I x) = getLabelSizeA x+  getTitleFontA (ETH3I x) = getTitleFontA x+  getTitleOffsetA (ETH3I x) = getTitleOffsetA x+  getTitleSizeA (ETH3I x) = getTitleSizeA x+  getTickLengthA (ETH3I x) = getTickLengthA x+  getBarOffset (ETH3I x) = getBarOffset x+  getBarWidth (ETH3I x) = getBarWidth x+  getContour (ETH3I x) = getContour x+  getContourLevel (ETH3I x) = getContourLevel x+  getContourLevelPad (ETH3I x) = getContourLevelPad x+  getBin (ETH3I x) = getBin x+  getBinCenter (ETH3I x) = getBinCenter x+  getBinContent1 (ETH3I x) = getBinContent1 x+  getBinContent2 (ETH3I x) = getBinContent2 x+  getBinContent3 (ETH3I x) = getBinContent3 x+  getBinError1 (ETH3I x) = getBinError1 x+  getBinError2 (ETH3I x) = getBinError2 x+  getBinError3 (ETH3I x) = getBinError3 x+  getBinLowEdge (ETH3I x) = getBinLowEdge x+  getBinWidth (ETH3I x) = getBinWidth x+  getCellContent (ETH3I x) = getCellContent x+  getCellError (ETH3I x) = getCellError x+  getEntries (ETH3I x) = getEntries x+  getEffectiveEntries (ETH3I x) = getEffectiveEntries x+  getFunction (ETH3I x) = getFunction x+  getDimension (ETH3I x) = getDimension x+  getKurtosis (ETH3I x) = getKurtosis x+  getLowEdge (ETH3I x) = getLowEdge x+  getMaximumTH1 (ETH3I x) = getMaximumTH1 x+  getMaximumBin (ETH3I x) = getMaximumBin x+  getMaximumStored (ETH3I x) = getMaximumStored x+  getMinimumTH1 (ETH3I x) = getMinimumTH1 x+  getMinimumBin (ETH3I x) = getMinimumBin x+  getMinimumStored (ETH3I x) = getMinimumStored x+  getMean (ETH3I x) = getMean x+  getMeanError (ETH3I x) = getMeanError x+  getNbinsX (ETH3I x) = getNbinsX x+  getNbinsY (ETH3I x) = getNbinsY x+  getNbinsZ (ETH3I x) = getNbinsZ x+  getQuantilesTH1 (ETH3I x) = getQuantilesTH1 x+  getRandom (ETH3I x) = getRandom x+  getStats (ETH3I x) = getStats x+  getSumOfWeights (ETH3I x) = getSumOfWeights x+  getSumw2 (ETH3I x) = getSumw2 x+  getSumw2N (ETH3I x) = getSumw2N x+  getRMS (ETH3I x) = getRMS x+  getRMSError (ETH3I x) = getRMSError x+  getSkewness (ETH3I x) = getSkewness x+  integral1 (ETH3I x) = integral1 x+  interpolate1 (ETH3I x) = interpolate1 x+  interpolate2 (ETH3I x) = interpolate2 x+  interpolate3 (ETH3I x) = interpolate3 x+  kolmogorovTest (ETH3I x) = kolmogorovTest x+  labelsDeflate (ETH3I x) = labelsDeflate x+  labelsInflate (ETH3I x) = labelsInflate x+  labelsOption (ETH3I x) = labelsOption x+  multiflyF (ETH3I x) = multiflyF x+  multiply (ETH3I x) = multiply x+  putStats (ETH3I x) = putStats x+  rebin (ETH3I x) = rebin x+  rebinAxis (ETH3I x) = rebinAxis x+  rebuild (ETH3I x) = rebuild x+  recursiveRemove (ETH3I x) = recursiveRemove x+  reset (ETH3I x) = reset x+  resetStats (ETH3I x) = resetStats x+  scale (ETH3I x) = scale x+  setAxisColorA (ETH3I x) = setAxisColorA x+  setAxisRange (ETH3I x) = setAxisRange x+  setBarOffset (ETH3I x) = setBarOffset x+  setBarWidth (ETH3I x) = setBarWidth x+  setBinContent1 (ETH3I x) = setBinContent1 x+  setBinContent2 (ETH3I x) = setBinContent2 x+  setBinContent3 (ETH3I x) = setBinContent3 x+  setBinError1 (ETH3I x) = setBinError1 x+  setBinError2 (ETH3I x) = setBinError2 x+  setBinError3 (ETH3I x) = setBinError3 x+  setBins1 (ETH3I x) = setBins1 x+  setBins2 (ETH3I x) = setBins2 x+  setBins3 (ETH3I x) = setBins3 x+  setBinsLength (ETH3I x) = setBinsLength x+  setBuffer (ETH3I x) = setBuffer x+  setCellContent (ETH3I x) = setCellContent x+  setContent (ETH3I x) = setContent x+  setContour (ETH3I x) = setContour x+  setContourLevel (ETH3I x) = setContourLevel x+  setDirectory (ETH3I x) = setDirectory x+  setEntries (ETH3I x) = setEntries x+  setError (ETH3I x) = setError x+  setLabelColorA (ETH3I x) = setLabelColorA x+  setLabelSizeA (ETH3I x) = setLabelSizeA x+  setLabelFontA (ETH3I x) = setLabelFontA x+  setLabelOffsetA (ETH3I x) = setLabelOffsetA x+  setMaximum (ETH3I x) = setMaximum x+  setMinimum (ETH3I x) = setMinimum x+  setNormFactor (ETH3I x) = setNormFactor x+  setStats (ETH3I x) = setStats x+  setOption (ETH3I x) = setOption x+  setXTitle (ETH3I x) = setXTitle x+  setYTitle (ETH3I x) = setYTitle x+  setZTitle (ETH3I x) = setZTitle x+  showBackground (ETH3I x) = showBackground x+  showPeaks (ETH3I x) = showPeaks x+  smooth (ETH3I x) = smooth x+  sumw2 (ETH3I x) = sumw2 x+instance ITAtt3D (Exist TH3I) where++instance ITObject (Exist TH3I) where+  draw (ETH3I x) = draw x+  findObject (ETH3I x) = findObject x+  getName (ETH3I x) = getName x+  isA (ETH3I x) = isA x+  paint (ETH3I x) = paint x+  printObj (ETH3I x) = printObj x+  saveAs (ETH3I x) = saveAs x+  write (ETH3I x) = write x+instance ITAttLine (Exist TH3I) where+  getLineColor (ETH3I x) = getLineColor x+  getLineStyle (ETH3I x) = getLineStyle x+  getLineWidth (ETH3I x) = getLineWidth x+  resetAttLine (ETH3I x) = resetAttLine x+  setLineAttributes (ETH3I x) = setLineAttributes x+  setLineColor (ETH3I x) = setLineColor x+  setLineStyle (ETH3I x) = setLineStyle x+  setLineWidth (ETH3I x) = setLineWidth x+instance ITAttFill (Exist TH3I) where+  setFillColor (ETH3I x) = setFillColor x+  setFillStyle (ETH3I x) = setFillStyle x+instance ITAttMarker (Exist TH3I) where+  getMarkerColor (ETH3I x) = getMarkerColor x+  getMarkerStyle (ETH3I x) = getMarkerStyle x+  getMarkerSize (ETH3I x) = getMarkerSize x+  resetAttMarker (ETH3I x) = resetAttMarker x+  setMarkerAttributes (ETH3I x) = setMarkerAttributes x+  setMarkerColor (ETH3I x) = setMarkerColor x+  setMarkerStyle (ETH3I x) = setMarkerStyle x+  setMarkerSize (ETH3I x) = setMarkerSize x+instance IDeletable (Exist TH3I) where+  delete (ETH3I x) = delete x+instance ITArray (Exist TH3I) where+++++++++instance FPtr (Exist TH3I) where+  type Raw (Exist TH3I) = RawTH3I+  get_fptr (ETH3I obj) = castForeignPtr (get_fptr obj)+  cast_fptr_to_obj fptr = ETH3I (cast_fptr_to_obj (fptr :: ForeignPtr RawTH3I) :: TH3I)
+ src/HROOT/Hist/TH3I/Interface.hs view
@@ -0,0 +1,37 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++-- module HROOT.Class.Interface where++module HROOT.Hist.TH3I.Interface where+++import Data.Word+import Foreign.C+import Foreign.Ptr+import Foreign.ForeignPtr+import FFICXX.Runtime.Cast++import HROOT.Hist.TH3I.RawType++import HROOT.Hist.TH3.Interface+import HROOT.Core.TArrayI.Interface+---- ============ ----++++class (ITH3 a,ITArrayI a) => ITH3I a where++instance Existable TH3I where+  data Exist TH3I = forall a. (FPtr a, ITH3I a) => ETH3I a++upcastTH3I :: (FPtr a, ITH3I a) => a -> TH3I+upcastTH3I h = let fh = get_fptr h+                   fh2 :: ForeignPtr RawTH3I = castForeignPtr fh+               in cast_fptr_to_obj fh2++downcastTH3I :: (FPtr a, ITH3I a) => TH3I -> a +downcastTH3I h = let fh = get_fptr h+                     fh2 = castForeignPtr fh+                 in cast_fptr_to_obj fh2
+ src/HROOT/Hist/TH3I/RawType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++module HROOT.Hist.TH3I.RawType where+++import Foreign.ForeignPtr+import FFICXX.Runtime.Cast  ++data RawTH3I+newtype TH3I = TH3I (ForeignPtr RawTH3I) deriving (Eq, Ord, Show)+instance FPtr TH3I where+   type Raw TH3I = RawTH3I+   get_fptr (TH3I fptr) = fptr+   cast_fptr_to_obj = TH3I
+ src/HROOT/Hist/TH3S.hs view
@@ -0,0 +1,15 @@+module HROOT.Hist.TH3S+  (+    TH3S(..)+  , ITH3S+  , upcastTH3S+  , downcastTH3S++ +  ) where++import HROOT.Hist.TH3S.RawType+import HROOT.Hist.TH3S.Interface+import HROOT.Hist.TH3S.Implementation++
+ src/HROOT/Hist/TH3S/Cast.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeFamilies, +             MultiParamTypeClasses, OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH3S.Cast where+++import Foreign.Ptr+import Foreign.ForeignPtr (castForeignPtr, newForeignPtr_)+import Foreign.ForeignPtr.Unsafe+import FFICXX.Runtime.Cast+import System.IO.Unsafe++import HROOT.Hist.TH3S.RawType+import HROOT.Hist.TH3S.Interface++instance (ITH3S a, FPtr a) => Castable a (Ptr RawTH3S) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ ++instance Castable TH3S (Ptr RawTH3S) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+ src/HROOT/Hist/TH3S/FFI.hsc view
@@ -0,0 +1,525 @@+{-# LANGUAGE ForeignFunctionInterface #-}++-- module HROOT.Class.FFI where++module HROOT.Hist.TH3S.FFI where+++import Foreign.C            +import Foreign.Ptr++-- import HROOT.Class.Interface++-- #include ""++import HROOT.Hist.TH3S.RawType+import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH3.RawType+import HROOT.Hist.TF1.RawType+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TArrayD.RawType+import HROOT.Hist.TAxis.RawType+import HROOT.Core.TObject.RawType+import HROOT.Core.TClass.RawType++#include "HROOTHistTH3S.h"++foreign import ccall "HROOTHistTH3S.h TH3S_fill3" c_th3s_fill3 +  :: (Ptr RawTH3S) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3S.h TH3S_fill3w" c_th3s_fill3w +  :: (Ptr RawTH3S) -> CDouble -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3S.h TH3S_FitSlicesZ" c_th3s_fitslicesz +  :: (Ptr RawTH3S) -> (Ptr RawTF1) -> CInt -> CInt -> CInt -> CInt -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_getCorrelationFactor3" c_th3s_getcorrelationfactor3 +  :: (Ptr RawTH3S) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_getCovariance3" c_th3s_getcovariance3 +  :: (Ptr RawTH3S) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_rebinX3" c_th3s_rebinx3 +  :: (Ptr RawTH3S) -> CInt -> CString -> IO (Ptr RawTH3)++foreign import ccall "HROOTHistTH3S.h TH3S_rebinY3" c_th3s_rebiny3 +  :: (Ptr RawTH3S) -> CInt -> CString -> IO (Ptr RawTH3)++foreign import ccall "HROOTHistTH3S.h TH3S_rebinZ3" c_th3s_rebinz3 +  :: (Ptr RawTH3S) -> CInt -> CString -> IO (Ptr RawTH3)++foreign import ccall "HROOTHistTH3S.h TH3S_Rebin3D" c_th3s_rebin3d +  :: (Ptr RawTH3S) -> CInt -> CInt -> CInt -> CString -> IO (Ptr RawTH3)++foreign import ccall "HROOTHistTH3S.h TH3S_Add" c_th3s_add +  :: (Ptr RawTH3S) -> (Ptr RawTH1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_AddBinContent" c_th3s_addbincontent +  :: (Ptr RawTH3S) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_Chi2Test" c_th3s_chi2test +  :: (Ptr RawTH3S) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_ComputeIntegral" c_th3s_computeintegral +  :: (Ptr RawTH3S) -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_DirectoryAutoAdd" c_th3s_directoryautoadd +  :: (Ptr RawTH3S) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_Divide" c_th3s_divide +  :: (Ptr RawTH3S) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_drawCopyTH1" c_th3s_drawcopyth1 +  :: (Ptr RawTH3S) -> CString -> IO (Ptr RawTH3S)++foreign import ccall "HROOTHistTH3S.h TH3S_DrawNormalized" c_th3s_drawnormalized +  :: (Ptr RawTH3S) -> CString -> CDouble -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH3S.h TH3S_drawPanelTH1" c_th3s_drawpanelth1 +  :: (Ptr RawTH3S) -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_BufferEmpty" c_th3s_bufferempty +  :: (Ptr RawTH3S) -> CInt -> IO CInt++foreign import ccall "HROOTHistTH3S.h TH3S_evalF" c_th3s_evalf +  :: (Ptr RawTH3S) -> (Ptr RawTF1) -> CString -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_FFT" c_th3s_fft +  :: (Ptr RawTH3S) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH3S.h TH3S_fill1" c_th3s_fill1 +  :: (Ptr RawTH3S) -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3S.h TH3S_fill1w" c_th3s_fill1w +  :: (Ptr RawTH3S) -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3S.h TH3S_fillN1" c_th3s_filln1 +  :: (Ptr RawTH3S) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_FillRandom" c_th3s_fillrandom +  :: (Ptr RawTH3S) -> (Ptr RawTH1) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_FindBin" c_th3s_findbin +  :: (Ptr RawTH3S) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3S.h TH3S_FindFixBin" c_th3s_findfixbin +  :: (Ptr RawTH3S) -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3S.h TH3S_FindFirstBinAbove" c_th3s_findfirstbinabove +  :: (Ptr RawTH3S) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH3S.h TH3S_FindLastBinAbove" c_th3s_findlastbinabove +  :: (Ptr RawTH3S) -> CDouble -> CInt -> IO CInt++foreign import ccall "HROOTHistTH3S.h TH3S_FitPanelTH1" c_th3s_fitpanelth1 +  :: (Ptr RawTH3S) -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_getNdivisionA" c_th3s_getndivisiona +  :: (Ptr RawTH3S) -> CString -> IO CInt++foreign import ccall "HROOTHistTH3S.h TH3S_getAxisColorA" c_th3s_getaxiscolora +  :: (Ptr RawTH3S) -> CString -> IO CInt++foreign import ccall "HROOTHistTH3S.h TH3S_getLabelColorA" c_th3s_getlabelcolora +  :: (Ptr RawTH3S) -> CString -> IO CInt++foreign import ccall "HROOTHistTH3S.h TH3S_getLabelFontA" c_th3s_getlabelfonta +  :: (Ptr RawTH3S) -> CString -> IO CInt++foreign import ccall "HROOTHistTH3S.h TH3S_getLabelOffsetA" c_th3s_getlabeloffseta +  :: (Ptr RawTH3S) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_getLabelSizeA" c_th3s_getlabelsizea +  :: (Ptr RawTH3S) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_getTitleFontA" c_th3s_gettitlefonta +  :: (Ptr RawTH3S) -> CString -> IO CInt++foreign import ccall "HROOTHistTH3S.h TH3S_getTitleOffsetA" c_th3s_gettitleoffseta +  :: (Ptr RawTH3S) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_getTitleSizeA" c_th3s_gettitlesizea +  :: (Ptr RawTH3S) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_getTickLengthA" c_th3s_getticklengtha +  :: (Ptr RawTH3S) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_GetBarOffset" c_th3s_getbaroffset +  :: (Ptr RawTH3S) -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_GetBarWidth" c_th3s_getbarwidth +  :: (Ptr RawTH3S) -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_GetContour" c_th3s_getcontour +  :: (Ptr RawTH3S) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH3S.h TH3S_GetContourLevel" c_th3s_getcontourlevel +  :: (Ptr RawTH3S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_GetContourLevelPad" c_th3s_getcontourlevelpad +  :: (Ptr RawTH3S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_GetBin" c_th3s_getbin +  :: (Ptr RawTH3S) -> CInt -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH3S.h TH3S_GetBinCenter" c_th3s_getbincenter +  :: (Ptr RawTH3S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_GetBinContent1" c_th3s_getbincontent1 +  :: (Ptr RawTH3S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_GetBinContent2" c_th3s_getbincontent2 +  :: (Ptr RawTH3S) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_GetBinContent3" c_th3s_getbincontent3 +  :: (Ptr RawTH3S) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_GetBinError1" c_th3s_getbinerror1 +  :: (Ptr RawTH3S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_GetBinError2" c_th3s_getbinerror2 +  :: (Ptr RawTH3S) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_GetBinError3" c_th3s_getbinerror3 +  :: (Ptr RawTH3S) -> CInt -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_GetBinLowEdge" c_th3s_getbinlowedge +  :: (Ptr RawTH3S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_GetBinWidth" c_th3s_getbinwidth +  :: (Ptr RawTH3S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_GetCellContent" c_th3s_getcellcontent +  :: (Ptr RawTH3S) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_GetCellError" c_th3s_getcellerror +  :: (Ptr RawTH3S) -> CInt -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_GetEntries" c_th3s_getentries +  :: (Ptr RawTH3S) -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_GetEffectiveEntries" c_th3s_geteffectiveentries +  :: (Ptr RawTH3S) -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_GetFunction" c_th3s_getfunction +  :: (Ptr RawTH3S) -> CString -> IO (Ptr RawTF1)++foreign import ccall "HROOTHistTH3S.h TH3S_GetDimension" c_th3s_getdimension +  :: (Ptr RawTH3S) -> IO CInt++foreign import ccall "HROOTHistTH3S.h TH3S_GetKurtosis" c_th3s_getkurtosis +  :: (Ptr RawTH3S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_GetLowEdge" c_th3s_getlowedge +  :: (Ptr RawTH3S) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_getMaximumTH1" c_th3s_getmaximumth1 +  :: (Ptr RawTH3S) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_GetMaximumBin" c_th3s_getmaximumbin +  :: (Ptr RawTH3S) -> IO CInt++foreign import ccall "HROOTHistTH3S.h TH3S_GetMaximumStored" c_th3s_getmaximumstored +  :: (Ptr RawTH3S) -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_getMinimumTH1" c_th3s_getminimumth1 +  :: (Ptr RawTH3S) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_GetMinimumBin" c_th3s_getminimumbin +  :: (Ptr RawTH3S) -> IO CInt++foreign import ccall "HROOTHistTH3S.h TH3S_GetMinimumStored" c_th3s_getminimumstored +  :: (Ptr RawTH3S) -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_GetMean" c_th3s_getmean +  :: (Ptr RawTH3S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_GetMeanError" c_th3s_getmeanerror +  :: (Ptr RawTH3S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_GetNbinsX" c_th3s_getnbinsx +  :: (Ptr RawTH3S) -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_GetNbinsY" c_th3s_getnbinsy +  :: (Ptr RawTH3S) -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_GetNbinsZ" c_th3s_getnbinsz +  :: (Ptr RawTH3S) -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_getQuantilesTH1" c_th3s_getquantilesth1 +  :: (Ptr RawTH3S) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt++foreign import ccall "HROOTHistTH3S.h TH3S_GetRandom" c_th3s_getrandom +  :: (Ptr RawTH3S) -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_GetStats" c_th3s_getstats +  :: (Ptr RawTH3S) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_GetSumOfWeights" c_th3s_getsumofweights +  :: (Ptr RawTH3S) -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_GetSumw2" c_th3s_getsumw2 +  :: (Ptr RawTH3S) -> IO (Ptr RawTArrayD)++foreign import ccall "HROOTHistTH3S.h TH3S_GetSumw2N" c_th3s_getsumw2n +  :: (Ptr RawTH3S) -> IO CInt++foreign import ccall "HROOTHistTH3S.h TH3S_GetRMS" c_th3s_getrms +  :: (Ptr RawTH3S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_GetRMSError" c_th3s_getrmserror +  :: (Ptr RawTH3S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_GetSkewness" c_th3s_getskewness +  :: (Ptr RawTH3S) -> CInt -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_integral1" c_th3s_integral1 +  :: (Ptr RawTH3S) -> CInt -> CInt -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_interpolate1" c_th3s_interpolate1 +  :: (Ptr RawTH3S) -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_interpolate2" c_th3s_interpolate2 +  :: (Ptr RawTH3S) -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_interpolate3" c_th3s_interpolate3 +  :: (Ptr RawTH3S) -> CDouble -> CDouble -> CDouble -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_KolmogorovTest" c_th3s_kolmogorovtest +  :: (Ptr RawTH3S) -> (Ptr RawTH1) -> CString -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_LabelsDeflate" c_th3s_labelsdeflate +  :: (Ptr RawTH3S) -> CString -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_LabelsInflate" c_th3s_labelsinflate +  :: (Ptr RawTH3S) -> CString -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_LabelsOption" c_th3s_labelsoption +  :: (Ptr RawTH3S) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_multiflyF" c_th3s_multiflyf +  :: (Ptr RawTH3S) -> (Ptr RawTF1) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_Multiply" c_th3s_multiply +  :: (Ptr RawTH3S) -> (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_PutStats" c_th3s_putstats +  :: (Ptr RawTH3S) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_Rebin" c_th3s_rebin +  :: (Ptr RawTH3S) -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH3S.h TH3S_RebinAxis" c_th3s_rebinaxis +  :: (Ptr RawTH3S) -> CDouble -> (Ptr RawTAxis) -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_Rebuild" c_th3s_rebuild +  :: (Ptr RawTH3S) -> CString -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_RecursiveRemove" c_th3s_recursiveremove +  :: (Ptr RawTH3S) -> (Ptr RawTObject) -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_Reset" c_th3s_reset +  :: (Ptr RawTH3S) -> CString -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_ResetStats" c_th3s_resetstats +  :: (Ptr RawTH3S) -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_Scale" c_th3s_scale +  :: (Ptr RawTH3S) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_setAxisColorA" c_th3s_setaxiscolora +  :: (Ptr RawTH3S) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SetAxisRange" c_th3s_setaxisrange +  :: (Ptr RawTH3S) -> CDouble -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SetBarOffset" c_th3s_setbaroffset +  :: (Ptr RawTH3S) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SetBarWidth" c_th3s_setbarwidth +  :: (Ptr RawTH3S) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_setBinContent1" c_th3s_setbincontent1 +  :: (Ptr RawTH3S) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_setBinContent2" c_th3s_setbincontent2 +  :: (Ptr RawTH3S) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_setBinContent3" c_th3s_setbincontent3 +  :: (Ptr RawTH3S) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_setBinError1" c_th3s_setbinerror1 +  :: (Ptr RawTH3S) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_setBinError2" c_th3s_setbinerror2 +  :: (Ptr RawTH3S) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_setBinError3" c_th3s_setbinerror3 +  :: (Ptr RawTH3S) -> CInt -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_setBins1" c_th3s_setbins1 +  :: (Ptr RawTH3S) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_setBins2" c_th3s_setbins2 +  :: (Ptr RawTH3S) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_setBins3" c_th3s_setbins3 +  :: (Ptr RawTH3S) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SetBinsLength" c_th3s_setbinslength +  :: (Ptr RawTH3S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SetBuffer" c_th3s_setbuffer +  :: (Ptr RawTH3S) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SetCellContent" c_th3s_setcellcontent +  :: (Ptr RawTH3S) -> CInt -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SetContent" c_th3s_setcontent +  :: (Ptr RawTH3S) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SetContour" c_th3s_setcontour +  :: (Ptr RawTH3S) -> CInt -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SetContourLevel" c_th3s_setcontourlevel +  :: (Ptr RawTH3S) -> CInt -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SetDirectory" c_th3s_setdirectory +  :: (Ptr RawTH3S) -> (Ptr RawTDirectory) -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SetEntries" c_th3s_setentries +  :: (Ptr RawTH3S) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SetError" c_th3s_seterror +  :: (Ptr RawTH3S) -> (Ptr CDouble) -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_setLabelColorA" c_th3s_setlabelcolora +  :: (Ptr RawTH3S) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_setLabelSizeA" c_th3s_setlabelsizea +  :: (Ptr RawTH3S) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_setLabelFontA" c_th3s_setlabelfonta +  :: (Ptr RawTH3S) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_setLabelOffsetA" c_th3s_setlabeloffseta +  :: (Ptr RawTH3S) -> CDouble -> CString -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SetMaximum" c_th3s_setmaximum +  :: (Ptr RawTH3S) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SetMinimum" c_th3s_setminimum +  :: (Ptr RawTH3S) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SetNormFactor" c_th3s_setnormfactor +  :: (Ptr RawTH3S) -> CDouble -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SetStats" c_th3s_setstats +  :: (Ptr RawTH3S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SetOption" c_th3s_setoption +  :: (Ptr RawTH3S) -> CString -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SetXTitle" c_th3s_setxtitle +  :: (Ptr RawTH3S) -> CString -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SetYTitle" c_th3s_setytitle +  :: (Ptr RawTH3S) -> CString -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SetZTitle" c_th3s_setztitle +  :: (Ptr RawTH3S) -> CString -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_ShowBackground" c_th3s_showbackground +  :: (Ptr RawTH3S) -> CInt -> CString -> IO (Ptr RawTH1)++foreign import ccall "HROOTHistTH3S.h TH3S_ShowPeaks" c_th3s_showpeaks +  :: (Ptr RawTH3S) -> CDouble -> CString -> CDouble -> IO CInt++foreign import ccall "HROOTHistTH3S.h TH3S_Smooth" c_th3s_smooth +  :: (Ptr RawTH3S) -> CInt -> CString -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_Sumw2" c_th3s_sumw2 +  :: (Ptr RawTH3S) -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_Draw" c_th3s_draw +  :: (Ptr RawTH3S) -> CString -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_FindObject" c_th3s_findobject +  :: (Ptr RawTH3S) -> CString -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTH3S.h TH3S_GetName" c_th3s_getname +  :: (Ptr RawTH3S) -> IO CString++foreign import ccall "HROOTHistTH3S.h TH3S_IsA" c_th3s_isa +  :: (Ptr RawTH3S) -> IO (Ptr RawTClass)++foreign import ccall "HROOTHistTH3S.h TH3S_Paint" c_th3s_paint +  :: (Ptr RawTH3S) -> CString -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_printObj" c_th3s_printobj +  :: (Ptr RawTH3S) -> CString -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SaveAs" c_th3s_saveas +  :: (Ptr RawTH3S) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_Write" c_th3s_write +  :: (Ptr RawTH3S) -> CString -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTH3S.h TH3S_GetLineColor" c_th3s_getlinecolor +  :: (Ptr RawTH3S) -> IO CInt++foreign import ccall "HROOTHistTH3S.h TH3S_GetLineStyle" c_th3s_getlinestyle +  :: (Ptr RawTH3S) -> IO CInt++foreign import ccall "HROOTHistTH3S.h TH3S_GetLineWidth" c_th3s_getlinewidth +  :: (Ptr RawTH3S) -> IO CInt++foreign import ccall "HROOTHistTH3S.h TH3S_ResetAttLine" c_th3s_resetattline +  :: (Ptr RawTH3S) -> CString -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SetLineAttributes" c_th3s_setlineattributes +  :: (Ptr RawTH3S) -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SetLineColor" c_th3s_setlinecolor +  :: (Ptr RawTH3S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SetLineStyle" c_th3s_setlinestyle +  :: (Ptr RawTH3S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SetLineWidth" c_th3s_setlinewidth +  :: (Ptr RawTH3S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SetFillColor" c_th3s_setfillcolor +  :: (Ptr RawTH3S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SetFillStyle" c_th3s_setfillstyle +  :: (Ptr RawTH3S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_GetMarkerColor" c_th3s_getmarkercolor +  :: (Ptr RawTH3S) -> IO CInt++foreign import ccall "HROOTHistTH3S.h TH3S_GetMarkerStyle" c_th3s_getmarkerstyle +  :: (Ptr RawTH3S) -> IO CInt++foreign import ccall "HROOTHistTH3S.h TH3S_GetMarkerSize" c_th3s_getmarkersize +  :: (Ptr RawTH3S) -> IO CDouble++foreign import ccall "HROOTHistTH3S.h TH3S_ResetAttMarker" c_th3s_resetattmarker +  :: (Ptr RawTH3S) -> CString -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SetMarkerAttributes" c_th3s_setmarkerattributes +  :: (Ptr RawTH3S) -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SetMarkerColor" c_th3s_setmarkercolor +  :: (Ptr RawTH3S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SetMarkerStyle" c_th3s_setmarkerstyle +  :: (Ptr RawTH3S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_SetMarkerSize" c_th3s_setmarkersize +  :: (Ptr RawTH3S) -> CInt -> IO ()++foreign import ccall "HROOTHistTH3S.h TH3S_delete" c_th3s_delete +  :: (Ptr RawTH3S) -> IO ()+
+ src/HROOT/Hist/TH3S/Implementation.hs view
@@ -0,0 +1,440 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, +             OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.TH3S.Implementation where+++import FFICXX.Runtime.Cast++import HROOT.Hist.TH3S.RawType+import HROOT.Hist.TH3S.FFI+import HROOT.Hist.TH3S.Interface+import HROOT.Hist.TH3S.Cast+import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH1D.Cast+import HROOT.Hist.TH1D.Interface+import HROOT.Hist.TF1.RawType+import HROOT.Hist.TF1.Cast+import HROOT.Hist.TF1.Interface+import HROOT.Core.TDirectory.RawType+import HROOT.Core.TDirectory.Cast+import HROOT.Core.TDirectory.Interface+import HROOT.Core.TArrayD.RawType+import HROOT.Core.TArrayD.Cast+import HROOT.Core.TArrayD.Interface+import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.Cast+import HROOT.Hist.TAxis.Interface+import HROOT.Core.TClass.RawType+import HROOT.Core.TClass.Cast+import HROOT.Core.TClass.Interface+import HROOT.Hist.TH3.RawType+import HROOT.Hist.TH3.Cast+import HROOT.Hist.TH3.Interface+import HROOT.Core.TArrayS.RawType+import HROOT.Core.TArrayS.Cast+import HROOT.Core.TArrayS.Interface+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH1.Cast+import HROOT.Hist.TH1.Interface+import HROOT.Core.TAtt3D.RawType+import HROOT.Core.TAtt3D.Cast+import HROOT.Core.TAtt3D.Interface+import HROOT.Core.TObject.RawType+import HROOT.Core.TObject.Cast+import HROOT.Core.TObject.Interface+import HROOT.Core.TAttLine.RawType+import HROOT.Core.TAttLine.Cast+import HROOT.Core.TAttLine.Interface+import HROOT.Core.TAttFill.RawType+import HROOT.Core.TAttFill.Cast+import HROOT.Core.TAttFill.Interface+import HROOT.Core.TAttMarker.RawType+import HROOT.Core.TAttMarker.Cast+import HROOT.Core.TAttMarker.Interface+import HROOT.Core.Deletable.RawType+import HROOT.Core.Deletable.Cast+import HROOT.Core.Deletable.Interface+import HROOT.Core.TArray.RawType+import HROOT.Core.TArray.Cast+import HROOT.Core.TArray.Interface++import Data.Word+import Foreign.C+import Foreign.Ptr +import Foreign.ForeignPtr++import System.IO.Unsafe+++instance ITH3S TH3S where+instance ITH3 TH3S where+  fill3 = xform3 c_th3s_fill3+  fill3w = xform4 c_th3s_fill3w+  fitSlicesZ = xform7 c_th3s_fitslicesz+  getCorrelationFactor3 = xform2 c_th3s_getcorrelationfactor3+  getCovariance3 = xform2 c_th3s_getcovariance3+  rebinX3 = xform2 c_th3s_rebinx3+  rebinY3 = xform2 c_th3s_rebiny3+  rebinZ3 = xform2 c_th3s_rebinz3+  rebin3D = xform4 c_th3s_rebin3d+instance ITArrayS TH3S where+instance ITH1 TH3S where+  add = xform2 c_th3s_add+  addBinContent = xform2 c_th3s_addbincontent+  chi2Test = xform3 c_th3s_chi2test+  computeIntegral = xform0 c_th3s_computeintegral+  directoryAutoAdd = xform1 c_th3s_directoryautoadd+  divide = xform5 c_th3s_divide+  drawCopyTH1 = xform1 c_th3s_drawcopyth1+  drawNormalized = xform2 c_th3s_drawnormalized+  drawPanelTH1 = xform0 c_th3s_drawpanelth1+  bufferEmpty = xform1 c_th3s_bufferempty+  evalF = xform2 c_th3s_evalf+  fFT = xform2 c_th3s_fft+  fill1 = xform1 c_th3s_fill1+  fill1w = xform2 c_th3s_fill1w+  fillN1 = xform4 c_th3s_filln1+  fillRandom = xform2 c_th3s_fillrandom+  findBin = xform3 c_th3s_findbin+  findFixBin = xform3 c_th3s_findfixbin+  findFirstBinAbove = xform2 c_th3s_findfirstbinabove+  findLastBinAbove = xform2 c_th3s_findlastbinabove+  fitPanelTH1 = xform0 c_th3s_fitpanelth1+  getNdivisionA = xform1 c_th3s_getndivisiona+  getAxisColorA = xform1 c_th3s_getaxiscolora+  getLabelColorA = xform1 c_th3s_getlabelcolora+  getLabelFontA = xform1 c_th3s_getlabelfonta+  getLabelOffsetA = xform1 c_th3s_getlabeloffseta+  getLabelSizeA = xform1 c_th3s_getlabelsizea+  getTitleFontA = xform1 c_th3s_gettitlefonta+  getTitleOffsetA = xform1 c_th3s_gettitleoffseta+  getTitleSizeA = xform1 c_th3s_gettitlesizea+  getTickLengthA = xform1 c_th3s_getticklengtha+  getBarOffset = xform0 c_th3s_getbaroffset+  getBarWidth = xform0 c_th3s_getbarwidth+  getContour = xform1 c_th3s_getcontour+  getContourLevel = xform1 c_th3s_getcontourlevel+  getContourLevelPad = xform1 c_th3s_getcontourlevelpad+  getBin = xform3 c_th3s_getbin+  getBinCenter = xform1 c_th3s_getbincenter+  getBinContent1 = xform1 c_th3s_getbincontent1+  getBinContent2 = xform2 c_th3s_getbincontent2+  getBinContent3 = xform3 c_th3s_getbincontent3+  getBinError1 = xform1 c_th3s_getbinerror1+  getBinError2 = xform2 c_th3s_getbinerror2+  getBinError3 = xform3 c_th3s_getbinerror3+  getBinLowEdge = xform1 c_th3s_getbinlowedge+  getBinWidth = xform1 c_th3s_getbinwidth+  getCellContent = xform2 c_th3s_getcellcontent+  getCellError = xform2 c_th3s_getcellerror+  getEntries = xform0 c_th3s_getentries+  getEffectiveEntries = xform0 c_th3s_geteffectiveentries+  getFunction = xform1 c_th3s_getfunction+  getDimension = xform0 c_th3s_getdimension+  getKurtosis = xform1 c_th3s_getkurtosis+  getLowEdge = xform1 c_th3s_getlowedge+  getMaximumTH1 = xform1 c_th3s_getmaximumth1+  getMaximumBin = xform0 c_th3s_getmaximumbin+  getMaximumStored = xform0 c_th3s_getmaximumstored+  getMinimumTH1 = xform1 c_th3s_getminimumth1+  getMinimumBin = xform0 c_th3s_getminimumbin+  getMinimumStored = xform0 c_th3s_getminimumstored+  getMean = xform1 c_th3s_getmean+  getMeanError = xform1 c_th3s_getmeanerror+  getNbinsX = xform0 c_th3s_getnbinsx+  getNbinsY = xform0 c_th3s_getnbinsy+  getNbinsZ = xform0 c_th3s_getnbinsz+  getQuantilesTH1 = xform3 c_th3s_getquantilesth1+  getRandom = xform0 c_th3s_getrandom+  getStats = xform1 c_th3s_getstats+  getSumOfWeights = xform0 c_th3s_getsumofweights+  getSumw2 = xform0 c_th3s_getsumw2+  getSumw2N = xform0 c_th3s_getsumw2n+  getRMS = xform1 c_th3s_getrms+  getRMSError = xform1 c_th3s_getrmserror+  getSkewness = xform1 c_th3s_getskewness+  integral1 = xform3 c_th3s_integral1+  interpolate1 = xform1 c_th3s_interpolate1+  interpolate2 = xform2 c_th3s_interpolate2+  interpolate3 = xform3 c_th3s_interpolate3+  kolmogorovTest = xform2 c_th3s_kolmogorovtest+  labelsDeflate = xform1 c_th3s_labelsdeflate+  labelsInflate = xform1 c_th3s_labelsinflate+  labelsOption = xform2 c_th3s_labelsoption+  multiflyF = xform2 c_th3s_multiflyf+  multiply = xform5 c_th3s_multiply+  putStats = xform1 c_th3s_putstats+  rebin = xform3 c_th3s_rebin+  rebinAxis = xform2 c_th3s_rebinaxis+  rebuild = xform1 c_th3s_rebuild+  recursiveRemove = xform1 c_th3s_recursiveremove+  reset = xform1 c_th3s_reset+  resetStats = xform0 c_th3s_resetstats+  scale = xform2 c_th3s_scale+  setAxisColorA = xform2 c_th3s_setaxiscolora+  setAxisRange = xform3 c_th3s_setaxisrange+  setBarOffset = xform1 c_th3s_setbaroffset+  setBarWidth = xform1 c_th3s_setbarwidth+  setBinContent1 = xform2 c_th3s_setbincontent1+  setBinContent2 = xform3 c_th3s_setbincontent2+  setBinContent3 = xform4 c_th3s_setbincontent3+  setBinError1 = xform2 c_th3s_setbinerror1+  setBinError2 = xform3 c_th3s_setbinerror2+  setBinError3 = xform4 c_th3s_setbinerror3+  setBins1 = xform2 c_th3s_setbins1+  setBins2 = xform4 c_th3s_setbins2+  setBins3 = xform6 c_th3s_setbins3+  setBinsLength = xform1 c_th3s_setbinslength+  setBuffer = xform2 c_th3s_setbuffer+  setCellContent = xform3 c_th3s_setcellcontent+  setContent = xform1 c_th3s_setcontent+  setContour = xform2 c_th3s_setcontour+  setContourLevel = xform2 c_th3s_setcontourlevel+  setDirectory = xform1 c_th3s_setdirectory+  setEntries = xform1 c_th3s_setentries+  setError = xform1 c_th3s_seterror+  setLabelColorA = xform2 c_th3s_setlabelcolora+  setLabelSizeA = xform2 c_th3s_setlabelsizea+  setLabelFontA = xform2 c_th3s_setlabelfonta+  setLabelOffsetA = xform2 c_th3s_setlabeloffseta+  setMaximum = xform1 c_th3s_setmaximum+  setMinimum = xform1 c_th3s_setminimum+  setNormFactor = xform1 c_th3s_setnormfactor+  setStats = xform1 c_th3s_setstats+  setOption = xform1 c_th3s_setoption+  setXTitle = xform1 c_th3s_setxtitle+  setYTitle = xform1 c_th3s_setytitle+  setZTitle = xform1 c_th3s_setztitle+  showBackground = xform2 c_th3s_showbackground+  showPeaks = xform3 c_th3s_showpeaks+  smooth = xform2 c_th3s_smooth+  sumw2 = xform0 c_th3s_sumw2+instance ITAtt3D TH3S where+instance ITObject TH3S where+  draw = xform1 c_th3s_draw+  findObject = xform1 c_th3s_findobject+  getName = xform0 c_th3s_getname+  isA = xform0 c_th3s_isa+  paint = xform1 c_th3s_paint+  printObj = xform1 c_th3s_printobj+  saveAs = xform2 c_th3s_saveas+  write = xform3 c_th3s_write+instance ITAttLine TH3S where+  getLineColor = xform0 c_th3s_getlinecolor+  getLineStyle = xform0 c_th3s_getlinestyle+  getLineWidth = xform0 c_th3s_getlinewidth+  resetAttLine = xform1 c_th3s_resetattline+  setLineAttributes = xform0 c_th3s_setlineattributes+  setLineColor = xform1 c_th3s_setlinecolor+  setLineStyle = xform1 c_th3s_setlinestyle+  setLineWidth = xform1 c_th3s_setlinewidth+instance ITAttFill TH3S where+  setFillColor = xform1 c_th3s_setfillcolor+  setFillStyle = xform1 c_th3s_setfillstyle+instance ITAttMarker TH3S where+  getMarkerColor = xform0 c_th3s_getmarkercolor+  getMarkerStyle = xform0 c_th3s_getmarkerstyle+  getMarkerSize = xform0 c_th3s_getmarkersize+  resetAttMarker = xform1 c_th3s_resetattmarker+  setMarkerAttributes = xform0 c_th3s_setmarkerattributes+  setMarkerColor = xform1 c_th3s_setmarkercolor+  setMarkerStyle = xform1 c_th3s_setmarkerstyle+  setMarkerSize = xform1 c_th3s_setmarkersize+instance IDeletable TH3S where+  delete = xform0 c_th3s_delete+instance ITArray TH3S where++instance ITH3S (Exist TH3S) where++instance ITH3 (Exist TH3S) where+  fill3 (ETH3S x) = fill3 x+  fill3w (ETH3S x) = fill3w x+  fitSlicesZ (ETH3S x) = fitSlicesZ x+  getCorrelationFactor3 (ETH3S x) = getCorrelationFactor3 x+  getCovariance3 (ETH3S x) = getCovariance3 x+  rebinX3 (ETH3S x) = rebinX3 x+  rebinY3 (ETH3S x) = rebinY3 x+  rebinZ3 (ETH3S x) = rebinZ3 x+  rebin3D (ETH3S x) = rebin3D x+instance ITArrayS (Exist TH3S) where++instance ITH1 (Exist TH3S) where+  add (ETH3S x) = add x+  addBinContent (ETH3S x) = addBinContent x+  chi2Test (ETH3S x) = chi2Test x+  computeIntegral (ETH3S x) = computeIntegral x+  directoryAutoAdd (ETH3S x) = directoryAutoAdd x+  divide (ETH3S x) = divide x+  drawCopyTH1 (ETH3S x) a1 = return . ETH3S =<< drawCopyTH1 x a1+  drawNormalized (ETH3S x) = drawNormalized x+  drawPanelTH1 (ETH3S x) = drawPanelTH1 x+  bufferEmpty (ETH3S x) = bufferEmpty x+  evalF (ETH3S x) = evalF x+  fFT (ETH3S x) = fFT x+  fill1 (ETH3S x) = fill1 x+  fill1w (ETH3S x) = fill1w x+  fillN1 (ETH3S x) = fillN1 x+  fillRandom (ETH3S x) = fillRandom x+  findBin (ETH3S x) = findBin x+  findFixBin (ETH3S x) = findFixBin x+  findFirstBinAbove (ETH3S x) = findFirstBinAbove x+  findLastBinAbove (ETH3S x) = findLastBinAbove x+  fitPanelTH1 (ETH3S x) = fitPanelTH1 x+  getNdivisionA (ETH3S x) = getNdivisionA x+  getAxisColorA (ETH3S x) = getAxisColorA x+  getLabelColorA (ETH3S x) = getLabelColorA x+  getLabelFontA (ETH3S x) = getLabelFontA x+  getLabelOffsetA (ETH3S x) = getLabelOffsetA x+  getLabelSizeA (ETH3S x) = getLabelSizeA x+  getTitleFontA (ETH3S x) = getTitleFontA x+  getTitleOffsetA (ETH3S x) = getTitleOffsetA x+  getTitleSizeA (ETH3S x) = getTitleSizeA x+  getTickLengthA (ETH3S x) = getTickLengthA x+  getBarOffset (ETH3S x) = getBarOffset x+  getBarWidth (ETH3S x) = getBarWidth x+  getContour (ETH3S x) = getContour x+  getContourLevel (ETH3S x) = getContourLevel x+  getContourLevelPad (ETH3S x) = getContourLevelPad x+  getBin (ETH3S x) = getBin x+  getBinCenter (ETH3S x) = getBinCenter x+  getBinContent1 (ETH3S x) = getBinContent1 x+  getBinContent2 (ETH3S x) = getBinContent2 x+  getBinContent3 (ETH3S x) = getBinContent3 x+  getBinError1 (ETH3S x) = getBinError1 x+  getBinError2 (ETH3S x) = getBinError2 x+  getBinError3 (ETH3S x) = getBinError3 x+  getBinLowEdge (ETH3S x) = getBinLowEdge x+  getBinWidth (ETH3S x) = getBinWidth x+  getCellContent (ETH3S x) = getCellContent x+  getCellError (ETH3S x) = getCellError x+  getEntries (ETH3S x) = getEntries x+  getEffectiveEntries (ETH3S x) = getEffectiveEntries x+  getFunction (ETH3S x) = getFunction x+  getDimension (ETH3S x) = getDimension x+  getKurtosis (ETH3S x) = getKurtosis x+  getLowEdge (ETH3S x) = getLowEdge x+  getMaximumTH1 (ETH3S x) = getMaximumTH1 x+  getMaximumBin (ETH3S x) = getMaximumBin x+  getMaximumStored (ETH3S x) = getMaximumStored x+  getMinimumTH1 (ETH3S x) = getMinimumTH1 x+  getMinimumBin (ETH3S x) = getMinimumBin x+  getMinimumStored (ETH3S x) = getMinimumStored x+  getMean (ETH3S x) = getMean x+  getMeanError (ETH3S x) = getMeanError x+  getNbinsX (ETH3S x) = getNbinsX x+  getNbinsY (ETH3S x) = getNbinsY x+  getNbinsZ (ETH3S x) = getNbinsZ x+  getQuantilesTH1 (ETH3S x) = getQuantilesTH1 x+  getRandom (ETH3S x) = getRandom x+  getStats (ETH3S x) = getStats x+  getSumOfWeights (ETH3S x) = getSumOfWeights x+  getSumw2 (ETH3S x) = getSumw2 x+  getSumw2N (ETH3S x) = getSumw2N x+  getRMS (ETH3S x) = getRMS x+  getRMSError (ETH3S x) = getRMSError x+  getSkewness (ETH3S x) = getSkewness x+  integral1 (ETH3S x) = integral1 x+  interpolate1 (ETH3S x) = interpolate1 x+  interpolate2 (ETH3S x) = interpolate2 x+  interpolate3 (ETH3S x) = interpolate3 x+  kolmogorovTest (ETH3S x) = kolmogorovTest x+  labelsDeflate (ETH3S x) = labelsDeflate x+  labelsInflate (ETH3S x) = labelsInflate x+  labelsOption (ETH3S x) = labelsOption x+  multiflyF (ETH3S x) = multiflyF x+  multiply (ETH3S x) = multiply x+  putStats (ETH3S x) = putStats x+  rebin (ETH3S x) = rebin x+  rebinAxis (ETH3S x) = rebinAxis x+  rebuild (ETH3S x) = rebuild x+  recursiveRemove (ETH3S x) = recursiveRemove x+  reset (ETH3S x) = reset x+  resetStats (ETH3S x) = resetStats x+  scale (ETH3S x) = scale x+  setAxisColorA (ETH3S x) = setAxisColorA x+  setAxisRange (ETH3S x) = setAxisRange x+  setBarOffset (ETH3S x) = setBarOffset x+  setBarWidth (ETH3S x) = setBarWidth x+  setBinContent1 (ETH3S x) = setBinContent1 x+  setBinContent2 (ETH3S x) = setBinContent2 x+  setBinContent3 (ETH3S x) = setBinContent3 x+  setBinError1 (ETH3S x) = setBinError1 x+  setBinError2 (ETH3S x) = setBinError2 x+  setBinError3 (ETH3S x) = setBinError3 x+  setBins1 (ETH3S x) = setBins1 x+  setBins2 (ETH3S x) = setBins2 x+  setBins3 (ETH3S x) = setBins3 x+  setBinsLength (ETH3S x) = setBinsLength x+  setBuffer (ETH3S x) = setBuffer x+  setCellContent (ETH3S x) = setCellContent x+  setContent (ETH3S x) = setContent x+  setContour (ETH3S x) = setContour x+  setContourLevel (ETH3S x) = setContourLevel x+  setDirectory (ETH3S x) = setDirectory x+  setEntries (ETH3S x) = setEntries x+  setError (ETH3S x) = setError x+  setLabelColorA (ETH3S x) = setLabelColorA x+  setLabelSizeA (ETH3S x) = setLabelSizeA x+  setLabelFontA (ETH3S x) = setLabelFontA x+  setLabelOffsetA (ETH3S x) = setLabelOffsetA x+  setMaximum (ETH3S x) = setMaximum x+  setMinimum (ETH3S x) = setMinimum x+  setNormFactor (ETH3S x) = setNormFactor x+  setStats (ETH3S x) = setStats x+  setOption (ETH3S x) = setOption x+  setXTitle (ETH3S x) = setXTitle x+  setYTitle (ETH3S x) = setYTitle x+  setZTitle (ETH3S x) = setZTitle x+  showBackground (ETH3S x) = showBackground x+  showPeaks (ETH3S x) = showPeaks x+  smooth (ETH3S x) = smooth x+  sumw2 (ETH3S x) = sumw2 x+instance ITAtt3D (Exist TH3S) where++instance ITObject (Exist TH3S) where+  draw (ETH3S x) = draw x+  findObject (ETH3S x) = findObject x+  getName (ETH3S x) = getName x+  isA (ETH3S x) = isA x+  paint (ETH3S x) = paint x+  printObj (ETH3S x) = printObj x+  saveAs (ETH3S x) = saveAs x+  write (ETH3S x) = write x+instance ITAttLine (Exist TH3S) where+  getLineColor (ETH3S x) = getLineColor x+  getLineStyle (ETH3S x) = getLineStyle x+  getLineWidth (ETH3S x) = getLineWidth x+  resetAttLine (ETH3S x) = resetAttLine x+  setLineAttributes (ETH3S x) = setLineAttributes x+  setLineColor (ETH3S x) = setLineColor x+  setLineStyle (ETH3S x) = setLineStyle x+  setLineWidth (ETH3S x) = setLineWidth x+instance ITAttFill (Exist TH3S) where+  setFillColor (ETH3S x) = setFillColor x+  setFillStyle (ETH3S x) = setFillStyle x+instance ITAttMarker (Exist TH3S) where+  getMarkerColor (ETH3S x) = getMarkerColor x+  getMarkerStyle (ETH3S x) = getMarkerStyle x+  getMarkerSize (ETH3S x) = getMarkerSize x+  resetAttMarker (ETH3S x) = resetAttMarker x+  setMarkerAttributes (ETH3S x) = setMarkerAttributes x+  setMarkerColor (ETH3S x) = setMarkerColor x+  setMarkerStyle (ETH3S x) = setMarkerStyle x+  setMarkerSize (ETH3S x) = setMarkerSize x+instance IDeletable (Exist TH3S) where+  delete (ETH3S x) = delete x+instance ITArray (Exist TH3S) where+++++++++instance FPtr (Exist TH3S) where+  type Raw (Exist TH3S) = RawTH3S+  get_fptr (ETH3S obj) = castForeignPtr (get_fptr obj)+  cast_fptr_to_obj fptr = ETH3S (cast_fptr_to_obj (fptr :: ForeignPtr RawTH3S) :: TH3S)
+ src/HROOT/Hist/TH3S/Interface.hs view
@@ -0,0 +1,37 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++-- module HROOT.Class.Interface where++module HROOT.Hist.TH3S.Interface where+++import Data.Word+import Foreign.C+import Foreign.Ptr+import Foreign.ForeignPtr+import FFICXX.Runtime.Cast++import HROOT.Hist.TH3S.RawType++import HROOT.Hist.TH3.Interface+import HROOT.Core.TArrayS.Interface+---- ============ ----++++class (ITH3 a,ITArrayS a) => ITH3S a where++instance Existable TH3S where+  data Exist TH3S = forall a. (FPtr a, ITH3S a) => ETH3S a++upcastTH3S :: (FPtr a, ITH3S a) => a -> TH3S+upcastTH3S h = let fh = get_fptr h+                   fh2 :: ForeignPtr RawTH3S = castForeignPtr fh+               in cast_fptr_to_obj fh2++downcastTH3S :: (FPtr a, ITH3S a) => TH3S -> a +downcastTH3S h = let fh = get_fptr h+                     fh2 = castForeignPtr fh+                 in cast_fptr_to_obj fh2
+ src/HROOT/Hist/TH3S/RawType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++module HROOT.Hist.TH3S.RawType where+++import Foreign.ForeignPtr+import FFICXX.Runtime.Cast  ++data RawTH3S+newtype TH3S = TH3S (ForeignPtr RawTH3S) deriving (Eq, Ord, Show)+instance FPtr TH3S where+   type Raw TH3S = RawTH3S+   get_fptr (TH3S fptr) = fptr+   cast_fptr_to_obj = TH3S
+ src/HROOT/Hist/THStack.hs view
@@ -0,0 +1,15 @@+module HROOT.Hist.THStack+  (+    THStack(..)+  , ITHStack+  , upcastTHStack+  , downcastTHStack+  , newTHStack+ +  ) where++import HROOT.Hist.THStack.RawType+import HROOT.Hist.THStack.Interface+import HROOT.Hist.THStack.Implementation++
+ src/HROOT/Hist/THStack/Cast.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeFamilies, +             MultiParamTypeClasses, OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.THStack.Cast where+++import Foreign.Ptr+import Foreign.ForeignPtr (castForeignPtr, newForeignPtr_)+import Foreign.ForeignPtr.Unsafe+import FFICXX.Runtime.Cast+import System.IO.Unsafe++import HROOT.Hist.THStack.RawType+import HROOT.Hist.THStack.Interface++instance (ITHStack a, FPtr a) => Castable a (Ptr RawTHStack) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ ++instance Castable THStack (Ptr RawTHStack) where+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+ src/HROOT/Hist/THStack/FFI.hsc view
@@ -0,0 +1,59 @@+{-# LANGUAGE ForeignFunctionInterface #-}++-- module HROOT.Class.FFI where++module HROOT.Hist.THStack.FFI where+++import Foreign.C            +import Foreign.Ptr++-- import HROOT.Class.Interface++-- #include ""++import HROOT.Hist.THStack.RawType+import HROOT.Core.TObject.RawType+import HROOT.Core.TClass.RawType++#include "HROOTHistTHStack.h"++foreign import ccall "HROOTHistTHStack.h THStack_SetName" c_thstack_setname +  :: (Ptr RawTHStack) -> CString -> IO ()++foreign import ccall "HROOTHistTHStack.h THStack_SetNameTitle" c_thstack_setnametitle +  :: (Ptr RawTHStack) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTHStack.h THStack_SetTitle" c_thstack_settitle +  :: (Ptr RawTHStack) -> CString -> IO ()++foreign import ccall "HROOTHistTHStack.h THStack_Draw" c_thstack_draw +  :: (Ptr RawTHStack) -> CString -> IO ()++foreign import ccall "HROOTHistTHStack.h THStack_FindObject" c_thstack_findobject +  :: (Ptr RawTHStack) -> CString -> IO (Ptr RawTObject)++foreign import ccall "HROOTHistTHStack.h THStack_GetName" c_thstack_getname +  :: (Ptr RawTHStack) -> IO CString++foreign import ccall "HROOTHistTHStack.h THStack_IsA" c_thstack_isa +  :: (Ptr RawTHStack) -> IO (Ptr RawTClass)++foreign import ccall "HROOTHistTHStack.h THStack_Paint" c_thstack_paint +  :: (Ptr RawTHStack) -> CString -> IO ()++foreign import ccall "HROOTHistTHStack.h THStack_printObj" c_thstack_printobj +  :: (Ptr RawTHStack) -> CString -> IO ()++foreign import ccall "HROOTHistTHStack.h THStack_SaveAs" c_thstack_saveas +  :: (Ptr RawTHStack) -> CString -> CString -> IO ()++foreign import ccall "HROOTHistTHStack.h THStack_Write" c_thstack_write +  :: (Ptr RawTHStack) -> CString -> CInt -> CInt -> IO CInt++foreign import ccall "HROOTHistTHStack.h THStack_delete" c_thstack_delete +  :: (Ptr RawTHStack) -> IO ()++foreign import ccall "HROOTHistTHStack.h THStack_newTHStack" c_thstack_newthstack +  :: CString -> CString -> IO (Ptr RawTHStack)+
+ src/HROOT/Hist/THStack/Implementation.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, +             OverlappingInstances, IncoherentInstances #-}++module HROOT.Hist.THStack.Implementation where+++import FFICXX.Runtime.Cast++import HROOT.Hist.THStack.RawType+import HROOT.Hist.THStack.FFI+import HROOT.Hist.THStack.Interface+import HROOT.Hist.THStack.Cast+import HROOT.Core.TClass.RawType+import HROOT.Core.TClass.Cast+import HROOT.Core.TClass.Interface+import HROOT.Core.TNamed.RawType+import HROOT.Core.TNamed.Cast+import HROOT.Core.TNamed.Interface+import HROOT.Core.TObject.RawType+import HROOT.Core.TObject.Cast+import HROOT.Core.TObject.Interface+import HROOT.Core.Deletable.RawType+import HROOT.Core.Deletable.Cast+import HROOT.Core.Deletable.Interface++import Data.Word+import Foreign.C+import Foreign.Ptr +import Foreign.ForeignPtr++import System.IO.Unsafe+++instance ITHStack THStack where+instance ITNamed THStack where+  setName = xform1 c_thstack_setname+  setNameTitle = xform2 c_thstack_setnametitle+  setTitle = xform1 c_thstack_settitle+instance ITObject THStack where+  draw = xform1 c_thstack_draw+  findObject = xform1 c_thstack_findobject+  getName = xform0 c_thstack_getname+  isA = xform0 c_thstack_isa+  paint = xform1 c_thstack_paint+  printObj = xform1 c_thstack_printobj+  saveAs = xform2 c_thstack_saveas+  write = xform3 c_thstack_write+instance IDeletable THStack where+  delete = xform0 c_thstack_delete++instance ITHStack (Exist THStack) where++instance ITNamed (Exist THStack) where+  setName (ETHStack x) = setName x+  setNameTitle (ETHStack x) = setNameTitle x+  setTitle (ETHStack x) = setTitle x+instance ITObject (Exist THStack) where+  draw (ETHStack x) = draw x+  findObject (ETHStack x) = findObject x+  getName (ETHStack x) = getName x+  isA (ETHStack x) = isA x+  paint (ETHStack x) = paint x+  printObj (ETHStack x) = printObj x+  saveAs (ETHStack x) = saveAs x+  write (ETHStack x) = write x+instance IDeletable (Exist THStack) where+  delete (ETHStack x) = delete x+++newTHStack :: CString -> CString -> IO THStack+newTHStack = xform1 c_thstack_newthstack++++++instance FPtr (Exist THStack) where+  type Raw (Exist THStack) = RawTHStack+  get_fptr (ETHStack obj) = castForeignPtr (get_fptr obj)+  cast_fptr_to_obj fptr = ETHStack (cast_fptr_to_obj (fptr :: ForeignPtr RawTHStack) :: THStack)
+ src/HROOT/Hist/THStack/Interface.hs view
@@ -0,0 +1,36 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++-- module HROOT.Class.Interface where++module HROOT.Hist.THStack.Interface where+++import Data.Word+import Foreign.C+import Foreign.Ptr+import Foreign.ForeignPtr+import FFICXX.Runtime.Cast++import HROOT.Hist.THStack.RawType++import HROOT.Core.TNamed.Interface+---- ============ ----++++class (ITNamed a) => ITHStack a where++instance Existable THStack where+  data Exist THStack = forall a. (FPtr a, ITHStack a) => ETHStack a++upcastTHStack :: (FPtr a, ITHStack a) => a -> THStack+upcastTHStack h = let fh = get_fptr h+                      fh2 :: ForeignPtr RawTHStack = castForeignPtr fh+                  in cast_fptr_to_obj fh2++downcastTHStack :: (FPtr a, ITHStack a) => THStack -> a +downcastTHStack h = let fh = get_fptr h+                        fh2 = castForeignPtr fh+                    in cast_fptr_to_obj fh2
+ src/HROOT/Hist/THStack/RawType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, +             FlexibleInstances, TypeSynonymInstances, +             EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}++module HROOT.Hist.THStack.RawType where+++import Foreign.ForeignPtr+import FFICXX.Runtime.Cast  ++data RawTHStack+newtype THStack = THStack (ForeignPtr RawTHStack) deriving (Eq, Ord, Show)+instance FPtr THStack where+   type Raw THStack = RawTHStack+   get_fptr (THStack fptr) = fptr+   cast_fptr_to_obj = THStack