This repository was archived by the owner on Dec 3, 2019. It is now read-only.
  
  
  - 
                Notifications
    
You must be signed in to change notification settings  - Fork 37
 
Home
        st-- edited this page May 13, 2015 
        ·
        13 revisions
      
    - 
Kernels
-  Add Kernels
-  Periodic kernel: 
exp(-2sin(π*(x-y)/k.p)^2 / k.ell^2)- improve numeric accuracy - kernel_dxdy and kernel_dp tests don't run through entirely
 
 -  Automatic Relevance Determination Kernel: one for each euclidean distance and scalar product kernel
- kernel, kernel_dx, kernel_dy
 - kernel_dxdy
 - kernel_dp: derivatives w.r.t. elements of the weight vector
 - fast kernelmatrix_dx,_dy,_dxdy() methods
 - test coverage
 
 
 -  Periodic kernel: 
 - Expand derivatives to the other kernels
 -  Composites of composite kernels
- Derivatives w.r.t. parameters of subkernels
 
 
 -  Add Kernels
 - 
Methods
-  Efficient computation of weighted squared norms/scalar products
- Efficient computation of derivatives w.r.t. the weights
 
 - Efficient computation of kernel derivatives
 - Efficient computation of weighted gramians
 - Efficient kernel matrix approximation (this should be last and it's not a hurry)
 
 -  Efficient computation of weighted squared norms/scalar products
 
- First derivatives are named using the pattern function_d* and second derivatives function_d*d*. For example, kernel_dxdy. Since the name of a function does not change when it is differentiated with respect to a variable, it is redundant to write something like 'function_dfunction_dxdy'
 - Line lengths are variable - aim to keep lines of code under 80 characters but allow the definition of a function to be as long as needed as julia often has long function names/definitions
 
- Don't construct intermediate objects (vectors, matrices) inside loops - this leads to a lot of memory allocation and then the GC slows everything down. Instead, need to write functions such that everything is done in-place.
 - When scanning an array, ensure that the innermost loop corresponds to the leftmost index when accessing an array - Julia's arrays are in column-major order
 - When a function contains two or more loops in succession (not composition) or some set-up code, try to break these into separate functions
 - Avoid operating on multiple arrays at once in Julia (eg. attempt to use BLAS where possible)
 - more?