Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
haskell-gargantext
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Christian Merten
haskell-gargantext
Commits
2ae49b1d
Commit
2ae49b1d
authored
Feb 14, 2024
by
Alexandre Delanoë
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[FEAT] Order2 Only
parent
e9686670
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
13 additions
and
15 deletions
+13
-15
Similarities.hs
src/Gargantext/Core/Methods/Similarities.hs
+5
-7
Distributional.hs
...xt/Core/Methods/Similarities/Accelerate/Distributional.hs
+8
-8
No files found.
src/Gargantext/Core/Methods/Similarities.hs
View file @
2ae49b1d
...
@@ -31,19 +31,17 @@ import Test.QuickCheck.Arbitrary
...
@@ -31,19 +31,17 @@ import Test.QuickCheck.Arbitrary
import
qualified
Data.Text
as
Text
import
qualified
Data.Text
as
Text
------------------------------------------------------------------------
------------------------------------------------------------------------
data
Similarity
=
Conditional
|
Distributional
_A
|
Distributional_B
data
Similarity
=
Conditional
|
Distributional
deriving
(
Show
,
Eq
)
deriving
(
Show
,
Eq
)
measure
::
Similarity
->
Matrix
Int
->
Matrix
Double
measure
::
Similarity
->
Matrix
Int
->
Matrix
Double
measure
Conditional
x
=
measureConditional
x
measure
Conditional
x
=
measureConditional
x
measure
Distributional_A
x
=
logDistributional2
1
x
measure
Distributional
x
=
logDistributional2
x
measure
Distributional_B
x
=
logDistributional2
0
x
------------------------------------------------------------------------
------------------------------------------------------------------------
withMetric
::
GraphMetric
->
Similarity
withMetric
::
GraphMetric
->
Similarity
withMetric
Order1
=
Conditional
withMetric
Order1
=
Conditional
withMetric
Order2_A
=
Distributional_A
withMetric
_
=
Distributional
withMetric
_
=
Distributional_B
------------------------------------------------------------------------
------------------------------------------------------------------------
-- Order2 type is for keeping Database json compatibility
-- Order2 type is for keeping Database json compatibility
...
...
src/Gargantext/Core/Methods/Similarities/Accelerate/Distributional.hs
View file @
2ae49b1d
...
@@ -168,16 +168,16 @@ distributional m' = run $ result
...
@@ -168,16 +168,16 @@ distributional m' = run $ result
result
=
termDivNan
z_1
z_2
result
=
termDivNan
z_1
z_2
logDistributional2
::
Exp
Double
->
Matrix
Int
->
Matrix
Double
logDistributional2
::
Matrix
Int
->
Matrix
Double
logDistributional2
o
m
=
trace
(
"logDistributional2, dim="
`
mappend
`
show
n
)
.
run
logDistributional2
m
=
trace
(
"logDistributional2, dim="
`
mappend
`
show
n
)
.
run
$
diagNull
n
$
diagNull
n
$
matMaxMini
$
matMaxMini
$
logDistributional'
o
n
m
$
logDistributional'
n
m
where
where
n
=
dim
m
n
=
dim
m
logDistributional'
::
Exp
Double
->
Int
->
Matrix
Int
->
Acc
(
Matrix
Double
)
logDistributional'
::
Int
->
Matrix
Int
->
Acc
(
Matrix
Double
)
logDistributional'
o
n
m'
=
trace
(
"logDistributional'"
)
result
logDistributional'
n
m'
=
trace
(
"logDistributional'"
)
result
where
where
-- From Matrix Int to Matrix Double, i.e :
-- From Matrix Int to Matrix Double, i.e :
-- m :: Matrix Int -> Matrix Double
-- m :: Matrix Int -> Matrix Double
...
@@ -204,7 +204,7 @@ logDistributional' o n m' = trace ("logDistributional'") result
...
@@ -204,7 +204,7 @@ logDistributional' o n m' = trace ("logDistributional'") result
-- m_{i,j} = 0 if n_{i,j} = 0 or i = j,
-- m_{i,j} = 0 if n_{i,j} = 0 or i = j,
-- m_{i,j} = log(to * n_{i,j} / s_{i,j}) otherwise.
-- m_{i,j} = log(to * n_{i,j} / s_{i,j}) otherwise.
mi
=
(
.*
)
(
matrixEye
n
)
mi
=
(
.*
)
(
matrixEye
n
)
(
map
(
lift1
(
\
x
->
let
x'
=
o
+
x
*
to
in
cond
(
x'
<
1
)
0
(
log
x'
)))
((
./
)
m
ss
))
(
map
(
lift1
(
\
x
->
let
x'
=
x
*
to
in
cond
(
x'
<
1
)
0
(
log
x'
)))
((
./
)
m
ss
))
-- mi_nnz :: Int
-- mi_nnz :: Int
-- mi_nnz = flip indexArray Z . run $
-- mi_nnz = flip indexArray Z . run $
-- foldAll (+) 0 $ map (\a -> ifThenElse (abs a < 10^(-6 :: Exp Int)) 0 1) mi
-- foldAll (+) 0 $ map (\a -> ifThenElse (abs a < 10^(-6 :: Exp Int)) 0 1) mi
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment