# Stheno.jl -- support for vector-valued functions

**URL:** https://discourse.julialang.org/t/stheno-jl-support-for-vector-valued-functions/28832
**Category:** New to Julia
**Tags:** question
**Created:** [September 16, 2019, 10:37pm UTC](https://discourse.julialang.org/t/stheno-jl-support-for-vector-valued-functions/28832 "2019-09-16T22:37:44Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![emsal](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/emsal/32/9729_2.png) [@emsal](https://discourse.julialang.org/u/emsal)
#### Post date: [September 16, 2019, 10:37pm UTC](https://discourse.julialang.org/t/stheno-jl-support-for-vector-valued-functions/28832/1 "2019-09-16T22:37:44Z")

</div>

I’m starting to do some work with [Stheno.jl](https://github.com/willtebbutt/Stheno.jl), a Gaussian processes library.

The examples in the README.md and the linked model zoo seem to work primarily on 1D functions. I am new so I don’t exactly know how to infer this by myself yet, but is there support for vector → vector or vector → real functions?

Thanks in advance

---

<div class="post-metadata">

### Author: ![willtebbutt](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/willtebbutt/32/6790_2.png) [@willtebbutt](https://discourse.julialang.org/u/willtebbutt)
#### Post date: [September 23, 2019, 12:28pm UTC](https://discourse.julialang.org/t/stheno-jl-support-for-vector-valued-functions/28832/2 "2019-09-23T12:28:04Z")

</div>

There’s explicit support for vector → real functions. In particular see [ColsAreObs](https://github.com/willtebbutt/Stheno.jl/blob/5460484e84db38bd5de3d797bca2c3571008ff56/src/util/abstract_data_set.jl#L6) for packaging up matrices whose columns represent vector-valued inputs. It should work nicely with most of the [kernels](https://github.com/willtebbutt/Stheno.jl/blob/5460484e84db38bd5de3d797bca2c3571008ff56/src/util/abstract_data_set.jl#L6).

The support that we have for vector → vector functions is that which is provided automatically i.e. by creating a number of processes and linearly combining them i.e.

```julia
f1 = ...
f2 = ...
f3 = a * f1 + b * f2

```

etc. This is fine if you’re working in fairly low dimensions, but probably not in high. I’ve not gotten around to adding explicit support for common vector → vector functions because it’s not ever been too high up on my list of research needs, but I would be very happy to work with you to make them happen – it shouldn’t be too hard.
