Skip to content
Snippets Groups Projects
Select Git revision
  • 9bf5ce04896a0c296032d91a1c619d82894b67a4
  • master default protected
  • control-single-hba-and-lba
  • L2SS-1957-remove-pcon-control
  • stabilise-landing-page
  • all-stations-lofar2
  • L2SS-2357-fix-ruff
  • v0.39.7-backports
  • Move-sdptr-to-v1.5.0
  • fix-build-ubuntu
  • tokens-in-env-files
  • fix-build
  • L2SS-2214-deploy-cdb
  • fix-missing-init
  • add-power-hardware-apply
  • L2SS-2129-Add-Subrack-Routine
  • Also-listen-internal-to-rpc
  • fix-build-dind
  • L2SS-2153--Improve-Error-Handling
  • L2SS-2153-Add-Grpc-Gateway-support
  • L2SS-1970-apsct-lol
  • v0.52.3 protected
  • v0.52.3dev0 protected
  • 0.53.1dev0
  • v0.52.2-rc3 protected
  • v0.52.2-rc2 protected
  • v0.52.2-rc1 protected
  • v0.52.1.1 protected
  • v0.52.1 protected
  • v0.52.1-rc1 protected
  • v0.51.9-6 protected
  • v0.51.9-5 protected
  • v0.51.9-4 protected
  • v0.51.9-3 protected
  • v0.51.9-2 protected
  • v0.51.9-1 protected
  • v0.51.9 protected
  • v0.51.8 protected
  • v0.39.15-wsrttwo protected
  • v0.39.15-wsrt protected
  • v0.39.14-wsrt protected
41 results

test_device.ipynb

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    Predict.cpp 2.39 KiB
    // Predict.cppp: Compute visibilities for different model components types
    // (implementation of ModelComponentVisitor).
    //
    // Copyright (C) 2020 ASTRON (Netherlands Institute for Radio Astronomy)
    // SPDX-License-Identifier: GPL-3.0-or-later
    //
    // $Id$
    
    #include <casacore/casa/Arrays/MatrixMath.h>
    #include <casacore/casa/BasicSL/Constants.h>
    
    #include <cmath>
    
    #include "GaussianSourceCollection.h"
    #include "PointSourceCollection.h"
    #include "Predict.h"
    #include "PredictPlanExec.h"
    namespace {} // namespace
    namespace dp3 {
    namespace base {
    
    void Predict::run(PredictPlanExec &plan, const PointSourceCollection &sources,
                      xt::xtensor<dcomplex, 3> &buffer)
        const { // buffer dimensions are (nCor, nFreq, nBaselines)
      plan.Precompute(sources);
      plan.Compute(sources, buffer);
    }
    
    void Predict::run(PredictPlanExec &plan,
                      const GaussianSourceCollection &sources,
                      xt::xtensor<dcomplex, 3> &buffer)
        const { // buffer dimensions are (nCor, nFreq, nBaselines)
      plan.Precompute(sources);
      plan.Compute(sources, buffer);
    }
    
    void Predict::run(PredictPlanExec &plan,
                      const GaussianSourceCollection &sources,
                      xt::xtensor<dcomplex, 4> &buffer) const {
      plan.Precompute(sources);
    
      xt::xtensor<dcomplex, 3>::shape_type tmp_buffer_shape = {
          buffer.shape(1), buffer.shape(2), buffer.shape(3)};
      for (auto &beam_id : sources.beam_ids) {
        xt::xtensor<dcomplex, 3> direction_buffer(tmp_buffer_shape);
    
        // TODO compute should be extended to accumulate per beam_id
        plan.Compute(sources, direction_buffer);
        xt::view(buffer, beam_id, xt::all(), xt::all(), xt::all()) =
            direction_buffer;
      }
    }
    
    void Predict::run(PredictPlanExec &plan, const PointSourceCollection &sources,
                      xt::xtensor<dcomplex, 4> &buffer) const {
      // buffer dimensions are (nBean, nFreq, nBaselines, nSources)
      plan.Precompute(sources);
    
      xt::xtensor<dcomplex, 3>::shape_type tmp_buffer_shape = {
          buffer.shape(1), buffer.shape(2), buffer.shape(3)};
      for (auto &beam_id : sources.beam_ids) {
        xt::xtensor<dcomplex, 3> direction_buffer(tmp_buffer_shape);
    
        // TODO compute should be extended to accumulate per beam_id
        plan.Compute(sources, direction_buffer);
    
        xt::view(buffer, beam_id, xt::all(), xt::all(), xt::all()) =
            direction_buffer;
      }
    }
    // plan.Compute(sources, buffer);}
    
    } // namespace base
    } // namespace dp3